aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/ProcessImplicitDefs.cpp
diff options
context:
space:
mode:
authorAlex Zinenko <zinenko@google.com>2022-04-22 10:26:53 +0200
committerAlex Zinenko <zinenko@google.com>2022-04-22 23:29:11 +0200
commit40a8bd635b08f310e4f95b0789a70953bba1e645 (patch)
tree9c8da2e691fe40fa12cf0b234383a0f98617fa40 /llvm/lib/CodeGen/ProcessImplicitDefs.cpp
parentff1374785f82c2c184df7ca09a923acf62e4c277 (diff)
downloadllvm-40a8bd635b08f310e4f95b0789a70953bba1e645.zip
llvm-40a8bd635b08f310e4f95b0789a70953bba1e645.tar.gz
llvm-40a8bd635b08f310e4f95b0789a70953bba1e645.tar.bz2
[mlir] use side effects in the Transform dialect
Currently, the sequence of Transform dialect operations only supports a single use of each operand (verified by the `transform.sequence` operation). This was originally motivated by the need to guard against accessing a payload IR operation associated with a transform IR value after this operation has likely been rewritten by a transformation. However, not all Transform dialect operations rewrite payload IR, in particular the "navigation" operation such as `transform.pdl_match` do not. Introduce memory effects to the Transform dialect operations to describe their effect on the payload IR and the mapping between payload IR opreations and transform IR values. Use these effects to replace the single-use rule, allowing repeated reads and disallowing use-after-free, where operations with the "free" effect are considered to "consume" the transform IR value and rewrite the corresponding payload IR operations). As an additional improvement, this enables code motion transformation on the transform IR itself. Reviewed By: Mogball Differential Revision: https://reviews.llvm.org/D124181
Diffstat (limited to 'llvm/lib/CodeGen/ProcessImplicitDefs.cpp')
0 files changed, 0 insertions, 0 deletions