diff --git a/mlir/unittests/Conversion/PDLToPDLInterp/RootOrderingTest.cpp b/mlir/unittests/Conversion/PDLToPDLInterp/RootOrderingTest.cpp index f82ece0db933..020c0fe770bf 100644 --- a/mlir/unittests/Conversion/PDLToPDLInterp/RootOrderingTest.cpp +++ b/mlir/unittests/Conversion/PDLToPDLInterp/RootOrderingTest.cpp @@ -41,7 +41,7 @@ protected: builder.setInsertionPointToStart(&block); for (int i = 0; i < 4; ++i) // Ops will be deleted when `block` is destroyed. - v[i] = builder.create(builder.getUnknownLoc(), i, 32); + v[i] = ConstantIntOp::create(builder, builder.getUnknownLoc(), i, 32); } /// Checks that optimal branching on graph has the given cost and diff --git a/mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp b/mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp index 836efdb307f9..6ac9a873e615 100644 --- a/mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp +++ b/mlir/unittests/Dialect/OpenACC/OpenACCOpsTest.cpp @@ -45,7 +45,7 @@ protected: template void testAsyncOnly(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes) { - OwningOpRef op = b.create(loc, TypeRange{}, ValueRange{}); + OwningOpRef op = Op::create(b, loc, TypeRange{}, ValueRange{}); EXPECT_FALSE(op->hasAsyncOnly()); for (auto d : dtypes) EXPECT_FALSE(op->hasAsyncOnly(d)); @@ -82,12 +82,12 @@ void testAsyncOnlyDataEntry(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes) { auto memrefTy = MemRefType::get({}, b.getI32Type()); OwningOpRef varPtrOp = - b.create(loc, memrefTy); + memref::AllocaOp::create(b, loc, memrefTy); TypedValue varPtr = cast>(varPtrOp->getResult()); - OwningOpRef op = b.create(loc, varPtr, - /*structured=*/true, /*implicit=*/true); + OwningOpRef op = Op::create(b, loc, varPtr, + /*structured=*/true, /*implicit=*/true); EXPECT_FALSE(op->hasAsyncOnly()); for (auto d : dtypes) @@ -128,7 +128,7 @@ TEST_F(OpenACCOpsTest, asyncOnlyTestDataEntry) { template void testAsyncValue(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes) { - OwningOpRef op = b.create(loc, TypeRange{}, ValueRange{}); + OwningOpRef op = Op::create(b, loc, TypeRange{}, ValueRange{}); mlir::Value empty; EXPECT_EQ(op->getAsyncValue(), empty); @@ -136,7 +136,7 @@ void testAsyncValue(OpBuilder &b, MLIRContext &context, Location loc, EXPECT_EQ(op->getAsyncValue(d), empty); OwningOpRef val = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); auto dtypeNvidia = DeviceTypeAttr::get(&context, DeviceType::Nvidia); op->setAsyncOperandsDeviceTypeAttr(b.getArrayAttr({dtypeNvidia})); op->getAsyncOperandsMutable().assign(val->getResult()); @@ -158,12 +158,12 @@ void testAsyncValueDataEntry(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes) { auto memrefTy = MemRefType::get({}, b.getI32Type()); OwningOpRef varPtrOp = - b.create(loc, memrefTy); + memref::AllocaOp::create(b, loc, memrefTy); TypedValue varPtr = cast>(varPtrOp->getResult()); - OwningOpRef op = b.create(loc, varPtr, - /*structured=*/true, /*implicit=*/true); + OwningOpRef op = Op::create(b, loc, varPtr, + /*structured=*/true, /*implicit=*/true); mlir::Value empty; EXPECT_EQ(op->getAsyncValue(), empty); @@ -171,7 +171,7 @@ void testAsyncValueDataEntry(OpBuilder &b, MLIRContext &context, Location loc, EXPECT_EQ(op->getAsyncValue(d), empty); OwningOpRef val = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); auto dtypeNvidia = DeviceTypeAttr::get(&context, DeviceType::Nvidia); op->setAsyncOperandsDeviceTypeAttr(b.getArrayAttr({dtypeNvidia})); op->getAsyncOperandsMutable().assign(val->getResult()); @@ -197,13 +197,13 @@ template void testNumGangsValues(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes, llvm::SmallVector &dtypesWithoutNone) { - OwningOpRef op = b.create(loc, TypeRange{}, ValueRange{}); + OwningOpRef op = Op::create(b, loc, TypeRange{}, ValueRange{}); EXPECT_EQ(op->getNumGangsValues().begin(), op->getNumGangsValues().end()); OwningOpRef val1 = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); OwningOpRef val2 = - b.create(loc, 4); + arith::ConstantIndexOp::create(b, loc, 4); auto dtypeNone = DeviceTypeAttr::get(&context, DeviceType::None); op->getNumGangsMutable().assign(val1->getResult()); op->setNumGangsDeviceTypeAttr(b.getArrayAttr({dtypeNone})); @@ -264,7 +264,7 @@ TEST_F(OpenACCOpsTest, numGangsValuesTest) { template void testVectorLength(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes) { - OwningOpRef op = b.create(loc, TypeRange{}, ValueRange{}); + OwningOpRef op = Op::create(b, loc, TypeRange{}, ValueRange{}); mlir::Value empty; EXPECT_EQ(op->getVectorLengthValue(), empty); @@ -272,7 +272,7 @@ void testVectorLength(OpBuilder &b, MLIRContext &context, Location loc, EXPECT_EQ(op->getVectorLengthValue(d), empty); OwningOpRef val = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); auto dtypeNvidia = DeviceTypeAttr::get(&context, DeviceType::Nvidia); op->setVectorLengthDeviceTypeAttr(b.getArrayAttr({dtypeNvidia})); op->getVectorLengthMutable().assign(val->getResult()); @@ -292,7 +292,7 @@ template void testWaitOnly(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes, llvm::SmallVector &dtypesWithoutNone) { - OwningOpRef op = b.create(loc, TypeRange{}, ValueRange{}); + OwningOpRef op = Op::create(b, loc, TypeRange{}, ValueRange{}); EXPECT_FALSE(op->hasWaitOnly()); for (auto d : dtypes) EXPECT_FALSE(op->hasWaitOnly(d)); @@ -332,15 +332,15 @@ template void testWaitValues(OpBuilder &b, MLIRContext &context, Location loc, llvm::SmallVector &dtypes, llvm::SmallVector &dtypesWithoutNone) { - OwningOpRef op = b.create(loc, TypeRange{}, ValueRange{}); + OwningOpRef op = Op::create(b, loc, TypeRange{}, ValueRange{}); EXPECT_EQ(op->getWaitValues().begin(), op->getWaitValues().end()); OwningOpRef val1 = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); OwningOpRef val2 = - b.create(loc, 4); + arith::ConstantIndexOp::create(b, loc, 4); OwningOpRef val3 = - b.create(loc, 5); + arith::ConstantIndexOp::create(b, loc, 5); auto dtypeNone = DeviceTypeAttr::get(&context, DeviceType::None); op->getWaitOperandsMutable().assign(val1->getResult()); op->setWaitOperandsDeviceTypeAttr(b.getArrayAttr({dtypeNone})); @@ -426,7 +426,7 @@ TEST_F(OpenACCOpsTest, waitValuesTest) { } TEST_F(OpenACCOpsTest, loopOpGangVectorWorkerTest) { - OwningOpRef op = b.create(loc, TypeRange{}, ValueRange{}); + OwningOpRef op = LoopOp::create(b, loc, TypeRange{}, ValueRange{}); EXPECT_FALSE(op->hasGang()); EXPECT_FALSE(op->hasVector()); EXPECT_FALSE(op->hasWorker()); @@ -473,7 +473,7 @@ TEST_F(OpenACCOpsTest, loopOpGangVectorWorkerTest) { TEST_F(OpenACCOpsTest, routineOpTest) { OwningOpRef op = - b.create(loc, TypeRange{}, ValueRange{}); + RoutineOp::create(b, loc, TypeRange{}, ValueRange{}); EXPECT_FALSE(op->hasSeq()); EXPECT_FALSE(op->hasVector()); @@ -564,12 +564,12 @@ void testShortDataEntryOpBuilders(OpBuilder &b, MLIRContext &context, Location loc, DataClause dataClause) { auto memrefTy = MemRefType::get({}, b.getI32Type()); OwningOpRef varPtrOp = - b.create(loc, memrefTy); + memref::AllocaOp::create(b, loc, memrefTy); TypedValue varPtr = cast>(varPtrOp->getResult()); - OwningOpRef op = b.create(loc, varPtr, - /*structured=*/true, /*implicit=*/true); + OwningOpRef op = Op::create(b, loc, varPtr, + /*structured=*/true, /*implicit=*/true); EXPECT_EQ(op->getVarPtr(), varPtr); EXPECT_EQ(op->getType(), memrefTy); @@ -579,24 +579,24 @@ void testShortDataEntryOpBuilders(OpBuilder &b, MLIRContext &context, EXPECT_TRUE(op->getBounds().empty()); EXPECT_FALSE(op->getVarPtrPtr()); - OwningOpRef op2 = b.create(loc, varPtr, - /*structured=*/false, /*implicit=*/false); + OwningOpRef op2 = Op::create(b, loc, varPtr, + /*structured=*/false, /*implicit=*/false); EXPECT_FALSE(op2->getImplicit()); EXPECT_FALSE(op2->getStructured()); OwningOpRef extent = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); OwningOpRef bounds = - b.create(loc, extent->getResult()); + DataBoundsOp::create(b, loc, extent->getResult()); OwningOpRef opWithBounds = - b.create(loc, varPtr, - /*structured=*/true, /*implicit=*/true, bounds->getResult()); + Op::create(b, loc, varPtr, + /*structured=*/true, /*implicit=*/true, bounds->getResult()); EXPECT_FALSE(opWithBounds->getBounds().empty()); EXPECT_EQ(opWithBounds->getBounds().back(), bounds->getResult()); OwningOpRef opWithName = - b.create(loc, varPtr, - /*structured=*/true, /*implicit=*/true, "varName"); + Op::create(b, loc, varPtr, + /*structured=*/true, /*implicit=*/true, "varName"); EXPECT_EQ(opWithName->getNameAttr().str(), "varName"); } @@ -637,17 +637,17 @@ void testShortDataExitOpBuilders(OpBuilder &b, MLIRContext &context, Location loc, DataClause dataClause) { auto memrefTy = MemRefType::get({}, b.getI32Type()); OwningOpRef varPtrOp = - b.create(loc, memrefTy); + memref::AllocaOp::create(b, loc, memrefTy); TypedValue varPtr = cast>(varPtrOp->getResult()); - OwningOpRef accPtrOp = b.create( - loc, varPtr, /*structured=*/true, /*implicit=*/true); + OwningOpRef accPtrOp = GetDevicePtrOp::create( + b, loc, varPtr, /*structured=*/true, /*implicit=*/true); TypedValue accPtr = cast>(accPtrOp->getResult()); - OwningOpRef op = b.create(loc, accPtr, varPtr, - /*structured=*/true, /*implicit=*/true); + OwningOpRef op = Op::create(b, loc, accPtr, varPtr, + /*structured=*/true, /*implicit=*/true); EXPECT_EQ(op->getVarPtr(), varPtr); EXPECT_EQ(op->getAccPtr(), accPtr); @@ -656,24 +656,24 @@ void testShortDataExitOpBuilders(OpBuilder &b, MLIRContext &context, EXPECT_TRUE(op->getStructured()); EXPECT_TRUE(op->getBounds().empty()); - OwningOpRef op2 = b.create(loc, accPtr, varPtr, - /*structured=*/false, /*implicit=*/false); + OwningOpRef op2 = Op::create(b, loc, accPtr, varPtr, + /*structured=*/false, /*implicit=*/false); EXPECT_FALSE(op2->getImplicit()); EXPECT_FALSE(op2->getStructured()); OwningOpRef extent = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); OwningOpRef bounds = - b.create(loc, extent->getResult()); + DataBoundsOp::create(b, loc, extent->getResult()); OwningOpRef opWithBounds = - b.create(loc, accPtr, varPtr, - /*structured=*/true, /*implicit=*/true, bounds->getResult()); + Op::create(b, loc, accPtr, varPtr, + /*structured=*/true, /*implicit=*/true, bounds->getResult()); EXPECT_FALSE(opWithBounds->getBounds().empty()); EXPECT_EQ(opWithBounds->getBounds().back(), bounds->getResult()); OwningOpRef opWithName = - b.create(loc, accPtr, varPtr, - /*structured=*/true, /*implicit=*/true, "varName"); + Op::create(b, loc, accPtr, varPtr, + /*structured=*/true, /*implicit=*/true, "varName"); EXPECT_EQ(opWithName->getNameAttr().str(), "varName"); } @@ -689,17 +689,17 @@ void testShortDataExitNoVarPtrOpBuilders(OpBuilder &b, MLIRContext &context, Location loc, DataClause dataClause) { auto memrefTy = MemRefType::get({}, b.getI32Type()); OwningOpRef varPtrOp = - b.create(loc, memrefTy); + memref::AllocaOp::create(b, loc, memrefTy); TypedValue varPtr = cast>(varPtrOp->getResult()); - OwningOpRef accPtrOp = b.create( - loc, varPtr, /*structured=*/true, /*implicit=*/true); + OwningOpRef accPtrOp = GetDevicePtrOp::create( + b, loc, varPtr, /*structured=*/true, /*implicit=*/true); TypedValue accPtr = cast>(accPtrOp->getResult()); - OwningOpRef op = b.create(loc, accPtr, - /*structured=*/true, /*implicit=*/true); + OwningOpRef op = Op::create(b, loc, accPtr, + /*structured=*/true, /*implicit=*/true); EXPECT_EQ(op->getAccPtr(), accPtr); EXPECT_EQ(op->getDataClause(), dataClause); @@ -707,24 +707,24 @@ void testShortDataExitNoVarPtrOpBuilders(OpBuilder &b, MLIRContext &context, EXPECT_TRUE(op->getStructured()); EXPECT_TRUE(op->getBounds().empty()); - OwningOpRef op2 = b.create(loc, accPtr, - /*structured=*/false, /*implicit=*/false); + OwningOpRef op2 = Op::create(b, loc, accPtr, + /*structured=*/false, /*implicit=*/false); EXPECT_FALSE(op2->getImplicit()); EXPECT_FALSE(op2->getStructured()); OwningOpRef extent = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); OwningOpRef bounds = - b.create(loc, extent->getResult()); + DataBoundsOp::create(b, loc, extent->getResult()); OwningOpRef opWithBounds = - b.create(loc, accPtr, - /*structured=*/true, /*implicit=*/true, bounds->getResult()); + Op::create(b, loc, accPtr, + /*structured=*/true, /*implicit=*/true, bounds->getResult()); EXPECT_FALSE(opWithBounds->getBounds().empty()); EXPECT_EQ(opWithBounds->getBounds().back(), bounds->getResult()); OwningOpRef opWithName = - b.create(loc, accPtr, - /*structured=*/true, /*implicit=*/true, "varName"); + Op::create(b, loc, accPtr, + /*structured=*/true, /*implicit=*/true, "varName"); EXPECT_EQ(opWithName->getNameAttr().str(), "varName"); } @@ -742,16 +742,16 @@ void testShortDataEntryOpBuildersMappableVar(OpBuilder &b, MLIRContext &context, auto int64Ty = b.getI64Type(); auto memrefTy = MemRefType::get({}, int64Ty); OwningOpRef varPtrOp = - b.create(loc, memrefTy); + memref::AllocaOp::create(b, loc, memrefTy); SmallVector indices; OwningOpRef loadVarOp = - b.create(loc, int64Ty, varPtrOp->getResult(), indices); + memref::LoadOp::create(b, loc, int64Ty, varPtrOp->getResult(), indices); EXPECT_TRUE(isMappableType(loadVarOp->getResult().getType())); TypedValue var = cast>(loadVarOp->getResult()); - OwningOpRef op = b.create(loc, var, - /*structured=*/true, /*implicit=*/true); + OwningOpRef op = Op::create(b, loc, var, + /*structured=*/true, /*implicit=*/true); EXPECT_EQ(op->getVar(), var); EXPECT_EQ(op->getVarPtr(), nullptr); diff --git a/mlir/unittests/Dialect/SCF/LoopLikeSCFOpsTest.cpp b/mlir/unittests/Dialect/SCF/LoopLikeSCFOpsTest.cpp index fecd960d694b..ef2312398265 100644 --- a/mlir/unittests/Dialect/SCF/LoopLikeSCFOpsTest.cpp +++ b/mlir/unittests/Dialect/SCF/LoopLikeSCFOpsTest.cpp @@ -119,45 +119,45 @@ protected: TEST_F(SCFLoopLikeTest, queryUnidimensionalLooplikes) { OwningOpRef lb = - b.create(loc, 0); + arith::ConstantIndexOp::create(b, loc, 0); OwningOpRef ub = - b.create(loc, 10); + arith::ConstantIndexOp::create(b, loc, 10); OwningOpRef step = - b.create(loc, 2); + arith::ConstantIndexOp::create(b, loc, 2); OwningOpRef forOp = - b.create(loc, lb.get(), ub.get(), step.get()); + scf::ForOp::create(b, loc, lb.get(), ub.get(), step.get()); checkUnidimensional(forOp.get()); - OwningOpRef forallOp = b.create( - loc, ArrayRef(lb->getResult()), + OwningOpRef forallOp = scf::ForallOp::create( + b, loc, ArrayRef(lb->getResult()), ArrayRef(ub->getResult()), ArrayRef(step->getResult()), ValueRange(), std::nullopt); checkUnidimensional(forallOp.get()); - OwningOpRef parallelOp = b.create( - loc, ValueRange(lb->getResult()), ValueRange(ub->getResult()), + OwningOpRef parallelOp = scf::ParallelOp::create( + b, loc, ValueRange(lb->getResult()), ValueRange(ub->getResult()), ValueRange(step->getResult()), ValueRange()); checkUnidimensional(parallelOp.get()); } TEST_F(SCFLoopLikeTest, queryMultidimensionalLooplikes) { OwningOpRef lb = - b.create(loc, 0); + arith::ConstantIndexOp::create(b, loc, 0); OwningOpRef ub = - b.create(loc, 10); + arith::ConstantIndexOp::create(b, loc, 10); OwningOpRef step = - b.create(loc, 2); + arith::ConstantIndexOp::create(b, loc, 2); - OwningOpRef forallOp = b.create( - loc, ArrayRef({lb->getResult(), lb->getResult()}), + OwningOpRef forallOp = scf::ForallOp::create( + b, loc, ArrayRef({lb->getResult(), lb->getResult()}), ArrayRef({ub->getResult(), ub->getResult()}), ArrayRef({step->getResult(), step->getResult()}), ValueRange(), std::nullopt); checkMultidimensional(forallOp.get()); - OwningOpRef parallelOp = b.create( - loc, ValueRange({lb->getResult(), lb->getResult()}), + OwningOpRef parallelOp = scf::ParallelOp::create( + b, loc, ValueRange({lb->getResult(), lb->getResult()}), ValueRange({ub->getResult(), ub->getResult()}), ValueRange({step->getResult(), step->getResult()}), ValueRange()); checkMultidimensional(parallelOp.get()); @@ -165,22 +165,22 @@ TEST_F(SCFLoopLikeTest, queryMultidimensionalLooplikes) { TEST_F(SCFLoopLikeTest, testForallNormalize) { OwningOpRef lb = - b.create(loc, 1); + arith::ConstantIndexOp::create(b, loc, 1); OwningOpRef ub = - b.create(loc, 10); + arith::ConstantIndexOp::create(b, loc, 10); OwningOpRef step = - b.create(loc, 3); + arith::ConstantIndexOp::create(b, loc, 3); - scf::ForallOp forallOp = b.create( - loc, ArrayRef({lb->getResult(), lb->getResult()}), + scf::ForallOp forallOp = scf::ForallOp::create( + b, loc, ArrayRef({lb->getResult(), lb->getResult()}), ArrayRef({ub->getResult(), ub->getResult()}), ArrayRef({step->getResult(), step->getResult()}), ValueRange(), std::nullopt); // Create a user of the induction variable. Bitcast is chosen for simplicity // since it is unary. b.setInsertionPointToStart(forallOp.getBody()); - b.create(UnknownLoc::get(&context), b.getF64Type(), - forallOp.getInductionVar(0)); + arith::BitcastOp::create(b, UnknownLoc::get(&context), b.getF64Type(), + forallOp.getInductionVar(0)); IRRewriter rewriter(b); FailureOr maybeNormalizedForallOp = normalizeForallOp(rewriter, forallOp); diff --git a/mlir/unittests/Dialect/SMT/QuantifierTest.cpp b/mlir/unittests/Dialect/SMT/QuantifierTest.cpp index d7c57f0acbbe..5cbc01998973 100644 --- a/mlir/unittests/Dialect/SMT/QuantifierTest.cpp +++ b/mlir/unittests/Dialect/SMT/QuantifierTest.cpp @@ -26,10 +26,10 @@ TEST(QuantifierTest, ExistsBuilderWithPattern) { OpBuilder builder(&context); auto boolTy = BoolType::get(&context); - OwningOpRef existsOp = builder.create( - loc, TypeRange{boolTy, boolTy}, + OwningOpRef existsOp = ExistsOp::create( + builder, loc, TypeRange{boolTy, boolTy}, [](OpBuilder &builder, Location loc, ValueRange boundVars) { - return builder.create(loc, boundVars); + return AndOp::create(builder, loc, boundVars); }, std::nullopt, [](OpBuilder &builder, Location loc, ValueRange boundVars) { @@ -57,10 +57,10 @@ TEST(QuantifierTest, ExistsBuilderNoPattern) { OpBuilder builder(&context); auto boolTy = BoolType::get(&context); - OwningOpRef existsOp = builder.create( - loc, TypeRange{boolTy, boolTy}, + OwningOpRef existsOp = ExistsOp::create( + builder, loc, TypeRange{boolTy, boolTy}, [](OpBuilder &builder, Location loc, ValueRange boundVars) { - return builder.create(loc, boundVars); + return AndOp::create(builder, loc, boundVars); }, ArrayRef{"a", "b"}, nullptr, /*weight=*/0, /*noPattern=*/true); @@ -82,10 +82,10 @@ TEST(QuantifierTest, ExistsBuilderDefault) { OpBuilder builder(&context); auto boolTy = BoolType::get(&context); - OwningOpRef existsOp = builder.create( - loc, TypeRange{boolTy, boolTy}, + OwningOpRef existsOp = ExistsOp::create( + builder, loc, TypeRange{boolTy, boolTy}, [](OpBuilder &builder, Location loc, ValueRange boundVars) { - return builder.create(loc, boundVars); + return AndOp::create(builder, loc, boundVars); }, ArrayRef{"a", "b"}); @@ -111,10 +111,10 @@ TEST(QuantifierTest, ForallBuilderWithPattern) { OpBuilder builder(&context); auto boolTy = BoolType::get(&context); - OwningOpRef forallOp = builder.create( - loc, TypeRange{boolTy, boolTy}, + OwningOpRef forallOp = ForallOp::create( + builder, loc, TypeRange{boolTy, boolTy}, [](OpBuilder &builder, Location loc, ValueRange boundVars) { - return builder.create(loc, boundVars); + return AndOp::create(builder, loc, boundVars); }, ArrayRef{"a", "b"}, [](OpBuilder &builder, Location loc, ValueRange boundVars) { @@ -142,10 +142,10 @@ TEST(QuantifierTest, ForallBuilderNoPattern) { OpBuilder builder(&context); auto boolTy = BoolType::get(&context); - OwningOpRef forallOp = builder.create( - loc, TypeRange{boolTy, boolTy}, + OwningOpRef forallOp = ForallOp::create( + builder, loc, TypeRange{boolTy, boolTy}, [](OpBuilder &builder, Location loc, ValueRange boundVars) { - return builder.create(loc, boundVars); + return AndOp::create(builder, loc, boundVars); }, ArrayRef{"a", "b"}, nullptr, /*weight=*/0, /*noPattern=*/true); @@ -167,10 +167,10 @@ TEST(QuantifierTest, ForallBuilderDefault) { OpBuilder builder(&context); auto boolTy = BoolType::get(&context); - OwningOpRef forallOp = builder.create( - loc, TypeRange{boolTy, boolTy}, + OwningOpRef forallOp = ForallOp::create( + builder, loc, TypeRange{boolTy, boolTy}, [](OpBuilder &builder, Location loc, ValueRange boundVars) { - return builder.create(loc, boundVars); + return AndOp::create(builder, loc, boundVars); }, std::nullopt); diff --git a/mlir/unittests/Dialect/SPIRV/SerializationTest.cpp b/mlir/unittests/Dialect/SPIRV/SerializationTest.cpp index ef89c1645d37..af55296e722d 100644 --- a/mlir/unittests/Dialect/SPIRV/SerializationTest.cpp +++ b/mlir/unittests/Dialect/SPIRV/SerializationTest.cpp @@ -71,8 +71,8 @@ protected: spirv::GlobalVariableOp addGlobalVar(Type type, llvm::StringRef name) { OpBuilder builder(module->getRegion()); auto ptrType = spirv::PointerType::get(type, spirv::StorageClass::Uniform); - return builder.create( - UnknownLoc::get(&context), TypeAttr::get(ptrType), + return spirv::GlobalVariableOp::create( + builder, UnknownLoc::get(&context), TypeAttr::get(ptrType), builder.getStringAttr(name), nullptr); } @@ -82,14 +82,14 @@ protected: auto loc = UnknownLoc::get(&context); if (auto intType = dyn_cast(type)) { - return builder.create( - loc, type, builder.getIntegerAttr(type, val)); + return spirv::ConstantOp::create(builder, loc, type, + builder.getIntegerAttr(type, val)); } if (auto vectorType = dyn_cast(type)) { Type elemType = vectorType.getElementType(); if (auto intType = dyn_cast(elemType)) { - return builder.create( - loc, type, + return spirv::ConstantOp::create( + builder, loc, type, DenseElementsAttr::get(vectorType, IntegerAttr::get(elemType, val).getValue())); } diff --git a/mlir/unittests/IR/IRMapping.cpp b/mlir/unittests/IR/IRMapping.cpp index b88009d1e3c3..983c41a6c4ae 100644 --- a/mlir/unittests/IR/IRMapping.cpp +++ b/mlir/unittests/IR/IRMapping.cpp @@ -26,10 +26,10 @@ TEST(IRMapping, TypedValue) { Block block; builder.setInsertionPointToEnd(&block); - Value i64Val = builder.create( - loc, builder.getI64Type(), builder.getI64IntegerAttr(0)); - Value f64Val = builder.create( - loc, builder.getF64Type(), builder.getF64FloatAttr(0.0)); + Value i64Val = test::TestOpConstant::create( + builder, loc, builder.getI64Type(), builder.getI64IntegerAttr(0)); + Value f64Val = test::TestOpConstant::create( + builder, loc, builder.getF64Type(), builder.getF64FloatAttr(0.0)); IRMapping mapping; mapping.map(i64Val, f64Val); diff --git a/mlir/unittests/IR/InterfaceAttachmentTest.cpp b/mlir/unittests/IR/InterfaceAttachmentTest.cpp index 1b5d3b8c31bd..e1e65dad2798 100644 --- a/mlir/unittests/IR/InterfaceAttachmentTest.cpp +++ b/mlir/unittests/IR/InterfaceAttachmentTest.cpp @@ -303,7 +303,7 @@ TEST(InterfaceAttachment, Operation) { // Initially, the operation doesn't have the interface. OwningOpRef moduleOp = - builder.create(UnknownLoc::get(&context)); + ModuleOp::create(builder, UnknownLoc::get(&context)); ASSERT_FALSE(isa(moduleOp->getOperation())); // We can attach an external interface and now the operaiton has it. @@ -317,8 +317,8 @@ TEST(InterfaceAttachment, Operation) { // Default implementation can be overridden. OwningOpRef castOp = - builder.create(UnknownLoc::get(&context), - TypeRange(), ValueRange()); + UnrealizedConversionCastOp::create(builder, UnknownLoc::get(&context), + TypeRange(), ValueRange()); ASSERT_FALSE(isa(castOp->getOperation())); UnrealizedConversionCastOp::attachInterface( context); @@ -368,11 +368,11 @@ TEST(InterfaceAttachment, OperationDelayedContextConstruct) { OwningOpRef module = ModuleOp::create(UnknownLoc::get(&context)); OpBuilder builder(module->getBody(), module->getBody()->begin()); auto opJ = - builder.create(builder.getUnknownLoc(), builder.getI32Type()); + test::OpJ::create(builder, builder.getUnknownLoc(), builder.getI32Type()); auto opH = - builder.create(builder.getUnknownLoc(), opJ.getResult()); + test::OpH::create(builder, builder.getUnknownLoc(), opJ.getResult()); auto opI = - builder.create(builder.getUnknownLoc(), opJ.getResult()); + test::OpI::create(builder, builder.getUnknownLoc(), opJ.getResult()); EXPECT_TRUE(isa(module->getOperation())); EXPECT_TRUE(isa(opJ.getOperation())); @@ -399,11 +399,11 @@ TEST(InterfaceAttachment, OperationDelayedContextAppend) { OwningOpRef module = ModuleOp::create(UnknownLoc::get(&context)); OpBuilder builder(module->getBody(), module->getBody()->begin()); auto opJ = - builder.create(builder.getUnknownLoc(), builder.getI32Type()); + test::OpJ::create(builder, builder.getUnknownLoc(), builder.getI32Type()); auto opH = - builder.create(builder.getUnknownLoc(), opJ.getResult()); + test::OpH::create(builder, builder.getUnknownLoc(), opJ.getResult()); auto opI = - builder.create(builder.getUnknownLoc(), opJ.getResult()); + test::OpI::create(builder, builder.getUnknownLoc(), opJ.getResult()); EXPECT_FALSE(isa(module->getOperation())); EXPECT_FALSE(isa(opJ.getOperation())); diff --git a/mlir/unittests/IR/InterfaceTest.cpp b/mlir/unittests/IR/InterfaceTest.cpp index 42196b003e7d..235163cbebb8 100644 --- a/mlir/unittests/IR/InterfaceTest.cpp +++ b/mlir/unittests/IR/InterfaceTest.cpp @@ -27,12 +27,12 @@ TEST(InterfaceTest, OpInterfaceDenseMapKey) { OwningOpRef module = ModuleOp::create(UnknownLoc::get(&context)); OpBuilder builder(module->getBody(), module->getBody()->begin()); - auto op1 = builder.create(builder.getUnknownLoc(), - builder.getI32Type()); - auto op2 = builder.create(builder.getUnknownLoc(), - builder.getI32Type()); - auto op3 = builder.create(builder.getUnknownLoc(), - builder.getI32Type()); + auto op1 = test::SideEffectOp::create(builder, builder.getUnknownLoc(), + builder.getI32Type()); + auto op2 = test::SideEffectOp::create(builder, builder.getUnknownLoc(), + builder.getI32Type()); + auto op3 = test::SideEffectOp::create(builder, builder.getUnknownLoc(), + builder.getI32Type()); DenseSet opSet; opSet.insert(op1); opSet.insert(op2); @@ -64,8 +64,8 @@ TEST(InterfaceTest, TestCustomClassOf) { context.loadDialect(); OpBuilder builder(&context); - auto op = builder.create( - builder.getUnknownLoc(), /*implementsInterface=*/true); + auto op = TestOpOptionallyImplementingInterface::create( + builder, builder.getUnknownLoc(), /*implementsInterface=*/true); EXPECT_TRUE(isa(*op)); op.setImplementsInterface(false); EXPECT_FALSE(isa(*op)); diff --git a/mlir/unittests/IR/OperationSupportTest.cpp b/mlir/unittests/IR/OperationSupportTest.cpp index 7bc1a044d0da..9f3e7ed34a27 100644 --- a/mlir/unittests/IR/OperationSupportTest.cpp +++ b/mlir/unittests/IR/OperationSupportTest.cpp @@ -302,8 +302,8 @@ TEST(OperandStorageTest, PopulateDefaultAttrs) { auto req1 = b.getI32IntegerAttr(10); auto req2 = b.getI32IntegerAttr(60); // Verify default attributes populated post op creation. - Operation *op = b.create(b.getUnknownLoc(), req1, nullptr, - nullptr, req2); + Operation *op = test::OpAttrMatch1::create(b, b.getUnknownLoc(), req1, + nullptr, nullptr, req2); auto opt = op->getInherentAttr("default_valued_attr"); EXPECT_NE(opt, nullptr) << *op; @@ -343,11 +343,11 @@ TEST(OperationEquivalenceTest, HashWorksWithFlags) { // Check ignore properties. auto req1 = b.getI32IntegerAttr(10); - Operation *opWithProperty1 = b.create( - b.getUnknownLoc(), req1, nullptr, nullptr, req1); + Operation *opWithProperty1 = test::OpAttrMatch1::create( + b, b.getUnknownLoc(), req1, nullptr, nullptr, req1); auto req2 = b.getI32IntegerAttr(60); - Operation *opWithProperty2 = b.create( - b.getUnknownLoc(), req2, nullptr, nullptr, req2); + Operation *opWithProperty2 = test::OpAttrMatch1::create( + b, b.getUnknownLoc(), req2, nullptr, nullptr, req2); EXPECT_EQ(getHash(opWithProperty1, OperationEquivalence::IgnoreProperties), getHash(opWithProperty2, OperationEquivalence::IgnoreProperties)); EXPECT_NE(getHash(opWithProperty1, OperationEquivalence::None), diff --git a/mlir/unittests/TableGen/OpBuildGen.cpp b/mlir/unittests/TableGen/OpBuildGen.cpp index 74e62aacd5e8..09430336de99 100644 --- a/mlir/unittests/TableGen/OpBuildGen.cpp +++ b/mlir/unittests/TableGen/OpBuildGen.cpp @@ -36,12 +36,11 @@ protected: OpBuildGenTest() : ctx(getContext()), builder(&ctx), loc(builder.getUnknownLoc()), i32Ty(builder.getI32Type()), f32Ty(builder.getF32Type()), - cstI32(builder.create(loc, i32Ty)), - cstF32(builder.create(loc, f32Ty)), - noAttrs(), attrStorage{builder.getNamedAttr("attr0", - builder.getBoolAttr(true)), - builder.getNamedAttr( - "attr1", builder.getI32IntegerAttr(33))}, + cstI32(test::TableGenConstant::create(builder, loc, i32Ty)), + cstF32(test::TableGenConstant::create(builder, loc, f32Ty)), noAttrs(), + attrStorage{ + builder.getNamedAttr("attr0", builder.getBoolAttr(true)), + builder.getNamedAttr("attr1", builder.getI32IntegerAttr(33))}, attrs(attrStorage) {} // Verify that `op` has the given set of result types, operands, and @@ -123,21 +122,21 @@ protected: /// Test basic build methods. TEST_F(OpBuildGenTest, BasicBuildMethods) { // Test separate args, separate results build method. - auto op = builder.create(loc, i32Ty, *cstI32); + auto op = test::TableGenBuildOp0::create(builder, loc, i32Ty, *cstI32); verifyOp(op, {i32Ty}, {*cstI32}, noAttrs); // Test separate args, collective results build method. - op = builder.create(loc, TypeRange{i32Ty}, *cstI32); + op = test::TableGenBuildOp0::create(builder, loc, TypeRange{i32Ty}, *cstI32); verifyOp(op, {i32Ty}, {*cstI32}, noAttrs); // Test collective args, collective params build method. - op = builder.create(loc, TypeRange{i32Ty}, - ValueRange{*cstI32}); + op = test::TableGenBuildOp0::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32}); verifyOp(op, {i32Ty}, {*cstI32}, noAttrs); // Test collective args, collective results, non-empty attributes - op = builder.create(loc, TypeRange{i32Ty}, - ValueRange{*cstI32}, attrs); + op = test::TableGenBuildOp0::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32}, attrs); verifyOp(op, {i32Ty}, {*cstI32}, attrs); } @@ -154,25 +153,25 @@ TEST_F(OpBuildGenTest, BasicBuildMethods) { /// variadic result. TEST_F(OpBuildGenTest, BuildMethodsSingleVariadicArgAndResult) { // Test collective args, collective results method, building a unary op. - auto op = builder.create(loc, TypeRange{i32Ty}, - ValueRange{*cstI32}); + auto op = test::TableGenBuildOp1::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32}); verifyOp(op, {i32Ty}, {*cstI32}, noAttrs); // Test collective args, collective results method, building a unary op with // named attributes. - op = builder.create(loc, TypeRange{i32Ty}, - ValueRange{*cstI32}, attrs); + op = test::TableGenBuildOp1::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32}, attrs); verifyOp(op, {i32Ty}, {*cstI32}, attrs); // Test collective args, collective results method, building a binary op. - op = builder.create(loc, TypeRange{i32Ty, f32Ty}, - ValueRange{*cstI32, *cstF32}); + op = test::TableGenBuildOp1::create(builder, loc, TypeRange{i32Ty, f32Ty}, + ValueRange{*cstI32, *cstF32}); verifyOp(op, {i32Ty, f32Ty}, {*cstI32, *cstF32}, noAttrs); // Test collective args, collective results method, building a binary op with // named attributes. - op = builder.create( - loc, TypeRange{i32Ty, f32Ty}, ValueRange{*cstI32, *cstF32}, attrs); + op = test::TableGenBuildOp1::create(builder, loc, TypeRange{i32Ty, f32Ty}, + ValueRange{*cstI32, *cstF32}, attrs); verifyOp(op, {i32Ty, f32Ty}, {*cstI32, *cstF32}, attrs); } @@ -181,22 +180,22 @@ TEST_F(OpBuildGenTest, BuildMethodsSingleVariadicArgAndResult) { TEST_F(OpBuildGenTest, BuildMethodsSingleVariadicArgNonVariadicResults) { // Test separate arg, separate param build method. auto op = - builder.create(loc, i32Ty, ValueRange{*cstI32}); + test::TableGenBuildOp1::create(builder, loc, i32Ty, ValueRange{*cstI32}); verifyOp(op, {i32Ty}, {*cstI32}, noAttrs); // Test collective params build method, no attributes. - op = builder.create(loc, TypeRange{i32Ty}, - ValueRange{*cstI32}); + op = test::TableGenBuildOp1::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32}); verifyOp(op, {i32Ty}, {*cstI32}, noAttrs); // Test collective params build method no attributes, 2 inputs. - op = builder.create(loc, TypeRange{i32Ty}, - ValueRange{*cstI32, *cstF32}); + op = test::TableGenBuildOp1::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32, *cstF32}); verifyOp(op, {i32Ty}, {*cstI32, *cstF32}, noAttrs); // Test collective params build method, non-empty attributes. - op = builder.create( - loc, TypeRange{i32Ty}, ValueRange{*cstI32, *cstF32}, attrs); + op = test::TableGenBuildOp1::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32, *cstF32}, attrs); verifyOp(op, {i32Ty}, {*cstI32, *cstF32}, attrs); } @@ -205,18 +204,18 @@ TEST_F(OpBuildGenTest, BuildMethodsSingleVariadicArgNonVariadicResults) { TEST_F(OpBuildGenTest, BuildMethodsSingleVariadicArgAndMultipleVariadicResults) { // Test separate arg, separate param build method. - auto op = builder.create( - loc, TypeRange{i32Ty}, TypeRange{f32Ty}, ValueRange{*cstI32}); + auto op = test::TableGenBuildOp3::create( + builder, loc, TypeRange{i32Ty}, TypeRange{f32Ty}, ValueRange{*cstI32}); verifyOp(op, {i32Ty, f32Ty}, {*cstI32}, noAttrs); // Test collective params build method, no attributes. - op = builder.create(loc, TypeRange{i32Ty, f32Ty}, - ValueRange{*cstI32}); + op = test::TableGenBuildOp3::create(builder, loc, TypeRange{i32Ty, f32Ty}, + ValueRange{*cstI32}); verifyOp(op, {i32Ty, f32Ty}, {*cstI32}, noAttrs); // Test collective params build method, with attributes. - op = builder.create(loc, TypeRange{i32Ty, f32Ty}, - ValueRange{*cstI32}, attrs); + op = test::TableGenBuildOp3::create(builder, loc, TypeRange{i32Ty, f32Ty}, + ValueRange{*cstI32}, attrs); verifyOp(op, {i32Ty, f32Ty}, {*cstI32}, attrs); } @@ -227,29 +226,29 @@ TEST_F(OpBuildGenTest, // build methods with no result types as they are inferred from the input types. TEST_F(OpBuildGenTest, BuildMethodsSameOperandsAndResultTypeSuppression) { // Test separate arg, separate param build method. - auto op = builder.create( - loc, i32Ty, ValueRange{*cstI32, *cstI32}); + auto op = test::TableGenBuildOp4::create(builder, loc, i32Ty, + ValueRange{*cstI32, *cstI32}); verifyOp(std::move(op), {i32Ty}, {*cstI32, *cstI32}, noAttrs); // Test collective params build method. - op = builder.create(loc, TypeRange{i32Ty}, - ValueRange{*cstI32, *cstI32}); + op = test::TableGenBuildOp4::create(builder, loc, TypeRange{i32Ty}, + ValueRange{*cstI32, *cstI32}); verifyOp(std::move(op), {i32Ty}, {*cstI32, *cstI32}, noAttrs); // Test build method with no result types, default value of attributes. - op = - builder.create(loc, ValueRange{*cstI32, *cstI32}); + op = test::TableGenBuildOp4::create(builder, loc, + ValueRange{*cstI32, *cstI32}); verifyOp(std::move(op), {i32Ty}, {*cstI32, *cstI32}, noAttrs); // Test build method with no result types and supplied attributes. - op = builder.create(loc, ValueRange{*cstI32, *cstI32}, - attrs); + op = test::TableGenBuildOp4::create(builder, loc, + ValueRange{*cstI32, *cstI32}, attrs); verifyOp(std::move(op), {i32Ty}, {*cstI32, *cstI32}, attrs); } TEST_F(OpBuildGenTest, BuildMethodsRegionsAndInferredType) { - auto op = builder.create( - loc, ValueRange{*cstI32, *cstF32}, /*attributes=*/noAttrs); + auto op = test::TableGenBuildOp5::create( + builder, loc, ValueRange{*cstI32, *cstF32}, /*attributes=*/noAttrs); ASSERT_EQ(op->getNumRegions(), 1u); verifyOp(op, {i32Ty}, {*cstI32, *cstF32}, noAttrs); } @@ -266,28 +265,28 @@ TEST_F(OpBuildGenTest, BuildMethodsVariadicProperties) { ArrayRef attrs(attrsStorage); // Test separate arg, separate param build method. - auto op = builder.create( - loc, f32Ty, ValueRange{*cstI32}, ValueRange{*cstI32}); + auto op = test::TableGenBuildOp6::create( + builder, loc, f32Ty, ValueRange{*cstI32}, ValueRange{*cstI32}); verifyOp(std::move(op), {f32Ty}, {*cstI32}, {*cstI32}, noAttrs); // Test build method with no result types, default value of attributes. - op = builder.create(loc, ValueRange{*cstI32}, - ValueRange{*cstI32}); + op = test::TableGenBuildOp6::create(builder, loc, ValueRange{*cstI32}, + ValueRange{*cstI32}); verifyOp(std::move(op), {f32Ty}, {*cstI32}, {*cstI32}, noAttrs); // Test collective params build method. - op = builder.create( - loc, TypeRange{f32Ty}, ValueRange{*cstI32}, ValueRange{*cstI32}); + op = test::TableGenBuildOp6::create(builder, loc, TypeRange{f32Ty}, + ValueRange{*cstI32}, ValueRange{*cstI32}); verifyOp(std::move(op), {f32Ty}, {*cstI32}, {*cstI32}, noAttrs); // Test build method with result types, supplied attributes. - op = builder.create( - loc, TypeRange{f32Ty}, ValueRange{*cstI32, *cstI32}, attrs); + op = test::TableGenBuildOp6::create(builder, loc, TypeRange{f32Ty}, + ValueRange{*cstI32, *cstI32}, attrs); verifyOp(std::move(op), {f32Ty}, {*cstI32}, {*cstI32}, attrs); // Test build method with no result types and supplied attributes. - op = builder.create(loc, ValueRange{*cstI32, *cstI32}, - attrs); + op = test::TableGenBuildOp6::create(builder, loc, + ValueRange{*cstI32, *cstI32}, attrs); verifyOp(std::move(op), {f32Ty}, {*cstI32}, {*cstI32}, attrs); } @@ -295,14 +294,14 @@ TEST_F(OpBuildGenTest, BuildMethodsInherentDiscardableAttrs) { test::TableGenBuildOp7::Properties props; props.attr0 = cast(attrs[0].getValue()); ArrayRef discardableAttrs = attrs.drop_front(); - auto op7 = builder.create( - loc, TypeRange{}, ValueRange{}, props, discardableAttrs); + auto op7 = test::TableGenBuildOp7::create( + builder, loc, TypeRange{}, ValueRange{}, props, discardableAttrs); verifyOp(op7, {}, {}, attrs); // Check that the old-style builder where all the attributes go in the same // place works. - auto op7b = builder.create(loc, TypeRange{}, - ValueRange{}, attrs); + auto op7b = test::TableGenBuildOp7::create(builder, loc, TypeRange{}, + ValueRange{}, attrs); // Note: this goes before verifyOp() because verifyOp() calls erase(), causing // use-after-free. ASSERT_EQ(op7b.getProperties().getAttr0(), attrs[0].getValue());