Revert "Defend early against operation created without a registered dialect"
authorMehdi Amini <joker.eph@gmail.com>
Thu, 15 Jul 2021 03:31:19 +0000 (03:31 +0000)
committerMehdi Amini <joker.eph@gmail.com>
Thu, 15 Jul 2021 03:31:44 +0000 (03:31 +0000)
This reverts commit 58018858e887320e2432e2e00ace13273b8a1f29.

The Python bindings test are broken.

mlir/lib/IR/BuiltinAttributes.cpp
mlir/lib/IR/BuiltinTypes.cpp
mlir/lib/IR/Operation.cpp
mlir/lib/IR/Verifier.cpp
mlir/lib/Parser/Parser.cpp
mlir/test/CAPI/ir.c
mlir/test/Dialect/PDL/invalid.mlir
mlir/test/IR/invalid-module-op.mlir
mlir/test/IR/invalid-unregistered.mlir
mlir/test/lit.cfg.py
mlir/unittests/Pass/PassManagerTest.cpp

index 85914be..763ab80 100644 (file)
@@ -360,7 +360,7 @@ LogicalResult OpaqueAttr::verify(function_ref<InFlightDiagnostic()> emitError,
            << " attribute created with unregistered dialect. If this is "
               "intended, please call allowUnregisteredDialects() on the "
               "MLIRContext, or use -allow-unregistered-dialect with "
-              "the MLIR opt tool used";
+              "mlir-opt";
   }
 
   return success();
index 5dfb14b..f350596 100644 (file)
@@ -264,7 +264,7 @@ LogicalResult OpaqueType::verify(function_ref<InFlightDiagnostic()> emitError,
            << "` type created with unregistered dialect. If this is "
               "intended, please call allowUnregisteredDialects() on the "
               "MLIRContext, or use -allow-unregistered-dialect with "
-              "the MLIR opt tool used";
+              "mlir-opt";
   }
 
   return success();
index 97059ba..cff6865 100644 (file)
@@ -176,14 +176,6 @@ Operation::Operation(Location location, OperationName name, unsigned numResults,
       numRegions(numRegions), hasOperandStorage(hasOperandStorage), name(name),
       attrs(attributes) {
   assert(attributes && "unexpected null attribute dictionary");
-#ifndef NDEBUG
-  if (!getDialect() && !getContext()->allowsUnregisteredDialects())
-    llvm::report_fatal_error(
-        name.getStringRef() +
-        " created with unregistered dialect. If this is intended, please call "
-        "allowUnregisteredDialects() on the MLIRContext, or use "
-        "-allow-unregistered-dialect with the MLIR opt tool used");
-#endif
 }
 
 // Operations are deleted through the destroy() member because they are
index 084fd8c..4206867 100644 (file)
@@ -230,7 +230,7 @@ LogicalResult OperationVerifier::verifyOperation(
              << "created with unregistered dialect. If this is "
                 "intended, please call allowUnregisteredDialects() on the "
                 "MLIRContext, or use -allow-unregistered-dialect with "
-                "the MLIR opt tool used";
+                "mlir-opt";
     }
     return success();
   }
index 3bf2260..08d8dd9 100644 (file)
@@ -653,7 +653,7 @@ Value OperationParser::resolveSSAUse(SSAUseInfo useInfo, Type type) {
 
   // Otherwise, this is a forward reference.  Create a placeholder and remember
   // that we did so.
-  Value result = createForwardRefPlaceholder(useInfo.loc, type);
+  auto result = createForwardRefPlaceholder(useInfo.loc, type);
   entries[useInfo.number] = {result, useInfo.loc};
   return maybeRecordUse(result);
 }
@@ -730,7 +730,7 @@ Value OperationParser::createForwardRefPlaceholder(SMLoc loc, Type type) {
   // We create these placeholders as having an empty name, which we know
   // cannot be created through normal user input, allowing us to distinguish
   // them.
-  auto name = OperationName("unrealized_conversion_cast", getContext());
+  auto name = OperationName("placeholder", getContext());
   auto *op = Operation::create(
       getEncodedSourceLocation(loc), name, type, /*operands=*/{},
       /*attributes=*/llvm::None, /*successors=*/{}, /*numRegions=*/0);
index 3bff3b8..ac8a0dc 100644 (file)
@@ -479,7 +479,6 @@ static int constructAndTraverseIr(MlirContext ctx) {
 /// block/operation-relative API and their final order is checked.
 static void buildWithInsertionsAndPrint(MlirContext ctx) {
   MlirLocation loc = mlirLocationUnknownGet(ctx);
-  mlirContextSetAllowUnregisteredDialects(ctx, true);
 
   MlirRegion owningRegion = mlirRegionCreate();
   MlirBlock nullBlock = mlirRegionGetFirstBlock(owningRegion);
@@ -543,7 +542,6 @@ static void buildWithInsertionsAndPrint(MlirContext ctx) {
 
   mlirOperationDump(op);
   mlirOperationDestroy(op);
-  mlirContextSetAllowUnregisteredDialects(ctx, false);
   // clang-format off
   // CHECK-LABEL:  "insertion.order.test"
   // CHECK:      ^{{.*}}(%{{.*}}: i1
@@ -1563,8 +1561,6 @@ int testOperands() {
   // CHECK-LABEL: @testOperands
 
   MlirContext ctx = mlirContextCreate();
-  mlirRegisterAllDialects(ctx);
-  mlirContextGetOrLoadDialect(ctx, mlirStringRefCreateFromCString("test"));
   MlirLocation loc = mlirLocationUnknownGet(ctx);
   MlirType indexType = mlirIndexTypeGet(ctx);
 
@@ -1594,7 +1590,6 @@ int testOperands() {
   MlirValue constOneValue = mlirOperationGetResult(constOne, 0);
 
   // Create the operation under test.
-  mlirContextSetAllowUnregisteredDialects(ctx, true);
   MlirOperationState opState =
       mlirOperationStateGet(mlirStringRefCreateFromCString("dummy.op"), loc);
   MlirValue initialOperands[] = {constZeroValue};
@@ -1609,13 +1604,13 @@ int testOperands() {
   MlirValue opOperand = mlirOperationGetOperand(op, 0);
   fprintf(stderr, "Original operand: ");
   mlirValuePrint(opOperand, printToStderr, NULL);
-  // CHECK: Original operand: {{.+}} constant 0 : index
+  // CHECK: Original operand: {{.+}} {value = 0 : index}
 
   mlirOperationSetOperand(op, 0, constOneValue);
   opOperand = mlirOperationGetOperand(op, 0);
   fprintf(stderr, "Updated operand: ");
   mlirValuePrint(opOperand, printToStderr, NULL);
-  // CHECK: Updated operand: {{.+}} constant 1 : index
+  // CHECK: Updated operand: {{.+}} {value = 1 : index}
 
   mlirOperationDestroy(op);
   mlirOperationDestroy(constZero);
@@ -1631,8 +1626,6 @@ int testClone() {
   // CHECK-LABEL: @testClone
 
   MlirContext ctx = mlirContextCreate();
-  mlirRegisterAllDialects(ctx);
-  mlirContextGetOrLoadDialect(ctx, mlirStringRefCreateFromCString("std"));
   MlirLocation loc = mlirLocationUnknownGet(ctx);
   MlirType indexType = mlirIndexTypeGet(ctx);
   MlirStringRef valueStringRef =  mlirStringRefCreateFromCString("value");
@@ -1653,8 +1646,8 @@ int testClone() {
 
   mlirOperationPrint(constZero, printToStderr, NULL);
   mlirOperationPrint(constOne, printToStderr, NULL);
-  // CHECK: constant 0 : index
-  // CHECK: constant 1 : index
+  // CHECK: %0 = "std.constant"() {value = 0 : index} : () -> index
+  // CHECK: %0 = "std.constant"() {value = 1 : index} : () -> index
 
   return 0;
 }
index 009b622..e371d84 100644 (file)
@@ -167,7 +167,7 @@ pdl.pattern : benefit(1) {
 // expected-error@below {{expected only `pdl` operations within the pattern body}}
 pdl.pattern : benefit(1) {
   // expected-note@below {{see non-`pdl` operation defined here}}
-  "test.foo.other_op"() : () -> ()
+  "foo.other_op"() : () -> ()
 
   %root = pdl.operation "foo.op"
   pdl.rewrite %root with "foo"
index d0de3db..741a3a9 100644 (file)
@@ -6,9 +6,9 @@ func @module_op() {
   // expected-error@+1 {{Operations with a 'SymbolTable' must have exactly one block}}
   module {
   ^bb1:
-    "test.dummy"() : () -> ()
+    "module_terminator"() : () -> ()
   ^bb2:
-    "test.dummy"() : () -> ()
+    "module_terminator"() : () -> ()
   }
   return
 }
index 30d4b7a..37ac45e 100644 (file)
@@ -1,7 +1,5 @@
 // RUN: mlir-opt %s -split-input-file -verify-diagnostics
 
-// REQUIRES: noasserts
-
 // expected-error @below {{op created with unregistered dialect}}
 "unregistered_dialect.op"() : () -> ()
 
index a362645..dd38b8f 100644 (file)
@@ -111,8 +111,3 @@ if config.enable_bindings_python:
         # lib/Bindings/Python/CMakeLists.txt for where this is set up.
         os.path.join(config.llvm_obj_root, 'python'),
     ], append_path=True)
-
-if config.enable_assertions:
-    config.available_features.add('asserts')
-else:
-    config.available_features.add('noasserts')
index 8db7e5e..6e4283d 100644 (file)
@@ -91,7 +91,6 @@ struct InvalidPass : Pass {
 
 TEST(PassManagerTest, InvalidPass) {
   MLIRContext context;
-  context.allowUnregisteredDialects();
 
   // Create a module
   OwningModuleRef module(ModuleOp::create(UnknownLoc::get(&context)));