Skip to content

Commit

Permalink
Skip duplicate template operations with set
Browse files Browse the repository at this point in the history
  • Loading branch information
arrangabriel committed Oct 25, 2024
1 parent 33759b7 commit 965fb28
Showing 1 changed file with 3 additions and 7 deletions.
10 changes: 3 additions & 7 deletions lib/Dialect/BaseModelica/Transforms/CallCSE.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,14 @@ void collectCallOps(ModelOp modelOp, llvm::SmallVectorImpl<CallOp> &callOps) {
llvm::SmallVector<EquationInstanceOp> dynamicEquationOps;
modelOp.collectMainEquations(dynamicEquationOps);

llvm::SmallVector<EquationTemplateOp> templateOps;

llvm::DenseSet<EquationTemplateOp> visitedTemplateOps;
for (EquationInstanceOp equationOp : dynamicEquationOps) {
EquationTemplateOp templateOp = equationOp.getTemplate();
if (!templateOp.getInductionVariables().empty() ||
llvm::is_contained(templateOps, templateOp)) {
visitedTemplateOps.contains(templateOp)) {
continue;
}
templateOps.push_back(templateOp);
}

for (EquationTemplateOp templateOp : templateOps) {
visitedTemplateOps.insert(templateOp);
templateOp->walk([&](CallOp callOp) { callOps.push_back(callOp); });
}
}
Expand Down

0 comments on commit 965fb28

Please sign in to comment.