aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
diff options
context:
space:
mode:
authorMatthias Springer <springerm@google.com>2021-10-15 10:19:14 +0900
committerMatthias Springer <springerm@google.com>2021-10-15 10:31:02 +0900
commitd3cb6bf2d462958f2a6573e6390cca71d13dee6b (patch)
tree028db68444e72c62078f0503e37dd42a2301157f /llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
parent3f96f7b30c91b912de1c6c7c03ab6a4c18e8aa26 (diff)
downloadllvm-d3cb6bf2d462958f2a6573e6390cca71d13dee6b.zip
llvm-d3cb6bf2d462958f2a6573e6390cca71d13dee6b.tar.gz
llvm-d3cb6bf2d462958f2a6573e6390cca71d13dee6b.tar.bz2
[mlir][linalg][bufferize] Rewrite conflict detection
For each memory read, follow SSA use-def chains to find the op that produces the data being read (i.e., the most recent write). A memory write to an alias is a conflict if it takes places after the "most recent write" but before the read. This CL introduces two main changes: * There is a concise definition of a conflict. Given a piece of IR with InPlaceSpec annotations and a computes alias set, it is easy to compute whether this program has a conflict. No need to consider multiple cases such as "read of operand after in-place write" etc. * No need to check for clobbering. Differential Revision: https://reviews.llvm.org/D111287
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp')
0 files changed, 0 insertions, 0 deletions