[PATCH] D42691: [SimplifyCFG] Relax restriction for folding unconditional branches

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 2 11:26:58 PST 2018


efriedma added a subscriber: bmakam.
efriedma added inline comments.


================
Comment at: lib/Transforms/Utils/SimplifyCFG.cpp:5740
       Options.NeedCanonicalLoop &&
-      (LoopHeaders && (LoopHeaders->count(BB) || LoopHeaders->count(Succ)));
+      (LoopHeaders && std::distance(pred_begin(BB), pred_end(BB)) > 1 &&
+       (LoopHeaders->count(BB) || LoopHeaders->count(Succ)));
----------------
getSinglePredecessor()?


================
Comment at: test/Transforms/SimplifyCFG/UncondBranchToHeader.ll:16
+  br label %header
+exit:
+  ret i32 %i
----------------
Do we really need SimplifyCFG to rotate loops?  We have a dedicated LoopRotate pass for this sort of transform.

But I guess it's okay.


https://reviews.llvm.org/D42691





More information about the llvm-commits mailing list