struct ClonePass
: public PassWrapper<ClonePass, InterfacePass<FunctionOpInterface>> {
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(ClonePass)
+
StringRef getArgument() const final { return "test-clone"; }
StringRef getDescription() const final { return "Test clone of op"; }
void runOnOperation() override {
return;
Block ®ionEntry = region.front();
- auto terminator = regionEntry.getTerminator();
+ Operation *terminator = regionEntry.getTerminator();
// Only handle functions whose returns match the inputs.
if (terminator->getNumOperands() != regionEntry.getNumArguments())
map.map(std::get<1>(tup), std::get<0>(tup));
}
- OpBuilder B(op->getContext());
- B.setInsertionPointToEnd(®ionEntry);
+ OpBuilder builder(op->getContext());
+ builder.setInsertionPointToEnd(®ionEntry);
SmallVector<Operation *> toClone;
for (Operation &inst : regionEntry)
toClone.push_back(&inst);
for (Operation *inst : toClone)
- B.clone(*inst, map);
+ builder.clone(*inst, map);
terminator->erase();
}
};