summaryrefslogtreecommitdiffstats
path: root/mlir/lib/Transforms/Utils/Utils.cpp
diff options
context:
space:
mode:
authorNicolas Vasilache <ntv@google.com>2018-10-30 07:54:23 -0700
committerjpienaar <jpienaar@google.com>2019-03-29 13:44:26 -0700
commitaf7f56fdf84e1b2b548b7b24c933b74349cbc88e (patch)
tree99e1d0ab6e674e5f2d4af652d9ddf8a507f42a0f /mlir/lib/Transforms/Utils/Utils.cpp
parent19f14b72bbfa4ae5b7ae108faaf08aa392bf7216 (diff)
downloadbcm5719-llvm-af7f56fdf84e1b2b548b7b24c933b74349cbc88e.tar.gz
bcm5719-llvm-af7f56fdf84e1b2b548b7b24c933b74349cbc88e.zip
[MLIR] Implement 1-D vectorization for fastest varying load/stores
This CL is a first in a series that implements early vectorization of increasingly complex patterns. In particular, early vectorization will support arbitrary loop nesting patterns (both perfectly and imperfectly nested), at arbitrary depths in the loop tree. This first CL builds the minimal support for applying 1-D patterns. It relies on an unaligned load/store op abstraction that can be inplemented differently on different HW. Future CLs will support higher dimensional patterns, but 1-D patterns already exhibit interesting properties. In particular, we want to separate pattern matching (i.e. legality both structural and dependency analysis based), from profitability analysis, from application of the transformation. As a consequence patterns may intersect and we need to verify that a pattern can still apply by the time we get to applying it. A non-greedy analysis on profitability that takes into account pattern intersection is left for future work. Additionally the CL makes the following cleanups: 1. the matches method now returns a value, not a reference; 2. added comments about the MLFunctionMatcher and MLFunctionMatches usage by value; 3. added size and empty methods to matches; 4. added a negative vectorization test with a conditional, this exhibited a but in the iterators. Iterators now return nullptr if the underlying storage is nullpt. PiperOrigin-RevId: 219299489
Diffstat (limited to 'mlir/lib/Transforms/Utils/Utils.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud