1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 21:13:02 +02:00
llvm-mirror/lib/Transforms/Scalar
Anna Thomas d7d47f4ccb [IRCE] Avoid loop optimizations on pre and post loops
Summary:
This patch will add loop metadata on the pre and post loops generated by IRCE.
Currently, we have metadata for disabling optimizations such as vectorization,
unrolling, loop distribution and LICM versioning (and confirmed that these
optimizations check for the metadata before proceeding with the transformation).

The pre and post loops generated by IRCE need not go through loop opts (since
these are slow paths).

Added two test cases as well.

Reviewers: sanjoy, reames

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D26806

llvm-svn: 289588
2016-12-13 21:05:21 +00:00
..
ADCE.cpp [ADCE] Add code to remove dead branches 2016-12-13 16:42:18 +00:00
AlignmentFromAssumptions.cpp Scalar: Ignore ConstantData in processAssumption 2016-09-24 20:00:38 +00:00
BDCE.cpp [BDCE] Skip metadata while replacing uses. 2016-12-07 21:47:32 +00:00
CMakeLists.txt [CMake] NFC. Updating CMake dependency specifications 2016-11-17 04:36:50 +00:00
ConstantHoisting.cpp Fix spelling mistakes in Transforms comments. NFC. 2016-11-20 13:19:49 +00:00
ConstantProp.cpp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
CorrelatedValuePropagation.cpp [CVP] Remove cvp-dont-process-adds flag 2016-11-29 16:24:57 +00:00
DCE.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
DeadStoreElimination.cpp limit the number of instructions per block examined by dead store elimination 2016-08-26 16:34:27 +00:00
EarlyCSE.cpp [EarlyCSE] Make MemorySSA memory dependency check more aggressive. 2016-10-25 16:18:47 +00:00
FlattenCFGPass.cpp
Float2Int.cpp Factor out common parts of LVI and Float2Int into ConstantRange [NFCI] 2016-12-01 20:08:47 +00:00
GuardWidening.cpp Analysis: Move llvm::getConstantRangeFromMetadata to IR library. 2016-10-21 19:59:26 +00:00
GVN.cpp When GVN removes a redundant load, it should not modify the debug location of the dominating load. 2016-12-07 12:31:36 +00:00
GVNHoist.cpp [GVNHoist] Invalidate MemDep when an instruction is moved. 2016-12-07 19:55:59 +00:00
InductiveRangeCheckElimination.cpp [IRCE] Avoid loop optimizations on pre and post loops 2016-12-13 21:05:21 +00:00
IndVarSimplify.cpp Fix spelling mistakes in Transforms comments. NFC. 2016-11-20 13:19:49 +00:00
JumpThreading.cpp Fix spelling mistakes in Transforms comments. NFC. 2016-11-20 13:19:49 +00:00
LICM.cpp Add Loop Sink pass to reverse the LICM based of basic block frequency. 2016-10-27 16:30:08 +00:00
LLVMBuild.txt
LoadCombine.cpp Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
LoopDataPrefetch.cpp [LoopDataPrefetch] Port to new streaming API for opt remarks 2016-09-30 00:42:43 +00:00
LoopDeletion.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +00:00
LoopDistribute.cpp [LoopDistribute] Preserve GlobalsAA also in the new Pass Manager. 2016-11-08 19:52:32 +00:00
LoopIdiomRecognize.cpp [LoopIdiomRecognize] Merge two if conditions into one. NFCI. 2016-10-07 18:39:43 +00:00
LoopInstSimplify.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +00:00
LoopInterchange.cpp Fix a bug found by inspection by PVS-Studio. 2016-11-03 16:39:25 +00:00
LoopLoadElimination.cpp Fix some Clang-tidy and Include What You Use warnings; other minor fixes (NFC). 2016-11-30 17:48:10 +00:00
LoopRerollPass.cpp [LoopReroll] Make root-finding more aggressive. 2016-11-21 22:35:34 +00:00
LoopRotation.cpp Preserve assumption cache in loop-rotate. 2016-11-09 23:05:01 +00:00
LoopSimplifyCFG.cpp Consistently use LoopAnalysisManager 2016-08-09 00:28:52 +00:00
LoopSink.cpp Enable Loop Sink pass for functions that has profile. 2016-11-09 00:58:19 +00:00
LoopStrengthReduce.cpp Fix LSR best register search algorithm. 2016-11-30 22:23:51 +00:00
LoopUnrollPass.cpp Change LoopUnrollPass cost from int to unsigned to make it consistent. (NFC) 2016-12-02 03:17:07 +00:00
LoopUnswitch.cpp [Loop Unswitch] Patch to selective unswitch only the reachable branch instructions. 2016-11-25 14:07:44 +00:00
LoopVersioningLICM.cpp [NFC] Loop Versioning for LICM code clean up 2016-10-14 23:00:36 +00:00
LowerAtomic.cpp [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
LowerExpectIntrinsic.cpp [Profile] handle select instruction in 'expect' lowering 2016-09-02 22:03:40 +00:00
LowerGuardIntrinsic.cpp [PM] Port LowerGuardIntrinsic to the new PM. 2016-07-28 22:08:41 +00:00
MemCpyOptimizer.cpp IR: Change the gep_type_iterator API to avoid always exposing the "current" type. 2016-12-02 02:24:42 +00:00
MergedLoadStoreMotion.cpp IR: Remove Value::intersectOptionalDataWith, replace all calls with calls to Instruction::andIRFlags. 2016-09-07 23:39:04 +00:00
NaryReassociate.cpp IR: Change the gep_type_iterator API to avoid always exposing the "current" type. 2016-12-02 02:24:42 +00:00
PartiallyInlineLibCalls.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
PlaceSafepoints.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
Reassociate.cpp Fixed the lost FastMathFlags in Reassociate optimization. 2016-11-22 20:23:04 +00:00
Reg2Mem.cpp Apply clang-tidy's modernize-loop-convert to most of lib/Transforms. 2016-06-26 12:28:59 +00:00
RewriteStatepointsForGC.cpp Replace some callers of setTailCall with setTailCallKind 2016-11-25 22:35:09 +00:00
Scalar.cpp Add Loop Sink pass to reverse the LICM based of basic block frequency. 2016-10-27 16:30:08 +00:00
Scalarizer.cpp Scalarizer: Support scalarizing intrinsics 2016-07-25 20:02:54 +00:00
SCCP.cpp [SCCP] Debug diagnostic goes under DEBUG(). NFCI. 2016-12-13 05:56:04 +00:00
SeparateConstOffsetFromGEP.cpp IR: Change the gep_type_iterator API to avoid always exposing the "current" type. 2016-12-02 02:24:42 +00:00
SimplifyCFGPass.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
Sink.cpp Consistently use FunctionAnalysisManager 2016-08-09 00:28:15 +00:00
SpeculativeExecution.cpp SpeculativeExecution: Allow speculating more inst types 2016-10-28 20:00:33 +00:00
SROA.cpp [DIExpression] Introduce a dedicated DW_OP_LLVM_fragment operation 2016-12-05 18:04:47 +00:00
StraightLineStrengthReduce.cpp IR: Change the gep_type_iterator API to avoid always exposing the "current" type. 2016-12-02 02:24:42 +00:00
StructurizeCFG.cpp [StructurizeCFG] Fix infinite loop in rebuildSSA. 2016-11-29 21:49:02 +00:00
TailRecursionElimination.cpp [TRE] Remove dead code 2016-11-07 22:17:37 +00:00