[mlir] Fully qualify MemoryEffects
authorMarkus Böck <markus.boeck02@gmail.com>
Fri, 30 Jul 2021 16:19:30 +0000 (18:19 +0200)
committerMarkus Böck <markus.boeck02@gmail.com>
Fri, 30 Jul 2021 16:20:06 +0000 (18:20 +0200)
The effect name is used by tablegen when generating the getEffects method of the SideEffectInterfaces. It is currently unqualified even though the class is contained within the mlir namespace, leading to compiler errors when using namespace mlir; isn't used before including the generated cpp file.

This patch fixes that by simply fully qualifying the class name.

Differential Revision: https://reviews.llvm.org/D107171

mlir/include/mlir/Interfaces/SideEffectInterfaces.td
mlir/test/mlir-tblgen/op-side-effects.td

index 9c4aee8..1c12a5a 100644 (file)
@@ -49,28 +49,28 @@ class MemoryEffects<list<MemoryEffect> effects = []>
 // resource. An 'allocate' effect implies only allocation of the resource, and
 // not any visible mutation or dereference.
 class MemAlloc<Resource resource>
-  : MemoryEffect<"MemoryEffects::Allocate", resource>;
+  : MemoryEffect<"::mlir::MemoryEffects::Allocate", resource>;
 def MemAlloc : MemAlloc<DefaultResource>;
 
 // The following effect indicates that the operation frees some resource that
 // has been allocated. A 'free' effect implies only de-allocation of the
 // resource, and not any visible allocation, mutation or dereference.
 class MemFree<Resource resource>
-  : MemoryEffect<"MemoryEffects::Free", resource>;
+  : MemoryEffect<"::mlir::MemoryEffects::Free", resource>;
 def MemFree : MemFree<DefaultResource>;
 
 // The following effect indicates that the operation reads from some
 // resource. A 'read' effect implies only dereferencing of the resource, and
 // not any visible mutation.
 class MemRead<Resource resource>
-  : MemoryEffect<"MemoryEffects::Read", resource>;
+  : MemoryEffect<"::mlir::MemoryEffects::Read", resource>;
 def MemRead : MemRead<DefaultResource>;
 
 // The following effect indicates that the operation writes to some
 // resource. A 'write' effect implies only mutating a resource, and not any
 // visible dereference or read.
 class MemWrite<Resource resource>
-  : MemoryEffect<"MemoryEffects::Write", resource>;
+  : MemoryEffect<"::mlir::MemoryEffects::Write", resource>;
 def MemWrite : MemWrite<DefaultResource>;
 
 //===----------------------------------------------------------------------===//
index 9e97e90..292fdfb 100644 (file)
@@ -25,13 +25,13 @@ def SideEffectOpB : TEST_Op<"side_effect_op_b",
 
 // CHECK: void SideEffectOpA::getEffects
 // CHECK:   for (::mlir::Value value : getODSOperands(0))
-// CHECK:     effects.emplace_back(MemoryEffects::Read::get(), value, ::mlir::SideEffects::DefaultResource::get());
-// CHECK:   effects.emplace_back(MemoryEffects::Read::get(), symbol(), ::mlir::SideEffects::DefaultResource::get());
-// CHECK:   effects.emplace_back(MemoryEffects::Write::get(), flat_symbol(), ::mlir::SideEffects::DefaultResource::get());
+// CHECK:     effects.emplace_back(::mlir::MemoryEffects::Read::get(), value, ::mlir::SideEffects::DefaultResource::get());
+// CHECK:   effects.emplace_back(::mlir::MemoryEffects::Read::get(), symbol(), ::mlir::SideEffects::DefaultResource::get());
+// CHECK:   effects.emplace_back(::mlir::MemoryEffects::Write::get(), flat_symbol(), ::mlir::SideEffects::DefaultResource::get());
 // CHECK:   if (auto symbolRef = optional_symbolAttr())
-// CHECK:     effects.emplace_back(MemoryEffects::Read::get(), symbolRef, ::mlir::SideEffects::DefaultResource::get());
+// CHECK:     effects.emplace_back(::mlir::MemoryEffects::Read::get(), symbolRef, ::mlir::SideEffects::DefaultResource::get());
 // CHECK:   for (::mlir::Value value : getODSResults(0))
-// CHECK:     effects.emplace_back(MemoryEffects::Allocate::get(), value, CustomResource::get());
+// CHECK:     effects.emplace_back(::mlir::MemoryEffects::Allocate::get(), value, CustomResource::get());
 
 // CHECK: void SideEffectOpB::getEffects
-// CHECK:   effects.emplace_back(MemoryEffects::Write::get(), CustomResource::get());
+// CHECK:   effects.emplace_back(::mlir::MemoryEffects::Write::get(), CustomResource::get());