HomePhabricator

[LoopPred] Robustly handle partially unswitched loops

Authored by reames on Thu, Nov 21, 3:26 PM.

Description

[LoopPred] Robustly handle partially unswitched loops

We may end up with a case where we have a widenable branch above the loop, but not all widenable branches within the loop have been removed. Since a widenable branch inhibit SCEVs ability to reason about exit counts (by design), we have a tradeoff between effectiveness of this optimization and allowing future widening of the branches within the loop. LoopPred is thought to be one of the most important optimizations for range check elimination, so let's pay the cost.

Details

Committed
reamesThu, Nov 21, 3:44 PM
Parents
rGbc8e88e97455: Early-exitify ClangASTContext::AddObjCClassProperty() (NFC)
Branches
Unknown
Tags
Unknown