llvm-6502/lib/Transforms/Scalar
Chen Li 5015f9766b [LoopUnswitch] Code refactoring to separate trivial loop unswitch and non-trivial loop unswitch in processCurrentLoop()
Summary: The current code in LoopUnswtich::processCurrentLoop() mixes trivial loop unswitch and non-trivial loop unswitch together. It goes over all basic blocks in the loop and checks if a condition is trivial or non-trivial unswitch condition. However, trivial unswitch condition can only occur in the loop header basic block (where it controls whether or not the loop does something at all). This refactoring separate trivial loop unswitch and non-trivial loop unswitch. Before going over all basic blocks in the loop, it checks if the loop header contains a trivial unswitch condition. If so, unswitch it. Otherwise, go over all blocks like before but don't check trivial condition any more since they are not possible to be in the other blocks. This code has no functionality change.

Reviewers: meheff, reames, broune

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D11276

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242873 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-22 05:26:29 +00:00
..
ADCE.cpp Revert the new EH instructions 2015-07-10 07:15:17 +00:00
AlignmentFromAssumptions.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
BDCE.cpp Revert the new EH instructions 2015-07-10 07:15:17 +00:00
CMakeLists.txt Add a speculative execution pass 2015-05-15 17:54:48 +00:00
ConstantHoisting.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ConstantProp.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
CorrelatedValuePropagation.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DCE.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DeadStoreElimination.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
EarlyCSE.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
FlattenCFGPass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Float2Int.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
GVN.cpp [PM/AA] Remove the addEscapingUse update API that won't be easy to 2015-07-18 03:26:46 +00:00
InductiveRangeCheckElimination.cpp Create a wrapper pass for BranchProbabilityInfo. 2015-07-15 22:48:29 +00:00
IndVarSimplify.cpp [IndVars] Try to use existing values in RewriteLoopExitValues. 2015-07-09 18:46:12 +00:00
JumpThreading.cpp Revert the new EH instructions 2015-07-10 07:15:17 +00:00
LICM.cpp [LICM] Don't try to sink values out of loops without any exits 2015-07-12 03:53:05 +00:00
LLVMBuild.txt Update libdeps since TLI was moved from Target to Analysis in r226078. 2015-01-15 05:21:00 +00:00
LoadCombine.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopDeletion.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopDistribute.cpp [LAA] Introduce RuntimePointerChecking::PointerInfo, NFC 2015-07-14 22:32:50 +00:00
LoopIdiomRecognize.cpp Loop idiom recognizer was replacing too many uses of popcount. 2015-07-13 21:25:33 +00:00
LoopInstSimplify.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopInterchange.cpp Avoid using Loop::getSubLoopsVector. 2015-07-13 17:21:14 +00:00
LoopRerollPass.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopRotation.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopStrengthReduce.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LoopUnrollPass.cpp [LoopUnrolling] Handle cast instructions. 2015-07-15 00:19:51 +00:00
LoopUnswitch.cpp [LoopUnswitch] Code refactoring to separate trivial loop unswitch and non-trivial loop unswitch in processCurrentLoop() 2015-07-22 05:26:29 +00:00
LowerAtomic.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
LowerExpectIntrinsic.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Makefile
MemCpyOptimizer.cpp Fix a performance problem in memcpyopt by removing a linear scan over ranges when inserting a new range. No functionality change intended. Patch by Anthony Pesch! 2015-07-21 21:56:26 +00:00
MergedLoadStoreMotion.cpp [PM/AA] Remove the addEscapingUse update API that won't be easy to 2015-07-18 03:26:46 +00:00
NaryReassociate.cpp [NaryReassociate] enhances nsw by leveraging @llvm.assume 2015-07-01 03:38:49 +00:00
PartiallyInlineLibCalls.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
PlaceSafepoints.cpp Rename llvm.frameescape and llvm.framerecover to localescape and localrecover 2015-07-07 22:25:32 +00:00
Reassociate.cpp [Reassociate] Don't propogate flags when creating negations 2015-06-24 21:27:36 +00:00
Reg2Mem.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
RewriteStatepointsForGC.cpp [RewriteStatepointsForGC] minor style cleanup 2015-07-21 19:04:38 +00:00
SampleProfile.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Scalar.cpp Add a speculative execution pass 2015-05-15 17:54:48 +00:00
Scalarizer.cpp Revert 239644. 2015-06-13 01:08:00 +00:00
ScalarReplAggregates.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
SCCP.cpp Revert the new EH instructions 2015-07-10 07:15:17 +00:00
SeparateConstOffsetFromGEP.cpp SeparateConstOffsetFromGEP: Pass address space to isLegalAddressingMode 2015-06-07 20:17:44 +00:00
SimplifyCFGPass.cpp fix typos; NFC 2015-06-24 20:42:33 +00:00
Sink.cpp [PM/AA] Remove the Location typedef from the AliasAnalysis class now 2015-06-17 07:18:54 +00:00
SpeculativeExecution.cpp [Speculation] NFC: more header comments 2015-05-19 20:52:45 +00:00
SROA.cpp [SROA] Fix a nasty pile of bugs to do with big-endian, different alloca 2015-07-22 03:32:42 +00:00
StraightLineStrengthReduce.cpp [SLSR] S's basis must have the same type as S 2015-06-28 17:45:05 +00:00
StructurizeCFG.cpp Change range-based for-loops to be -Wrange-loop-analysis clean. 2015-04-15 01:21:15 +00:00
TailRecursionElimination.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00