diff options
author | Alex Zinenko <zinenko@google.com> | 2022-04-25 10:25:59 +0200 |
---|---|---|
committer | Alex Zinenko <zinenko@google.com> | 2022-04-25 10:49:09 +0200 |
commit | 4c807f2f579f4e5412c49c341230e309f2f79c9b (patch) | |
tree | 4287b6049f156a8d9b9b7bc0a3b46c46f6e0603c /llvm/lib/CodeGen/LiveDebugVariables.cpp | |
parent | 0a5db8912c50d9778883a742466041cd44d91455 (diff) | |
download | llvm-4c807f2f579f4e5412c49c341230e309f2f79c9b.zip llvm-4c807f2f579f4e5412c49c341230e309f2f79c9b.tar.gz llvm-4c807f2f579f4e5412c49c341230e309f2f79c9b.tar.bz2 |
[mlir][vector] insert `alloca`s outside of loops
After https://reviews.llvm.org/D119743 added the `AutomaticAllocationScope`
trait to loop-like constructs, the vector transfer full/partial splitting pass
started inserting allocations for temporaries within the closest loop rather
than the closest function (or other allocation scope such as `async.execute`).
While this is correct as long as the lowered code takes care of automatic
deallocation at the end of each iteration of the loop, this interferes with
downstream optimizations that expect `alloca`s to be at the function level.
Step over loops when looking for the closest allocation scope in vector
transfer full/partial splitting pass thus restoring the original behavior.
Reviewed By: hanchung
Differential Revision: https://reviews.llvm.org/D124366
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugVariables.cpp')
0 files changed, 0 insertions, 0 deletions