summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/Utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/CodeGen/Utils.cpp')
-rw-r--r--polly/lib/CodeGen/Utils.cpp20
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;
}
OpenPOWER on IntegriCloud