From: Devang Patel Date: Wed, 19 Sep 2007 00:15:16 +0000 (+0000) Subject: Filter loops where split condition's false branch is not empty. For example X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=968eee2aa7033a5850dc7830f22220236d53f212;p=oota-llvm.git Filter loops where split condition's false branch is not empty. For example for (int i = 0; i < N; ++i) { if (i == somevalue) dosomething(); else dosomethingelse(); } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42121 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/LoopIndexSplit.cpp b/lib/Transforms/Scalar/LoopIndexSplit.cpp index 92a6058b5a6..cb5060a6765 100644 --- a/lib/Transforms/Scalar/LoopIndexSplit.cpp +++ b/lib/Transforms/Scalar/LoopIndexSplit.cpp @@ -528,6 +528,10 @@ bool LoopIndexSplit::processOneIterationLoop(SplitInfo &SD) { if (!safeExitingBlock(SD, ExitCondition->getParent())) return false; + // Filter loops where split condition's false branch is not empty. + if (ExitCondition->getParent() != Header->getTerminator()->getSuccessor(1)) + return false; + // If split condition is not safe then do not process this loop. // For example, // for(int i = 0; i < N; i++) {