Enable suspend point simplification for cases where:
- coro.save and coro.suspend are in different basic blocks
- where there are intervening intrinsics
Paths
| Differential D55160
[coroutines] Improve suspend point simplification ClosedPublic Authored by GorNishanov on Nov 30 2018, 10:18 PM.
Details Summary Enable suspend point simplification for cases where:
Diff Detail Event TimelineComment Actions Sorry for the wait! Mostly nits, but also I think the while condition might be inverted? It seems like, as is, it would never execute the body of the loop...?
This revision now requires changes to proceed.Dec 10 2018, 6:41 PM GorNishanov added inline comments.
Comment Actions LGTM! As it happens I was reading this code the other day and wondering why it wasn't able to eliminate a suspend point I'd been looking at. I'll try it again and see if this new behavior is able to eliminate -- thanks! This revision is now accepted and ready to land.Dec 11 2018, 7:54 AM Closed by commit rL348897: [coroutines] Improve suspend point simplification (authored by GorNishanov). · Explain WhyDec 11 2018, 1:26 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 177655 lib/Transforms/Coroutines/CoroSplit.cpp
test/Transforms/Coroutines/no-suspend.ll
|
nit: Run clang-format on this; I believe it should be Instruction *From, but in any case From and To should be consistent.