1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Transforms
George Burgess IV 59fe6640ec [MemorySSA] Consider def-only BBs for live-in calculations.
If we have a BB with only MemoryDefs, live-in calculations will ignore
it. This means we get results like this:

define void @foo(i8* %p) {
  ; 1 = MemoryDef(liveOnEntry)
  store i8 0, i8* %p
  br i1 undef, label %if.then, label %if.end

if.then:
  ; 2 = MemoryDef(1)
  store i8 1, i8* %p
  br label %if.end

if.end:
  ; 3 = MemoryDef(1)
  store i8 2, i8* %p
  ret void
}

...When there should be a MemoryPhi in the `if.end` BB.

This patch fixes that behavior.

llvm-svn: 263991
2016-03-21 21:25:39 +00:00
..
ADCE
AddDiscriminators Remove llvm::getDISubprogram in favor of Function::getSubprogram 2016-03-11 02:14:16 +00:00
AlignmentFromAssumptions
ArgumentPromotion
AtomicExpand ARM: sink atomic release barrier as far as possible into cmpxchg. 2016-02-22 20:55:50 +00:00
BBVectorize
BDCE
BranchFolding
CodeExtractor
CodeGenPrepare [CGP] Duplicate addressing computation in cold paths if required to sink addressing mode 2016-03-09 23:13:12 +00:00
ConstantHoisting
ConstantMerge
ConstProp
CorrelatedValuePropagation [CVP] Convert an SDiv to a UDiv if both operands are known to be nonnegative 2016-03-14 03:24:28 +00:00
CrossDSOCFI [cfi] Cross-DSO CFI diagnostic mode (LLVM part). 2016-01-25 23:35:03 +00:00
DeadArgElim
DeadStoreElimination [BasicAliasAnalysis] Take into account operand bundles in the getModRefInfo function 2016-01-16 12:15:53 +00:00
EarlyCSE
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs
FunctionAttrs [attrs] Handle convergent CallSites. 2016-03-14 20:18:54 +00:00
FunctionImport Rework linkInModule(), making it oblivious to ThinLTO 2016-03-19 00:40:31 +00:00
GCOVProfiling [GCOV] Avoid emitting profile arcs for module and skeleton CUs 2016-01-21 17:04:42 +00:00
GlobalDCE
GlobalOpt [GlobalOpt] Don't look through aliases when sorting names of globals. 2016-03-15 14:18:26 +00:00
GVN [PM] Port GVN to the new pass manager, wire it up, and teach a couple of 2016-03-11 08:50:55 +00:00
IndVarSimplify [IndVars] Fix PR26974: make sure replaceCongruentIVs doesn't break LCSSA 2016-03-21 12:44:29 +00:00
InferFunctionAttrs [BasicAA] Remove special casing of memset_pattern16 in favor of generic attribute inference 2016-01-06 04:53:16 +00:00
Inline add checks for 'unpredictable' metadata preservation 2016-03-16 18:15:34 +00:00
InstCombine Implement constant folding for bitreverse 2016-03-21 15:00:35 +00:00
InstMerge
InstSimplify [InstSimplify] Restore fsub 0.0, (fsub 0.0, X) ==> X optzn 2016-02-29 12:18:25 +00:00
Internalize
IPConstantProp [SCCP] Don't violate the lattice invariants 2016-01-07 21:36:16 +00:00
IRCE [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
JumpThreading [JumpThreading] See through Cast Instructions 2016-03-16 04:52:52 +00:00
LCSSA
LICM [AliasSetTracker] Do not strip pointer casts when processing MemSetInst 2016-03-14 18:34:29 +00:00
LoadCombine
LoopDataPrefetch [LoopDataPrefetch] Add TTI to limit the number of iterations to prefetch ahead 2016-03-18 00:27:43 +00:00
LoopDeletion
LoopDistribute
LoopIdiom [LIR] Avoid turning non-temporal stores into memset 2016-02-17 21:00:06 +00:00
LoopInterchange
LoopLoadElim [LLE] Add missed LoopSimplify dependence 2016-03-10 23:54:39 +00:00
LoopReroll Allow setting MaxRerollIterations above 16 2016-02-22 09:38:28 +00:00
LoopRotate [LoopRotate] Don't perform loop rotation if the loop header calls a convergent function. 2016-02-12 21:01:33 +00:00
LoopSimplify
LoopSimplifyCFG Add LoopSimplifyCFG pass 2016-01-29 22:35:36 +00:00
LoopStrengthReduce Revert "[LSR] Create fewer redundant instructions." 2016-03-16 19:21:47 +00:00
LoopUnroll [LoopUnroll] Respect the convergent attribute. 2016-03-14 23:15:34 +00:00
LoopUnswitch
LoopVectorize [LoopVectorize] Annotate versioned loop with noalias metadata 2016-03-17 20:32:37 +00:00
LoopVersioning [LoopVersioning] Annotate versioned loop with noalias metadata 2016-03-17 20:32:32 +00:00
LoopVersioningLICM Corrected tests for Loop Versioning LICM, by adding “REQUIRES: asserts”. 2016-02-06 12:34:41 +00:00
LowerAtomic
LowerBitSets
LowerExpectIntrinsic
LowerInvoke
LowerSwitch
Mem2Reg
MemCpyOpt Imporove load to store => memcpy 2016-03-14 22:52:27 +00:00
MergeFunc
MetaRenamer
NaryReassociate
ObjCARC [ObjCARC] Handle ARCInstKind::ClaimRV in OptimizeIndividualCalls. 2016-02-17 18:51:27 +00:00
PartiallyInlineLibCalls
PGOProfile [PGO] Skip value profile instrumentation of inline asm 2016-03-11 18:57:48 +00:00
PhaseOrdering
PlaceSafepoints [PlaceSafepoints] Clamp NoStatepoints to true 2016-01-28 21:51:14 +00:00
PruneEH [PruneEH] Don't try to insert a terminator after another terminator 2016-01-23 06:00:44 +00:00
Reassociate Reassociate: Reprocess RedoInsts after each inst 2016-01-26 18:42:36 +00:00
Reg2Mem
RewriteStatepointsForGC [RS4GC] "Constant fold" the rs4gc-split-vector-values flag 2016-02-22 21:01:28 +00:00
SafeStack [safestack] Make sure the unsafe stack pointer is popped in all cases 2016-02-02 01:03:11 +00:00
SampleProfile Perform InstructioinCombiningPass before SampleProfile pass. 2016-03-01 22:53:02 +00:00
Scalarizer
ScalarRepl
SCCP
SeparateConstOffsetFromGEP [ValueTracking] Remove dead code from an old experiment 2016-03-03 19:44:06 +00:00
SimplifyCFG propagate 'unpredictable' metadata on select instructions 2016-03-17 15:30:52 +00:00
Sink
SLPVectorizer Fix tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT. 2016-02-26 19:40:34 +00:00
SpeculativeExecution
SROA Have DataLayout::isLegalInteger() accept uint64_t 2016-03-18 23:19:29 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG AMDGPU: Remove some old intrinsic uses from tests 2016-02-11 06:02:01 +00:00
TailCallElim Push isDereferenceableAndAlignedPointer down into isSafeToLoadUnconditionally 2016-01-17 12:35:29 +00:00
TailDup
Util [MemorySSA] Consider def-only BBs for live-in calculations. 2016-03-21 21:25:39 +00:00
WholeProgramDevirt WholeProgramDevirt: introduce. 2016-02-09 22:50:34 +00:00