[PATCH] D76857: [Matrix] Add may-contain-matrix-intrinsics attribute, unconditionally run lowering

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 26 09:12:19 PDT 2020


fhahn created this revision.
fhahn added reviewers: anemet, Gerolf, andrew.w.kaylor, LuoYuanke.
Herald added subscribers: tschuett, dexonsmith, hiraditya.
Herald added a project: LLVM.

This patch adds a new may-contain-matrix-intrinsics attribute to allow
frontends to mark a functions as requiring matrix lowering. This allows
us to run the LowerMatrixIntrinsics pass unconditionally, with it being
a no-op for functions without that attribute.

The main reason for introducing the attribute is to avoid doing an
unnecessary pass over each function in the lowering pass. This approach
should also works seamlessly with LTO combining modules built with and
without matrix support enabled.

This patch also extends the IR verifier to reject functions that contain
matrix intrinsics but are not marked as may-contain-matrix-intrinsics.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D76857

Files:
  llvm/docs/LangRef.rst
  llvm/include/llvm/IR/Attributes.td
  llvm/lib/IR/Verifier.cpp
  llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
  llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp
  llvm/test/Other/opt-O2-pipeline.ll
  llvm/test/Other/opt-O3-pipeline.ll
  llvm/test/Other/opt-Os-pipeline.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/bigger-expressions-double.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/lowering-drops-attr.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double-contraction-fmf.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double-contraction.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/multiply-double.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/multiply-float-contraction-fmf.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/multiply-float-contraction.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/multiply-float.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/multiply-i32.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/propagate-backward.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/propagate-backwards-unsupported.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/propagate-forward.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/propagate-mixed-users.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/propagate-multiple-iterations.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/remarks-inlining.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/remarks-shared-subtrees.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/remarks.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/strided-load-double.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/strided-load-float.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/strided-load-i32.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/strided-store-double.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/strided-store-float.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/strided-store-i32.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/transpose-double.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/transpose-float.ll
  llvm/test/Transforms/LowerMatrixIntrinsics/transpose-i32.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76857.252869.patch
Type: text/x-patch
Size: 49774 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200326/0836026d/attachment-0001.bin>


More information about the llvm-commits mailing list