aboutsummaryrefslogtreecommitdiff
path: root/mlir/lib/Bindings/Python/IRModule.h
diff options
context:
space:
mode:
authorAlex Zinenko <zinenko@google.com>2023-05-26 11:26:52 +0000
committerAlex Zinenko <zinenko@google.com>2023-05-26 16:01:40 +0000
commit5310be521db2aa8c05a1c1adb7e108fc2c7c9ddc (patch)
tree4c2f9e1f4d2ff694d1b46a7cfda4c26897007073 /mlir/lib/Bindings/Python/IRModule.h
parent44f6e8625e634a1c26805a752132c74aeb99c7d5 (diff)
downloadllvm-5310be521db2aa8c05a1c1adb7e108fc2c7c9ddc.zip
llvm-5310be521db2aa8c05a1c1adb7e108fc2c7c9ddc.tar.gz
llvm-5310be521db2aa8c05a1c1adb7e108fc2c7c9ddc.tar.bz2
[mlir] make `fuse_into_containing_op` preserve the containing op handle
This partially undoes the intent of https://reviews.llvm.org/D151418 by cheating its way to keep the "containing op" (aka loop) handle read-only in fusion. It is crucial to do so for composability of tiling and fusion. Specfically, after the "containing op" handle started being consumed, it became impossible to perform additional tiling after fusion except tiling the last-fused op: %tiled1, %loop1 = tile %op %producer1, %loop2 = fuse %producer into %loop1 // invalid, because %tiled1 is invalidated by consuming %loop1 // that points to its parent tile %tiled1 or %tiled1, %loop1 = tile %op %tiled2, %loop2 = tile %tiled1 %p2 = fuse %producer into %loop1 // invalid, because %loop2 is invalidated by consuming %loop1 // that points to its parent fuse %p2 into %loop2 The approach here makes creative use of the state extension mechanism to update the payload operation associted with the operand handle. Further investigation is necessary to understand if is consistent with the overall execution model of the transform dialect, but it is crucial to restore composability ASAP. Reviewed By: springerm, nicolasvasilache Differential Revision: https://reviews.llvm.org/D151555
Diffstat (limited to 'mlir/lib/Bindings/Python/IRModule.h')
0 files changed, 0 insertions, 0 deletions