This is needed so a listener hears all changes during the dialect
conversion to allow correct rollbacks upon failure.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp | ||
---|---|---|
389–390 | This is a bit misleading after the change. It would be nice to explain what exactly is the op and how splitBlock and resume were constructed (also I'd rename splitBlock to suspended). Something along this line: "Add a LLVM coroutine suspension point to the end of suspended block, to resume execution in resume block. These blocks are the result of splitting blah blah" |
mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp | ||
---|---|---|
395–412 | This example also will be out of date. |
mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp | ||
---|---|---|
517 | Builder will not be aware of this operation. |
mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp | ||
---|---|---|
517 | That's okay because this function is not using the DialectConversion infrastructure. This function uses normal OpBuilders and is an irreversible transformation. |
mlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp | ||
---|---|---|
517 | Maybe add a note to the doc that indicates this. It could end up confusing somebody that some functions are rewriter-compatible and some others are not. |
This is a bit misleading after the change. It would be nice to explain what exactly is the op and how splitBlock and resume were constructed (also I'd rename splitBlock to suspended).
Something along this line: "Add a LLVM coroutine suspension point to the end of suspended block, to resume execution in resume block. These blocks are the result of splitting blah blah"