diff options
author | Mehdi Amini <joker.eph@gmail.com> | 2025-08-18 11:07:19 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-18 09:07:19 +0000 |
commit | 16aa283344d3fec9467e6adb7ea511c0a88afacc (patch) | |
tree | 3b9294cbeea4ba827caceaf330c4bd147eba06a5 /clang/lib/AST/ByteCode/InterpBuiltin.cpp | |
parent | a0f325bd41c931e4584feeb592987338c5b67d80 (diff) | |
download | llvm-16aa283344d3fec9467e6adb7ea511c0a88afacc.zip llvm-16aa283344d3fec9467e6adb7ea511c0a88afacc.tar.gz llvm-16aa283344d3fec9467e6adb7ea511c0a88afacc.tar.bz2 |
[MLIR] Refactor the walkAndApplyPatterns driver to remove the recursion (#154037)
This is in preparation of a follow-up change to stop traversing
unreachable blocks.
This is not NFC because of a subtlety of the early_inc. On a test case
like:
```
scf.if %cond {
"test.move_after_parent_op"() ({
"test.any_attr_of_i32_str"() {attr = 0 : i32} : () -> ()
}) : () -> ()
}
```
We recursively traverse the nested regions, and process an op when the
region is done (post-order).
We need to pre-increment the iterator before processing an operation in
case it gets deleted. However
we can do this before or after processing the nested region. This
implementation does the latter.
Diffstat (limited to 'clang/lib/AST/ByteCode/InterpBuiltin.cpp')
0 files changed, 0 insertions, 0 deletions