[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
Loading
Please sign in to comment