User Details
- User Since
- Aug 19 2021, 7:56 AM (83 w, 13 h)
Jul 25 2022
Looking into this, it seems more difficult than initially thought to expose low-level operations to perform value replacement through the CAPI. We'd expect getUses to return OpOperands (by inheritance, IrOperand) which in turn is what we would call replace on.
Main pain points which i see here are:
- OpOperand is heavily encapsulated to protect how and who can construct an operand. https://github.com/llvm/llvm-project/blob/main/mlir/include/mlir/IR/Value.h#L265
- By the above, there's no immediate way that we can roundtrip the value through CAPI, which would require that an OpOperand can be constructed statically through an opaque pointer.
Jul 19 2022
Jul 18 2022
Jan 4 2022
@rriddle do you have anything else you'd like too see done for the PR?
Dec 13 2021
Address review comments.
Dec 7 2021
reduce number of times each block is visited
address review comments
add missing early_inc_range and simplify tests
Dec 6 2021
address review comments.
Rework the conversion pass into a transform utility. In doing so, also define a test pass for the filtered case. The transformation utility now takes a lambda to specify a value filter. The user-exposed pass convert-to-max-ssa no longer takes any arguments. For my own use-case, this is sufficient, since i'll be using the SSA maximization utility with a filtered type as a precondition for another conversion pass.
Dec 5 2021
address review comments
Dec 2 2021
update include
argument and control flow mappings should be stored for any value
missing }
incorrect namespace
Sep 21 2021
Sep 20 2021
Sep 18 2021
Address review comments
Sep 17 2021
mising newline
I've added a rationale to the PR summary.
scf.execute_region ops are no longer necessary.
- Moved induction variable incrementation to start of while body
- updated tests
Aug 23 2021
Aug 20 2021
Fix clang-tidy nits
Aug 19 2021
Remove redundant check lines
[MLIR][SCF] Use printOptionalArrowTypeList