diff options
Diffstat (limited to 'polly/lib/CodeGen/Utils.cpp')
-rw-r--r-- | polly/lib/CodeGen/Utils.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/polly/lib/CodeGen/Utils.cpp b/polly/lib/CodeGen/Utils.cpp index 890d90192e2..9aa22dae829 100644 --- a/polly/lib/CodeGen/Utils.cpp +++ b/polly/lib/CodeGen/Utils.cpp @@ -196,6 +196,26 @@ BasicBlock *polly::executeScopConditionally(Scop &S, Pass *P, Value *RTC) { // | // // ExitBB // // / \ // + // + + // Split the edge between SplitBlock and EntryBB, to avoid a critical edge. + splitEdge(SplitBlock, EntryBB, ".pre_entry_bb", &DT, &LI, &RI); + + // \ / // + // EnteringBB // + // | // + // SplitBlock---------\ // + // | | // + // PreEntryBB | // + // _____|_____ | // + // / EntryBB \ StartBlock // + // | (region) | | // + // \_ExitingBB_/ ExitingBlock // + // | | // + // MergeBlock---------/ // + // | // + // ExitBB // + // / \ // return StartBlock; } |