[PATCH] D74119: [NFC][mlir] Adding some helpful EDSC intrinsics

Kern Handa via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 7 23:28:18 PST 2020


kernhanda updated this revision to Diff 243350.
kernhanda marked an inline comment as done.
kernhanda added a comment.

ran clang-format


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74119/new/

https://reviews.llvm.org/D74119

Files:
  mlir/include/mlir/EDSC/Intrinsics.h
  mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp


Index: mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
===================================================================
--- mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
+++ mlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
@@ -51,7 +51,7 @@
 using addi = ValueBuilder<mlir::AddIOp>;
 using bitcast = ValueBuilder<mlir::LLVM::BitcastOp>;
 using cmpi = ValueBuilder<mlir::CmpIOp>;
-using constant = ValueBuilder<mlir::LLVM::ConstantOp>;
+using llvm_constant = ValueBuilder<mlir::LLVM::ConstantOp>;
 using extractvalue = ValueBuilder<mlir::LLVM::ExtractValueOp>;
 using gep = ValueBuilder<mlir::LLVM::GEPOp>;
 using insertvalue = ValueBuilder<mlir::LLVM::InsertValueOp>;
@@ -264,8 +264,8 @@
     if (sliceOp.getShapedType().getRank() == 0)
       return rewriter.replaceOp(op, {desc}), matchSuccess();
 
-    Value zero =
-        constant(int64Ty, rewriter.getIntegerAttr(rewriter.getIndexType(), 0));
+    Value zero = llvm_constant(
+        int64Ty, rewriter.getIntegerAttr(rewriter.getIndexType(), 0));
     // Compute and insert view sizes (max - min along the range) and strides.
     // Skip the non-range operands as they will be projected away from the view.
     int numNewDims = 0;
Index: mlir/include/mlir/EDSC/Intrinsics.h
===================================================================
--- mlir/include/mlir/EDSC/Intrinsics.h
+++ mlir/include/mlir/EDSC/Intrinsics.h
@@ -107,7 +107,10 @@
   SmallVector<Value, 8> values;
 };
 
-template <typename T> inline T unpack(T value) { return value; }
+template <typename T>
+inline T unpack(T value) {
+  return value;
+}
 
 inline detail::ValueHandleArray unpack(ArrayRef<ValueHandle> values) {
   return detail::ValueHandleArray(values);
@@ -122,7 +125,8 @@
 /// Implementing it as a subclass allows it to compose all the way to Value.
 /// Without subclassing, implicit conversion to Value would fail when composing
 /// in patterns such as: `select(a, b, select(c, d, e))`.
-template <typename Op> struct ValueBuilder : public ValueHandle {
+template <typename Op>
+struct ValueBuilder : public ValueHandle {
   // Builder-based
   template <typename... Args>
   ValueBuilder(Args... args)
@@ -169,7 +173,8 @@
   ValueBuilder() : ValueHandle(ValueHandle::create<Op>()) {}
 };
 
-template <typename Op> struct OperationBuilder : public OperationHandle {
+template <typename Op>
+struct OperationBuilder : public OperationHandle {
   template <typename... Args>
   OperationBuilder(Args... args)
       : OperationHandle(OperationHandle::create<Op>(detail::unpack(args)...)) {}
@@ -200,11 +205,14 @@
 using affine_store = OperationBuilder<AffineStoreOp>;
 using alloc = ValueBuilder<AllocOp>;
 using call = OperationBuilder<mlir::CallOp>;
+using constant = ValueBuilder<ConstantOp>;
 using constant_float = ValueBuilder<ConstantFloatOp>;
 using constant_index = ValueBuilder<ConstantIndexOp>;
 using constant_int = ValueBuilder<ConstantIntOp>;
 using dealloc = OperationBuilder<DeallocOp>;
 using dim = ValueBuilder<DimOp>;
+using extract_element = ValueBuilder<ExtractElementOp>;
+using index_cast = ValueBuilder<IndexCastOp>;
 using muli = ValueBuilder<MulIOp>;
 using mulf = ValueBuilder<MulFOp>;
 using memref_cast = ValueBuilder<MemRefCastOp>;
@@ -213,7 +221,10 @@
 using std_load = ValueBuilder<LoadOp>;
 using std_store = OperationBuilder<StoreOp>;
 using subi = ValueBuilder<SubIOp>;
+using sub_view = ValueBuilder<SubViewOp>;
 using tanh = ValueBuilder<TanhOp>;
+using tensor_load = ValueBuilder<TensorLoadOp>;
+using tensor_store = OperationBuilder<TensorStoreOp>;
 using view = ValueBuilder<ViewOp>;
 using zero_extendi = ValueBuilder<ZeroExtendIOp>;
 using sign_extendi = ValueBuilder<SignExtendIOp>;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74119.243350.patch
Type: text/x-patch
Size: 3682 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200208/ef45fbc9/attachment.bin>


More information about the llvm-commits mailing list