diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-04-30 10:44:54 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-04-30 10:44:54 +0000 |
commit | bfbab99b58aa530d5d6aa886ef66be42a047c756 (patch) | |
tree | 3d4df04901c7bcdba3f3684492c94e74ebd35a6f /include/llvm/Transforms/Utils/BasicBlockUtils.h | |
parent | 38da2a8cc1a41147efac423cb97caf3db90f73e7 (diff) | |
download | external_llvm-bfbab99b58aa530d5d6aa886ef66be42a047c756.zip external_llvm-bfbab99b58aa530d5d6aa886ef66be42a047c756.tar.gz external_llvm-bfbab99b58aa530d5d6aa886ef66be42a047c756.tar.bz2 |
Second attempt at PR12573:
Allow the "SplitCriticalEdge" function to split the edge to a landing pad. If
the pass is *sure* that it thinks it knows what it's doing, then it may go ahead
and specify that the landing pad can have its critical edge split. The loop
unswitch pass is one of these passes. It will split the critical edges of all
edges coming from a loop to a landing pad not within the loop. Doing so will
retain important loop analysis information, such as loop simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155817 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Transforms/Utils/BasicBlockUtils.h')
-rw-r--r-- | include/llvm/Transforms/Utils/BasicBlockUtils.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/llvm/Transforms/Utils/BasicBlockUtils.h b/include/llvm/Transforms/Utils/BasicBlockUtils.h index 867b9e4..2f9dc54 100644 --- a/include/llvm/Transforms/Utils/BasicBlockUtils.h +++ b/include/llvm/Transforms/Utils/BasicBlockUtils.h @@ -110,7 +110,8 @@ bool isCriticalEdge(const TerminatorInst *TI, unsigned SuccNum, /// BasicBlock *SplitCriticalEdge(TerminatorInst *TI, unsigned SuccNum, Pass *P = 0, bool MergeIdenticalEdges = false, - bool DontDeleteUselessPHIs = false); + bool DontDeleteUselessPHIs = false, + bool SplitLandingPads = false); inline BasicBlock *SplitCriticalEdge(BasicBlock *BB, succ_iterator SI, Pass *P = 0) { |