1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
llvm-mirror/test/Transforms
Philip Reames bc5330f7b9 [RewriteStatepointsForGC] Generalized vector phi/select handling for base pointers
This change extends the detection of base pointers for vector constructs to handle arbitrary phi and select nodes. The existing non-vector code already handles those, so this is basically just extending the vector special case to be less special cased. It still isn't generalized vector handling since we can't handle arbitrary vector instructions (e.g. shufflevectors), but it's a lot closer.

The general structure of the change is as follows:
 * Extend the base defining value relation over a subset of vector instructions and vector typed phi & select instructions.
 * Move scalarization from before base pointer rewriting to after base pointer rewriting. The extension of the BDV relation is sufficient to find vector base phis for vector inputs.
 * Preserve the existing special case logic for when the base of a vector element is locally obvious. This general idea could be extended to the scalar case as well.

Differential Revision: http://reviews.llvm.org/D10461#inline-84275

llvm-svn: 240850
2015-06-26 22:47:37 +00:00
..
ADCE Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
AddDiscriminators IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
AlignmentFromAssumptions [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
ArgumentPromotion Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
AtomicExpand/ARM
BBVectorize Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
BDCE Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
BranchFolding
CodeExtractor Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
CodeGenPrepare AMDGPU: Fix some places missed in rename 2015-06-19 17:39:03 +00:00
ConstantHoisting [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
ConstantMerge [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
ConstProp [ConstantFolding] Fix wrong folding of intrinsic 'convert.from.fp16'. 2015-05-14 18:01:48 +00:00
CorrelatedValuePropagation [CVP] Don't assume Constants of type i1 can be known to be true or false 2015-06-06 04:56:51 +00:00
DeadArgElim Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
DeadStoreElimination IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
EarlyCSE Correct a mistaken comment from 238071 [NFC] 2015-05-23 00:05:43 +00:00
Float2Int Reapply r233175 and r233183: float2int. 2015-03-27 10:36:57 +00:00
FunctionAttrs Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
GCOVProfiling IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
GlobalDCE [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
GlobalOpt Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
GVN GVN: If a branch has two identical successors, we cannot declare either dead. 2015-06-25 18:32:02 +00:00
IndVarSimplify Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
Inline Teach InlineCost to account for a null check which can be folded away 2015-06-26 20:51:17 +00:00
InstCombine [InstCombine] call SimplifyICmpInst with correct context 2015-06-25 20:14:47 +00:00
InstMerge [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
InstSimplify Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
Internalize [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
IPConstantProp Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
IRCE [IRCE] Fix a regression introduced in r232444. 2015-03-24 19:29:18 +00:00
JumpThreading Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LCSSA Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LICM [LICM] Sinking doesn't involve the preheader 2015-05-22 02:14:05 +00:00
LoadCombine [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
LoopDeletion [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
LoopDistribute [LoopDist] Improve variable names and comments in LoopVersioning class, NFC 2015-06-22 22:59:40 +00:00
LoopIdiom [LSR] canonicalize Prod*(1<<C) to Prod<<C 2015-06-24 19:28:40 +00:00
LoopInterchange Add support to interchange loops with reductions. 2015-04-23 04:51:44 +00:00
LoopReroll [LSR] canonicalize Prod*(1<<C) to Prod<<C 2015-06-24 19:28:40 +00:00
LoopRotate Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LoopSimplify Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LoopStrengthReduce [LSR] canonicalize Prod*(1<<C) to Prod<<C 2015-06-24 19:28:40 +00:00
LoopUnroll Set proper debug location for branch added in BasicBlock::splitBasicBlock(). 2015-06-11 18:25:54 +00:00
LoopUnswitch Fix PR13851: Preserve metadata for the unswitched branch 2015-06-23 05:31:09 +00:00
LoopVectorize [LoopVectorizer] Fix bailing-out condition for OptForSize case. 2015-06-24 17:26:24 +00:00
LowerAtomic [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
LowerBitSets LowerBitSets: Do not assign names to aliases of unnamed bitset element objects. 2015-06-17 18:31:02 +00:00
LowerExpectIntrinsic [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
LowerInvoke Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
LowerSwitch Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00
Mem2Reg Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
MemCpyOpt [MemCpyOpt] Do move the memset, but look at its dest's dependencies. 2015-05-21 01:43:39 +00:00
MergeFunc Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
MetaRenamer [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
NaryReassociate [NaryReassociate] Run EarlyCSE after NaryReassociate 2015-05-28 04:56:52 +00:00
ObjCARC Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
PartiallyInlineLibCalls
PhaseOrdering Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
PlaceSafepoints Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
PruneEH Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
Reassociate [Reassociate] Don't propogate flags when creating negations 2015-06-24 21:27:36 +00:00
Reg2Mem Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
RewriteStatepointsForGC [RewriteStatepointsForGC] Generalized vector phi/select handling for base pointers 2015-06-26 22:47:37 +00:00
SafeStack SafeStack: Create the unsafe stack pointer on demand. 2015-06-22 20:26:54 +00:00
SampleProfile Add function entry counts from sample profiles. 2015-05-13 17:04:29 +00:00
Scalarizer IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
ScalarRepl Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
SCCP Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
SeparateConstOffsetFromGEP AMDGPU: Fix some places missed in rename 2015-06-19 17:39:03 +00:00
SimplifyCFG AMDGPU: Fix some places missed in rename 2015-06-19 17:39:03 +00:00
Sink Teach the IR Sink pass to (conservatively) respect convergent annotations. 2015-06-01 17:20:31 +00:00
SLPVectorizer [SLP] Vectorize for all-constant entries. 2015-06-19 17:40:15 +00:00
SpeculativeExecution Add a speculative execution pass 2015-05-15 17:54:48 +00:00
SROA [ConstantFold] Don't fold ppc_fp128 <-> int bitcasts 2015-03-28 16:44:57 +00:00
StraightLineStrengthReduce AMDGPU: Fix some places missed in rename 2015-06-19 17:39:03 +00:00
StripSymbols IR: Give 'DI' prefix to debug info metadata 2015-04-29 16:38:44 +00:00
StructurizeCFG [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
TailCallElim TRE: Just erase dead BBs and tweak the iteration loop not to increment the deleted BB iterator. 2015-02-28 16:47:27 +00:00
TailDup [opaque pointer type] Add textual IR support for explicit type parameter to the call instruction 2015-04-16 23:24:18 +00:00
Util Changed renaming of local symbols by inserting a dot vefore the numeric suffix. 2015-05-12 16:47:30 +00:00