[PATCH] D119266: [SimplifyCFG] Do not merge landingpads for invokes with deopt state.

Denis Antrushin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 11 08:38:13 PST 2022


dantrushin added a comment.

RS4GC knows how to split edges. so it can do it.
What I've been trying to do is to avoid repeatable merging (performed by SimplifyCFG) and splitting (performed by LoopSimplify) of landingpads.
Since these passes are run before RS4GC, we do not have statepoints in IR yet.

As for `opt blowup` I mentioned, it is not infinite loop, but an IR produced by repeatable application of above simplifyCFG + LoopSimplify. 
When splitting landingpads, LoopSimplify adds '.split-lp' suffix to block name. After several repetitions, we get an IR which is cannot be read back by LLVM (fails verification), but which is correct by eye inspection.
Presumably, length of generated labels leads to such behavior. Unfortunately, I was unable to prepare test case which I can publish, so let's ignore that part for now.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119266/new/

https://reviews.llvm.org/D119266



More information about the llvm-commits mailing list