[Mlir-commits] [mlir] f05308a - [MLIR][NFC] Move Shape::WitnessType Declaration.
Tres Popp
llvmlistbot at llvm.org
Wed Jul 29 11:00:39 PDT 2020
Author: Tres Popp
Date: 2020-07-29T20:00:28+02:00
New Revision: f05308a277b758462c91da7799f23eb4ede30c0c
URL: https://github.com/llvm/llvm-project/commit/f05308a277b758462c91da7799f23eb4ede30c0c
DIFF: https://github.com/llvm/llvm-project/commit/f05308a277b758462c91da7799f23eb4ede30c0c.diff
LOG: [MLIR][NFC] Move Shape::WitnessType Declaration.
This moves it from ShapeOps.td to ShapeBase.td
Differential Revision: https://reviews.llvm.org/D84845
Added:
Modified:
mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
Removed:
################################################################################
diff --git a/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td b/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
index 4c00c1f3c8f7..8f64e3c081e6 100644
--- a/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
+++ b/mlir/include/mlir/Dialect/Shape/IR/ShapeBase.td
@@ -124,4 +124,30 @@ def Shape_ShapeOrExtentTensorType : AnyTypeOf<[Shape_ShapeType,
def Shape_SizeOrIndexType : AnyTypeOf<[Shape_SizeType, Index], "size or index">;
+def Shape_WitnessType : DialectType<ShapeDialect,
+ CPred<"$_self.isa<::mlir::shape::WitnessType>()">, "witness">,
+ BuildableType<"$_builder.getType<::mlir::shape::WitnessType>()"> {
+ let typeDescription = [{
+ A witness is a structural device in the compiler to maintain ordering of
+ code relying on information obtained from passing assertions. Witnesses do
+ not represent any physical data.
+
+ "cstr_" operations will return witnesses and be lowered into assertion logic
+ when not resolvable at compile time.
+
+ "assuming_" operations will take witnesses as input and represent only
+ information to the compiler, so they do not exist in executing code. Code
+ that is dependent on "assuming_" operations can assume all cstr operations
+ transitively before are honored as true.
+
+ These abstractions are intended to allow the compiler more freedom with
+ assertions by merely showing the assertion through dataflow at this time
+ rather than a side effecting operation that acts as a barrier. This can be
+ viewed similarly to a compiler representation of promises from asynchronous,
+ possibly crashing assertions. Reliant code will not be reordered to before
+ the code and non-reliant code can be reordered freely, and there are no
+ guarantees on the final ordering of the assertions or their related code.
+ }];
+}
+
#endif // SHAPE_BASE_TD
diff --git a/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td b/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
index 7b7da042834a..72e392b256db 100644
--- a/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
+++ b/mlir/include/mlir/Dialect/Shape/IR/ShapeOps.td
@@ -19,32 +19,6 @@ include "mlir/Interfaces/InferTypeOpInterface.td"
include "mlir/Interfaces/SideEffectInterfaces.td"
include "mlir/IR/OpAsmInterface.td"
-def Shape_WitnessType : DialectType<ShapeDialect,
- CPred<"$_self.isa<::mlir::shape::WitnessType>()">, "witness">,
- BuildableType<"$_builder.getType<::mlir::shape::WitnessType>()"> {
- let typeDescription = [{
- A witness is a structural device in the compiler to maintain ordering of
- code relying on information obtained from passing assertions. Witnesses do
- not represent any physical data.
-
- "cstr_" operations will return witnesses and be lowered into assertion logic
- when not resolvable at compile time.
-
- "assuming_" operations will take witnesses as input and represent only
- information to the compiler, so they do not exist in executing code. Code
- that is dependent on "assuming_" operations can assume all cstr operations
- transitively before are honored as true.
-
- These abstractions are intended to allow the compiler more freedom with
- assertions by merely showing the assertion through dataflow at this time
- rather than a side effecting operation that acts as a barrier. This can be
- viewed similarly to a compiler representation of promises from asynchronous,
- possibly crashing assertions. Reliant code will not be reordered to before
- the code and non-reliant code can be reordered freely, and there are no
- guarantees on the final ordering of the assertions or their related code.
- }];
-}
-
//===----------------------------------------------------------------------===//
// Shape op definitions
//===----------------------------------------------------------------------===//
More information about the Mlir-commits
mailing list