aboutsummaryrefslogtreecommitdiff
path: root/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp')
-rw-r--r--mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp217
1 files changed, 114 insertions, 103 deletions
diff --git a/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp b/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
index 7d20109..b711e33 100644
--- a/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
+++ b/mlir/lib/Conversion/PDLToPDLInterp/PDLToPDLInterp.cpp
@@ -196,7 +196,7 @@ Block *PatternLowering::generateMatcher(MatcherNode &node, Region &region,
// finalize.
if (isa<ExitNode>(node)) {
builder.setInsertionPointToEnd(block);
- builder.create<pdl_interp::FinalizeOp>(matcherFunc.getLoc());
+ pdl_interp::FinalizeOp::create(builder, matcherFunc.getLoc());
return block;
}
@@ -272,8 +272,8 @@ Value PatternLowering::getValueAt(Block *&currentBlock, Position *pos) {
auto *operationPos = cast<OperationPosition>(pos);
if (operationPos->isOperandDefiningOp())
// Standard (downward) traversal which directly follows the defining op.
- value = builder.create<pdl_interp::GetDefiningOpOp>(
- loc, builder.getType<pdl::OperationType>(), parentVal);
+ value = pdl_interp::GetDefiningOpOp::create(
+ builder, loc, builder.getType<pdl::OperationType>(), parentVal);
else
// A passthrough operation position.
value = parentVal;
@@ -287,23 +287,23 @@ Value PatternLowering::getValueAt(Block *&currentBlock, Position *pos) {
// requested to use a representative value (e.g., upward traversal).
if (isa<pdl::RangeType>(parentVal.getType()) &&
usersPos->useRepresentative())
- value = builder.create<pdl_interp::ExtractOp>(loc, parentVal, 0);
+ value = pdl_interp::ExtractOp::create(builder, loc, parentVal, 0);
else
value = parentVal;
// The second operation retrieves the users.
- value = builder.create<pdl_interp::GetUsersOp>(loc, value);
+ value = pdl_interp::GetUsersOp::create(builder, loc, value);
break;
}
case Predicates::ForEachPos: {
assert(!failureBlockStack.empty() && "expected valid failure block");
- auto foreach = builder.create<pdl_interp::ForEachOp>(
- loc, parentVal, failureBlockStack.back(), /*initLoop=*/true);
+ auto foreach = pdl_interp::ForEachOp::create(
+ builder, loc, parentVal, failureBlockStack.back(), /*initLoop=*/true);
value = foreach.getLoopVariable();
// Create the continuation block.
Block *continueBlock = builder.createBlock(&foreach.getRegion());
- builder.create<pdl_interp::ContinueOp>(loc);
+ pdl_interp::ContinueOp::create(builder, loc);
failureBlockStack.push_back(continueBlock);
currentBlock = &foreach.getRegion().front();
@@ -311,62 +311,64 @@ Value PatternLowering::getValueAt(Block *&currentBlock, Position *pos) {
}
case Predicates::OperandPos: {
auto *operandPos = cast<OperandPosition>(pos);
- value = builder.create<pdl_interp::GetOperandOp>(
- loc, builder.getType<pdl::ValueType>(), parentVal,
+ value = pdl_interp::GetOperandOp::create(
+ builder, loc, builder.getType<pdl::ValueType>(), parentVal,
operandPos->getOperandNumber());
break;
}
case Predicates::OperandGroupPos: {
auto *operandPos = cast<OperandGroupPosition>(pos);
Type valueTy = builder.getType<pdl::ValueType>();
- value = builder.create<pdl_interp::GetOperandsOp>(
- loc, operandPos->isVariadic() ? pdl::RangeType::get(valueTy) : valueTy,
+ value = pdl_interp::GetOperandsOp::create(
+ builder, loc,
+ operandPos->isVariadic() ? pdl::RangeType::get(valueTy) : valueTy,
parentVal, operandPos->getOperandGroupNumber());
break;
}
case Predicates::AttributePos: {
auto *attrPos = cast<AttributePosition>(pos);
- value = builder.create<pdl_interp::GetAttributeOp>(
- loc, builder.getType<pdl::AttributeType>(), parentVal,
+ value = pdl_interp::GetAttributeOp::create(
+ builder, loc, builder.getType<pdl::AttributeType>(), parentVal,
attrPos->getName().strref());
break;
}
case Predicates::TypePos: {
if (isa<pdl::AttributeType>(parentVal.getType()))
- value = builder.create<pdl_interp::GetAttributeTypeOp>(loc, parentVal);
+ value = pdl_interp::GetAttributeTypeOp::create(builder, loc, parentVal);
else
- value = builder.create<pdl_interp::GetValueTypeOp>(loc, parentVal);
+ value = pdl_interp::GetValueTypeOp::create(builder, loc, parentVal);
break;
}
case Predicates::ResultPos: {
auto *resPos = cast<ResultPosition>(pos);
- value = builder.create<pdl_interp::GetResultOp>(
- loc, builder.getType<pdl::ValueType>(), parentVal,
+ value = pdl_interp::GetResultOp::create(
+ builder, loc, builder.getType<pdl::ValueType>(), parentVal,
resPos->getResultNumber());
break;
}
case Predicates::ResultGroupPos: {
auto *resPos = cast<ResultGroupPosition>(pos);
Type valueTy = builder.getType<pdl::ValueType>();
- value = builder.create<pdl_interp::GetResultsOp>(
- loc, resPos->isVariadic() ? pdl::RangeType::get(valueTy) : valueTy,
+ value = pdl_interp::GetResultsOp::create(
+ builder, loc,
+ resPos->isVariadic() ? pdl::RangeType::get(valueTy) : valueTy,
parentVal, resPos->getResultGroupNumber());
break;
}
case Predicates::AttributeLiteralPos: {
auto *attrPos = cast<AttributeLiteralPosition>(pos);
- value =
- builder.create<pdl_interp::CreateAttributeOp>(loc, attrPos->getValue());
+ value = pdl_interp::CreateAttributeOp::create(builder, loc,
+ attrPos->getValue());
break;
}
case Predicates::TypeLiteralPos: {
auto *typePos = cast<TypeLiteralPosition>(pos);
Attribute rawTypeAttr = typePos->getValue();
if (TypeAttr typeAttr = dyn_cast<TypeAttr>(rawTypeAttr))
- value = builder.create<pdl_interp::CreateTypeOp>(loc, typeAttr);
+ value = pdl_interp::CreateTypeOp::create(builder, loc, typeAttr);
else
- value = builder.create<pdl_interp::CreateTypesOp>(
- loc, cast<ArrayAttr>(rawTypeAttr));
+ value = pdl_interp::CreateTypesOp::create(builder, loc,
+ cast<ArrayAttr>(rawTypeAttr));
break;
}
case Predicates::ConstraintResultPos: {
@@ -413,56 +415,59 @@ void PatternLowering::generate(BoolNode *boolNode, Block *&currentBlock,
Predicates::Kind kind = question->getKind();
switch (kind) {
case Predicates::IsNotNullQuestion:
- builder.create<pdl_interp::IsNotNullOp>(loc, val, success, failure);
+ pdl_interp::IsNotNullOp::create(builder, loc, val, success, failure);
break;
case Predicates::OperationNameQuestion: {
auto *opNameAnswer = cast<OperationNameAnswer>(answer);
- builder.create<pdl_interp::CheckOperationNameOp>(
- loc, val, opNameAnswer->getValue().getStringRef(), success, failure);
+ pdl_interp::CheckOperationNameOp::create(
+ builder, loc, val, opNameAnswer->getValue().getStringRef(), success,
+ failure);
break;
}
case Predicates::TypeQuestion: {
auto *ans = cast<TypeAnswer>(answer);
if (isa<pdl::RangeType>(val.getType()))
- builder.create<pdl_interp::CheckTypesOp>(
- loc, val, llvm::cast<ArrayAttr>(ans->getValue()), success, failure);
+ pdl_interp::CheckTypesOp::create(builder, loc, val,
+ llvm::cast<ArrayAttr>(ans->getValue()),
+ success, failure);
else
- builder.create<pdl_interp::CheckTypeOp>(
- loc, val, llvm::cast<TypeAttr>(ans->getValue()), success, failure);
+ pdl_interp::CheckTypeOp::create(builder, loc, val,
+ llvm::cast<TypeAttr>(ans->getValue()),
+ success, failure);
break;
}
case Predicates::AttributeQuestion: {
auto *ans = cast<AttributeAnswer>(answer);
- builder.create<pdl_interp::CheckAttributeOp>(loc, val, ans->getValue(),
- success, failure);
+ pdl_interp::CheckAttributeOp::create(builder, loc, val, ans->getValue(),
+ success, failure);
break;
}
case Predicates::OperandCountAtLeastQuestion:
case Predicates::OperandCountQuestion:
- builder.create<pdl_interp::CheckOperandCountOp>(
- loc, val, cast<UnsignedAnswer>(answer)->getValue(),
+ pdl_interp::CheckOperandCountOp::create(
+ builder, loc, val, cast<UnsignedAnswer>(answer)->getValue(),
/*compareAtLeast=*/kind == Predicates::OperandCountAtLeastQuestion,
success, failure);
break;
case Predicates::ResultCountAtLeastQuestion:
case Predicates::ResultCountQuestion:
- builder.create<pdl_interp::CheckResultCountOp>(
- loc, val, cast<UnsignedAnswer>(answer)->getValue(),
+ pdl_interp::CheckResultCountOp::create(
+ builder, loc, val, cast<UnsignedAnswer>(answer)->getValue(),
/*compareAtLeast=*/kind == Predicates::ResultCountAtLeastQuestion,
success, failure);
break;
case Predicates::EqualToQuestion: {
bool trueAnswer = isa<TrueAnswer>(answer);
- builder.create<pdl_interp::AreEqualOp>(loc, val, args.front(),
- trueAnswer ? success : failure,
- trueAnswer ? failure : success);
+ pdl_interp::AreEqualOp::create(builder, loc, val, args.front(),
+ trueAnswer ? success : failure,
+ trueAnswer ? failure : success);
break;
}
case Predicates::ConstraintQuestion: {
auto *cstQuestion = cast<ConstraintQuestion>(question);
- auto applyConstraintOp = builder.create<pdl_interp::ApplyConstraintOp>(
- loc, cstQuestion->getResultTypes(), cstQuestion->getName(), args,
- cstQuestion->getIsNegated(), success, failure);
+ auto applyConstraintOp = pdl_interp::ApplyConstraintOp::create(
+ builder, loc, cstQuestion->getResultTypes(), cstQuestion->getName(),
+ args, cstQuestion->getIsNegated(), success, failure);
constraintOpMap.insert({cstQuestion, applyConstraintOp});
break;
@@ -487,7 +492,7 @@ static void createSwitchOp(Value val, Block *defaultDest, OpBuilder &builder,
blocks.push_back(it.second);
values.push_back(cast<PredT>(it.first)->getValue());
}
- builder.create<OpT>(val.getLoc(), val, values, defaultDest, blocks);
+ OpT::create(builder, val.getLoc(), val, values, defaultDest, blocks);
}
void PatternLowering::generate(SwitchNode *switchNode, Block *currentBlock,
@@ -536,12 +541,14 @@ void PatternLowering::generate(SwitchNode *switchNode, Block *currentBlock,
unsigned ans = cast<UnsignedAnswer>(child.first)->getValue();
switch (kind) {
case Predicates::OperandCountAtLeastQuestion:
- builder.create<pdl_interp::CheckOperandCountOp>(
- loc, val, ans, /*compareAtLeast=*/true, childBlock, defaultDest);
+ pdl_interp::CheckOperandCountOp::create(builder, loc, val, ans,
+ /*compareAtLeast=*/true,
+ childBlock, defaultDest);
break;
case Predicates::ResultCountAtLeastQuestion:
- builder.create<pdl_interp::CheckResultCountOp>(
- loc, val, ans, /*compareAtLeast=*/true, childBlock, defaultDest);
+ pdl_interp::CheckResultCountOp::create(builder, loc, val, ans,
+ /*compareAtLeast=*/true,
+ childBlock, defaultDest);
break;
default:
llvm_unreachable("Generating invalid AtLeast operation");
@@ -619,8 +626,8 @@ void PatternLowering::generate(SuccessNode *successNode, Block *&currentBlock) {
rootKindAttr = builder.getStringAttr(*rootKind);
builder.setInsertionPointToEnd(currentBlock);
- auto matchOp = builder.create<pdl_interp::RecordMatchOp>(
- pattern.getLoc(), mappedMatchValues, locOps.getArrayRef(),
+ auto matchOp = pdl_interp::RecordMatchOp::create(
+ builder, pattern.getLoc(), mappedMatchValues, locOps.getArrayRef(),
rewriterFuncRef, rootKindAttr, generatedOpsAttr, pattern.getBenefitAttr(),
failureBlockStack.back());
@@ -632,8 +639,8 @@ void PatternLowering::generate(SuccessNode *successNode, Block *&currentBlock) {
SymbolRefAttr PatternLowering::generateRewriter(
pdl::PatternOp pattern, SmallVectorImpl<Position *> &usedMatchValues) {
builder.setInsertionPointToEnd(rewriterModule.getBody());
- auto rewriterFunc = builder.create<pdl_interp::FuncOp>(
- pattern.getLoc(), "pdl_generated_rewriter",
+ auto rewriterFunc = pdl_interp::FuncOp::create(
+ builder, pattern.getLoc(), "pdl_generated_rewriter",
builder.getFunctionType({}, {}));
rewriterSymbolTable.insert(rewriterFunc);
@@ -651,18 +658,18 @@ SymbolRefAttr PatternLowering::generateRewriter(
Operation *oldOp = oldValue.getDefiningOp();
if (pdl::AttributeOp attrOp = dyn_cast<pdl::AttributeOp>(oldOp)) {
if (Attribute value = attrOp.getValueAttr()) {
- return newValue = builder.create<pdl_interp::CreateAttributeOp>(
- attrOp.getLoc(), value);
+ return newValue = pdl_interp::CreateAttributeOp::create(
+ builder, attrOp.getLoc(), value);
}
} else if (pdl::TypeOp typeOp = dyn_cast<pdl::TypeOp>(oldOp)) {
if (TypeAttr type = typeOp.getConstantTypeAttr()) {
- return newValue = builder.create<pdl_interp::CreateTypeOp>(
- typeOp.getLoc(), type);
+ return newValue = pdl_interp::CreateTypeOp::create(
+ builder, typeOp.getLoc(), type);
}
} else if (pdl::TypesOp typeOp = dyn_cast<pdl::TypesOp>(oldOp)) {
if (ArrayAttr type = typeOp.getConstantTypesAttr()) {
- return newValue = builder.create<pdl_interp::CreateTypesOp>(
- typeOp.getLoc(), typeOp.getType(), type);
+ return newValue = pdl_interp::CreateTypesOp::create(
+ builder, typeOp.getLoc(), typeOp.getType(), type);
}
}
@@ -684,8 +691,9 @@ SymbolRefAttr PatternLowering::generateRewriter(
auto mappedArgs =
llvm::map_range(rewriter.getExternalArgs(), mapRewriteValue);
args.append(mappedArgs.begin(), mappedArgs.end());
- builder.create<pdl_interp::ApplyRewriteOp>(
- rewriter.getLoc(), /*resultTypes=*/TypeRange(), rewriteName, args);
+ pdl_interp::ApplyRewriteOp::create(builder, rewriter.getLoc(),
+ /*resultTypes=*/TypeRange(), rewriteName,
+ args);
} else {
// Otherwise this is a dag rewriter defined using PDL operations.
for (Operation &rewriteOp : *rewriter.getBody()) {
@@ -703,7 +711,7 @@ SymbolRefAttr PatternLowering::generateRewriter(
llvm::to_vector<8>(rewriterFunc.front().getArgumentTypes()),
/*results=*/{}));
- builder.create<pdl_interp::FinalizeOp>(rewriter.getLoc());
+ pdl_interp::FinalizeOp::create(builder, rewriter.getLoc());
return SymbolRefAttr::get(
builder.getContext(),
pdl_interp::PDLInterpDialect::getRewriterModuleName(),
@@ -716,9 +724,9 @@ void PatternLowering::generateRewriter(
SmallVector<Value, 2> arguments;
for (Value argument : rewriteOp.getArgs())
arguments.push_back(mapRewriteValue(argument));
- auto interpOp = builder.create<pdl_interp::ApplyRewriteOp>(
- rewriteOp.getLoc(), rewriteOp.getResultTypes(), rewriteOp.getNameAttr(),
- arguments);
+ auto interpOp = pdl_interp::ApplyRewriteOp::create(
+ builder, rewriteOp.getLoc(), rewriteOp.getResultTypes(),
+ rewriteOp.getNameAttr(), arguments);
for (auto it : llvm::zip(rewriteOp.getResults(), interpOp.getResults()))
rewriteValues[std::get<0>(it)] = std::get<1>(it);
}
@@ -726,16 +734,16 @@ void PatternLowering::generateRewriter(
void PatternLowering::generateRewriter(
pdl::AttributeOp attrOp, DenseMap<Value, Value> &rewriteValues,
function_ref<Value(Value)> mapRewriteValue) {
- Value newAttr = builder.create<pdl_interp::CreateAttributeOp>(
- attrOp.getLoc(), attrOp.getValueAttr());
+ Value newAttr = pdl_interp::CreateAttributeOp::create(
+ builder, attrOp.getLoc(), attrOp.getValueAttr());
rewriteValues[attrOp] = newAttr;
}
void PatternLowering::generateRewriter(
pdl::EraseOp eraseOp, DenseMap<Value, Value> &rewriteValues,
function_ref<Value(Value)> mapRewriteValue) {
- builder.create<pdl_interp::EraseOp>(eraseOp.getLoc(),
- mapRewriteValue(eraseOp.getOpValue()));
+ pdl_interp::EraseOp::create(builder, eraseOp.getLoc(),
+ mapRewriteValue(eraseOp.getOpValue()));
}
void PatternLowering::generateRewriter(
@@ -756,9 +764,9 @@ void PatternLowering::generateRewriter(
// Create the new operation.
Location loc = operationOp.getLoc();
- Value createdOp = builder.create<pdl_interp::CreateOperationOp>(
- loc, *operationOp.getOpName(), types, hasInferredResultTypes, operands,
- attributes, operationOp.getAttributeValueNames());
+ Value createdOp = pdl_interp::CreateOperationOp::create(
+ builder, loc, *operationOp.getOpName(), types, hasInferredResultTypes,
+ operands, attributes, operationOp.getAttributeValueNames());
rewriteValues[operationOp.getOp()] = createdOp;
// Generate accesses for any results that have their types constrained.
@@ -768,8 +776,8 @@ void PatternLowering::generateRewriter(
if (resultTys.size() == 1 && isa<pdl::RangeType>(resultTys[0].getType())) {
Value &type = rewriteValues[resultTys[0]];
if (!type) {
- auto results = builder.create<pdl_interp::GetResultsOp>(loc, createdOp);
- type = builder.create<pdl_interp::GetValueTypeOp>(loc, results);
+ auto results = pdl_interp::GetResultsOp::create(builder, loc, createdOp);
+ type = pdl_interp::GetValueTypeOp::create(builder, loc, results);
}
return;
}
@@ -789,12 +797,13 @@ void PatternLowering::generateRewriter(
// groups because the exact index of the result is not statically known.
Value resultVal;
if (seenVariableLength)
- resultVal = builder.create<pdl_interp::GetResultsOp>(
- loc, isVariadic ? valueRangeTy : valueTy, createdOp, it.index());
+ resultVal = pdl_interp::GetResultsOp::create(
+ builder, loc, isVariadic ? valueRangeTy : valueTy, createdOp,
+ it.index());
else
- resultVal = builder.create<pdl_interp::GetResultOp>(
- loc, valueTy, createdOp, it.index());
- type = builder.create<pdl_interp::GetValueTypeOp>(loc, resultVal);
+ resultVal = pdl_interp::GetResultOp::create(builder, loc, valueTy,
+ createdOp, it.index());
+ type = pdl_interp::GetValueTypeOp::create(builder, loc, resultVal);
}
}
@@ -804,8 +813,8 @@ void PatternLowering::generateRewriter(
SmallVector<Value, 4> replOperands;
for (Value operand : rangeOp.getArguments())
replOperands.push_back(mapRewriteValue(operand));
- rewriteValues[rangeOp] = builder.create<pdl_interp::CreateRangeOp>(
- rangeOp.getLoc(), rangeOp.getType(), replOperands);
+ rewriteValues[rangeOp] = pdl_interp::CreateRangeOp::create(
+ builder, rangeOp.getLoc(), rangeOp.getType(), replOperands);
}
void PatternLowering::generateRewriter(
@@ -820,8 +829,8 @@ void PatternLowering::generateRewriter(
// Don't use replace if we know the replaced operation has no results.
auto opOp = replaceOp.getOpValue().getDefiningOp<pdl::OperationOp>();
if (!opOp || !opOp.getTypeValues().empty()) {
- replOperands.push_back(builder.create<pdl_interp::GetResultsOp>(
- replOp.getLoc(), mapRewriteValue(replOp)));
+ replOperands.push_back(pdl_interp::GetResultsOp::create(
+ builder, replOp.getLoc(), mapRewriteValue(replOp)));
}
} else {
for (Value operand : replaceOp.getReplValues())
@@ -830,29 +839,29 @@ void PatternLowering::generateRewriter(
// If there are no replacement values, just create an erase instead.
if (replOperands.empty()) {
- builder.create<pdl_interp::EraseOp>(
- replaceOp.getLoc(), mapRewriteValue(replaceOp.getOpValue()));
+ pdl_interp::EraseOp::create(builder, replaceOp.getLoc(),
+ mapRewriteValue(replaceOp.getOpValue()));
return;
}
- builder.create<pdl_interp::ReplaceOp>(replaceOp.getLoc(),
- mapRewriteValue(replaceOp.getOpValue()),
- replOperands);
+ pdl_interp::ReplaceOp::create(builder, replaceOp.getLoc(),
+ mapRewriteValue(replaceOp.getOpValue()),
+ replOperands);
}
void PatternLowering::generateRewriter(
pdl::ResultOp resultOp, DenseMap<Value, Value> &rewriteValues,
function_ref<Value(Value)> mapRewriteValue) {
- rewriteValues[resultOp] = builder.create<pdl_interp::GetResultOp>(
- resultOp.getLoc(), builder.getType<pdl::ValueType>(),
+ rewriteValues[resultOp] = pdl_interp::GetResultOp::create(
+ builder, resultOp.getLoc(), builder.getType<pdl::ValueType>(),
mapRewriteValue(resultOp.getParent()), resultOp.getIndex());
}
void PatternLowering::generateRewriter(
pdl::ResultsOp resultOp, DenseMap<Value, Value> &rewriteValues,
function_ref<Value(Value)> mapRewriteValue) {
- rewriteValues[resultOp] = builder.create<pdl_interp::GetResultsOp>(
- resultOp.getLoc(), resultOp.getType(),
+ rewriteValues[resultOp] = pdl_interp::GetResultsOp::create(
+ builder, resultOp.getLoc(), resultOp.getType(),
mapRewriteValue(resultOp.getParent()), resultOp.getIndex());
}
@@ -863,7 +872,7 @@ void PatternLowering::generateRewriter(
// type.
if (TypeAttr typeAttr = typeOp.getConstantTypeAttr()) {
rewriteValues[typeOp] =
- builder.create<pdl_interp::CreateTypeOp>(typeOp.getLoc(), typeAttr);
+ pdl_interp::CreateTypeOp::create(builder, typeOp.getLoc(), typeAttr);
}
}
@@ -873,8 +882,8 @@ void PatternLowering::generateRewriter(
// If the type isn't constant, the users (e.g. OperationOp) will resolve this
// type.
if (ArrayAttr typeAttr = typeOp.getConstantTypesAttr()) {
- rewriteValues[typeOp] = builder.create<pdl_interp::CreateTypesOp>(
- typeOp.getLoc(), typeOp.getType(), typeAttr);
+ rewriteValues[typeOp] = pdl_interp::CreateTypesOp::create(
+ builder, typeOp.getLoc(), typeOp.getType(), typeAttr);
}
}
@@ -939,10 +948,10 @@ void PatternLowering::generateOperationResultTypeRewriter(
!replacedOp->isBeforeInBlock(op))
continue;
- Value replacedOpResults = builder.create<pdl_interp::GetResultsOp>(
- replacedOp->getLoc(), mapRewriteValue(replOpVal));
- types.push_back(builder.create<pdl_interp::GetValueTypeOp>(
- replacedOp->getLoc(), replacedOpResults));
+ Value replacedOpResults = pdl_interp::GetResultsOp::create(
+ builder, replacedOp->getLoc(), mapRewriteValue(replOpVal));
+ types.push_back(pdl_interp::GetValueTypeOp::create(
+ builder, replacedOp->getLoc(), replacedOpResults));
return;
}
@@ -985,16 +994,18 @@ void PDLToPDLInterpPass::runOnOperation() {
// Create the main matcher function This function contains all of the match
// related functionality from patterns in the module.
OpBuilder builder = OpBuilder::atBlockBegin(module.getBody());
- auto matcherFunc = builder.create<pdl_interp::FuncOp>(
- module.getLoc(), pdl_interp::PDLInterpDialect::getMatcherFunctionName(),
+ auto matcherFunc = pdl_interp::FuncOp::create(
+ builder, module.getLoc(),
+ pdl_interp::PDLInterpDialect::getMatcherFunctionName(),
builder.getFunctionType(builder.getType<pdl::OperationType>(),
/*results=*/{}),
/*attrs=*/ArrayRef<NamedAttribute>());
// Create a nested module to hold the functions invoked for rewriting the IR
// after a successful match.
- ModuleOp rewriterModule = builder.create<ModuleOp>(
- module.getLoc(), pdl_interp::PDLInterpDialect::getRewriterModuleName());
+ ModuleOp rewriterModule =
+ ModuleOp::create(builder, module.getLoc(),
+ pdl_interp::PDLInterpDialect::getRewriterModuleName());
// Generate the code for the patterns within the module.
PatternLowering generator(matcherFunc, rewriterModule, configMap);