1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/lib/Transforms/Scalar
Chandler Carruth 4904b56b75 [PM] Port memdep to the new pass manager.
This is a fairly straightforward port to the new pass manager with one
exception. It removes a very questionable use of releaseMemory() in
the old pass to invalidate its caches between runs on a function.
I don't think this is really guaranteed to be safe. I've just used the
more direct port to the new PM to address this by nuking the results
object each time the pass runs. While this could cause some minor malloc
traffic increase, I don't expect the compile time performance hit to be
noticable, and it makes the correctness and other aspects of the pass
much easier to reason about. In some cases, it may make things faster by
making the sets and maps smaller with better locality. Indeed, the
measurements collected by Bruno (thanks!!!) show mostly compile time
improvements.

There is sadly very limited testing at this point as there are only two
tests of memdep, and both rely on GVN. I'll be porting GVN next and that
will exercise this heavily though.

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

llvm-svn: 263082
2016-03-10 00:55:30 +00:00
..
ADCE.cpp Avoid overly large SmallPtrSet/SmallSet 2016-01-30 01:24:31 +00:00
AlignmentFromAssumptions.cpp [SCEV] Add and use SCEVConstant::getAPInt; NFCI 2015-12-17 20:28:46 +00:00
BDCE.cpp
CMakeLists.txt [PPCLoopDataPrefetch] Move pass to Transforms/Scalar/LoopDataPrefetch. NFC 2016-02-18 21:38:19 +00:00
ConstantHoisting.cpp
ConstantProp.cpp
CorrelatedValuePropagation.cpp Follow up to 260439, Speculative fix to clang builders 2016-02-10 22:22:41 +00:00
DCE.cpp
DeadStoreElimination.cpp [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
EarlyCSE.cpp Minor code cleanup. NFC. 2016-02-18 10:09:20 +00:00
FlattenCFGPass.cpp
Float2Int.cpp [Float2Int] Don't operate on vector instructions 2015-12-09 21:08:18 +00:00
GVN.cpp [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
InductiveRangeCheckElimination.cpp Return StringRef instead of a naked char*; NFC 2016-03-09 02:34:19 +00:00
IndVarSimplify.cpp [LPM] Factor all of the loop analysis usage updates into a common helper 2016-02-19 10:45:18 +00:00
JumpThreading.cpp [JumpThreading] Simplify Instructions first in ComputeValueKnownInPredecessors() 2016-02-26 06:06:04 +00:00
LICM.cpp Fix the build 2016-03-09 23:07:53 +00:00
LLVMBuild.txt
LoadCombine.cpp
LoopDataPrefetch.cpp [LoopDataPrefetch] Add stats and debug output 2016-03-09 05:33:21 +00:00
LoopDeletion.cpp [LoopDeletion] Add an assert that verifies LCSSA 2016-02-21 17:11:59 +00:00
LoopDistribute.cpp LPM: Stop threading Pass * through all of the loop utility APIs. NFC 2015-12-15 19:40:57 +00:00
LoopIdiomRecognize.cpp [LPM] Factor all of the loop analysis usage updates into a common helper 2016-02-19 10:45:18 +00:00
LoopInstSimplify.cpp [LPM] Factor all of the loop analysis usage updates into a common helper 2016-02-19 10:45:18 +00:00
LoopInterchange.cpp LPM: Stop threading Pass * through all of the loop utility APIs. NFC 2015-12-15 19:40:57 +00:00
LoopLoadElimination.cpp [LLE] Add missing check for unit stride 2016-03-09 20:47:55 +00:00
LoopRerollPass.cpp Allow setting MaxRerollIterations above 16 2016-02-22 09:38:28 +00:00
LoopRotation.cpp [LPM] Factor all of the loop analysis usage updates into a common helper 2016-02-19 10:45:18 +00:00
LoopSimplifyCFG.cpp [LPM] Factor all of the loop analysis usage updates into a common helper 2016-02-19 10:45:18 +00:00
LoopStrengthReduce.cpp [LoopStrengthReduce] Don't rewrite PHIs with incoming values from CatchSwitches 2016-02-03 21:30:34 +00:00
LoopUnrollPass.cpp fix variable name; NFC 2016-03-08 19:07:42 +00:00
LoopUnswitch.cpp [LPM] Factor all of the loop analysis usage updates into a common helper 2016-02-19 10:45:18 +00:00
LoopVersioningLICM.cpp Fix MSVC 2013 build after rL260504 2016-02-11 11:27:51 +00:00
LowerAtomic.cpp
LowerExpectIntrinsic.cpp
MemCpyOptimizer.cpp [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
MergedLoadStoreMotion.cpp [PM] Port memdep to the new pass manager. 2016-03-10 00:55:30 +00:00
NaryReassociate.cpp [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
PartiallyInlineLibCalls.cpp
PlaceSafepoints.cpp [PlaceSafepoints] Use DEBUG() instead of TraceLSP 2016-01-28 23:49:27 +00:00
Reassociate.cpp ADT: Remove == and != comparisons between ilist iterators and pointers 2016-02-21 20:39:50 +00:00
Reg2Mem.cpp
RewriteStatepointsForGC.cpp [RS4GC] "Constant fold" the rs4gc-split-vector-values flag 2016-02-22 21:01:28 +00:00
Scalar.cpp [LoopDataPrefetch] Make it testable with opt 2016-02-22 21:41:22 +00:00
Scalarizer.cpp
ScalarReplAggregates.cpp [opaque pointer types] [NFC] DataLayout::getIndexedOffset: take source element type instead of pointer type and rename to getIndexedOffsetInType. 2016-01-22 03:08:27 +00:00
SCCP.cpp Fix build bot breakage 2016-01-24 16:46:53 +00:00
SeparateConstOffsetFromGEP.cpp Bug fix: use dyn_cast_or_null instead of dyn_cast 2016-02-19 02:17:07 +00:00
SimplifyCFGPass.cpp PM: Fix an inverted condition in simplifyFunctionCFG 2016-01-15 21:21:39 +00:00
Sink.cpp Remove uses of builtin comma operator. 2016-02-18 22:09:30 +00:00
SpeculativeExecution.cpp
SROA.cpp Fix buildbot failure introduced by 258010. Remove local variables became unused. 2016-01-17 12:59:40 +00:00
StraightLineStrengthReduce.cpp [opaque pointer types] [NFC] GEP: replace get(Pointer)ElementType uses with get{Source,Result}ElementType. 2016-01-19 17:28:00 +00:00
StructurizeCFG.cpp StructurizeCFG: Initialize SkipUniformRegions in the default constructor 2016-02-10 01:10:09 +00:00
TailRecursionElimination.cpp Change isSafeToLoadUnconditionally arguments order. Separated from http://reviews.llvm.org/D10920. 2016-01-15 15:27:46 +00:00