w.r.t. https://bugs.llvm.org/show_bug.cgi?id=32153
The consensus seems to be isGuaranteedToTransferExecutionToSuccessor should be called for each function.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
Mark those basic blocks which does not guarantee progress as barriers and use them subsequently while checking for availability during hoisting.
Comment Actions
This looks okay to me at this point, it's at least more correct than what we are doing now.