1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 13:02:52 +02:00
llvm-mirror/test/Transforms
Sebastian Pop f51ad9a239 code hoisting pass based on GVN
This pass hoists duplicated computations in the program. The primary goal of
gvn-hoist is to reduce the size of functions before inline heuristics to reduce
the total cost of function inlining.

Pass written by Sebastian Pop, Aditya Kumar, Xiaoyu Hu, and Brian Rzycki.
Important algorithmic contributions by Daniel Berlin under the form of reviews.

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

llvm-svn: 275401
2016-07-14 12:18:53 +00:00
..
ADCE
AddDiscriminators [PM] Port Add discriminator pass to new PM 2016-06-15 21:51:30 +00:00
AlignmentFromAssumptions [PM] Port AlignmentFromAssumptions to the new PM. 2016-06-15 06:18:01 +00:00
ArgumentPromotion Remove the ScalarReplAggregates pass 2016-06-15 00:19:09 +00:00
AtomicExpand Support expanding partial-word cmpxchg to full-word cmpxchg in AtomicExpandPass. 2016-06-17 18:11:48 +00:00
BBVectorize Revert "[ValueTracking] Teach computeKnownBits for PHI nodes to compute sign bit for a recurrence with a NSW addition." 2016-06-29 04:57:00 +00:00
BDCE [PM] Port BDCE to the new pass manager. 2016-05-25 01:57:04 +00:00
BranchFolding
CodeExtractor
CodeGenPrepare
ConstantHoisting This implements a more optimal algorithm for selecting a base constant in 2016-07-14 07:44:20 +00:00
ConstantMerge
ConstProp [X86][SSE] Improve constant folding tests for CVTSD/CVTSS/CVTTSD/CVTTSS 2016-07-08 13:28:34 +00:00
CorrelatedValuePropagation [PM] Port CorrelatedValuePropagation 2016-07-06 23:26:29 +00:00
CrossDSOCFI [PM] Port CrossDSOCFI to the new pass manager. 2016-07-09 03:25:35 +00:00
DCE
DeadArgElim [PM] Port DeadArgumentElimination to the new PM 2016-06-12 09:16:39 +00:00
DeadStoreElimination [DSE] Remove dead stores in end blocks containing fence 2016-07-07 20:51:42 +00:00
EarlyCSE [EarlyCSE] Fold invariant loads 2016-06-16 20:47:57 +00:00
EliminateAvailableExternally
Float2Int [PM] Port float2int to the new pass manager 2016-06-24 23:32:02 +00:00
ForcedFunctionAttrs
FunctionAttrs Revert r275027 - Let FuncAttrs infer the 'returned' argument attribute 2016-07-11 04:51:23 +00:00
FunctionImport Add 'thinlto_src_module' md with asserts or -enable-import-metadata 2016-07-08 23:01:49 +00:00
GCOVProfiling [PM] Port GCOVProfiler pass to the new pass manager 2016-06-05 05:12:23 +00:00
GlobalDCE
GlobalMerge
GlobalOpt IR: Introduce local_unnamed_addr attribute. 2016-06-14 21:01:22 +00:00
GuardWidening
GVN code hoisting pass based on GVN 2016-07-14 12:18:53 +00:00
IndVarSimplify Upgrade other old memset/memcpy signatures in tests causing buildbot failures with rL273568. 2016-06-23 16:34:52 +00:00
InferFunctionAttrs Reverting r275284 due to platform-specific test failures 2016-07-13 19:09:16 +00:00
Inline Implement callsite-hotness based inline cost for Sample-based PGO 2016-07-11 16:48:54 +00:00
InstCombine [InstCombine] Masked loads with undef masks can fold to normal loads 2016-07-14 06:58:42 +00:00
InstMerge [PM] Port MergedLoadStoreMotion to the new pass manager, take two. 2016-06-17 19:10:09 +00:00
InstSimplify Simplify llvm.masked.load w/ undef masks 2016-07-14 06:58:37 +00:00
Internalize [Internalize] Test that __stack_chk_{guard, fail} are not internalized. 2016-06-05 19:08:54 +00:00
IPConstantProp
IRCE [IRCE] Optimize conjunctions of range checks 2016-05-26 00:09:02 +00:00
JumpThreading Work around PR28400 a bit harder. 2016-07-06 19:05:41 +00:00
LCSSA [PM] Port LCSSA to the new PM. 2016-06-09 19:44:46 +00:00
LICM New pass manager for LICM. 2016-07-12 22:37:48 +00:00
LoadCombine [LoadCombine] Combine Loads formed from GEPS with negative indexes 2016-06-19 06:14:56 +00:00
LoadStoreVectorizer Extended LoadStoreVectorizer to vectorize subchains. 2016-07-13 21:20:01 +00:00
LoopDataPrefetch [Kryo] Enable loop prefetcher. 2016-06-21 22:47:56 +00:00
LoopDeletion
LoopDistribute [LoopAccessAnalysis] Fix an integer overflow 2016-07-07 06:24:36 +00:00
LoopIdiom [PM] Port LoopIdiomRecognize Pass to new PM 2016-07-12 18:45:51 +00:00
LoopInterchange
LoopLoadElim [LLE] Don't hoist conditionally executed loads 2016-06-28 04:02:47 +00:00
LoopReroll Be wary of abnormal exits from loop when exploiting UB 2016-06-09 01:13:59 +00:00
LoopRotate
LoopSimplify [PM] Port LoopSimplify to the new pass manager. 2016-07-09 03:03:01 +00:00
LoopSimplifyCFG
LoopStrengthReduce AMDGPU: Run pointer optimization passes 2016-06-15 00:11:01 +00:00
LoopUnroll [LoopUnrollAnalyzer] Fix a bug in UnrolledInstAnalyzer::visitLoad. 2016-06-23 14:31:31 +00:00
LoopUnswitch [LoopUnswitch] Unswitch on conditions feeding into guards 2016-06-26 05:10:45 +00:00
LoopVectorize [LV] Remove wrong assumption about LCSSA 2016-07-12 21:24:06 +00:00
LoopVersioning [LoopVer] Update all existing PHIs in the exit block 2016-06-14 09:38:54 +00:00
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests [PM/IPO] Port LowerTypeTests to the new PassManager. 2016-07-11 18:10:06 +00:00
Mem2Reg [PM] Port Mem2Reg to the new pass manager. 2016-06-14 03:22:22 +00:00
MemCpyOpt [PM] Port MemCpyOpt to the new PM. 2016-06-14 02:44:55 +00:00
MergeFunc Fix a crash in MergeFunctions related to ordering of weak/strong functions 2016-05-31 17:20:23 +00:00
MetaRenamer
NameAnonFunctions
NaryReassociate
ObjCARC Form objc_storeStrong in the presence of bitcasts. 2016-05-27 02:13:53 +00:00
PartiallyInlineLibCalls [PM] Port PartiallyInlineLibCalls to the new pass manager. 2016-05-25 23:38:53 +00:00
PGOProfile [PGO] Don't include full file path in static function profile counter names 2016-07-12 17:14:51 +00:00
PhaseOrdering
PlaceSafepoints [PlaceSafepoints] Don't call undef in test case; NFC 2016-06-25 01:40:54 +00:00
PreISelIntrinsicLowering [PM] Port PreISelIntrinsicLowering to the new PM 2016-06-24 20:13:42 +00:00
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC [RewriteStatepointsForGC] All constant should have null base pointer 2016-05-27 13:13:59 +00:00
SafeStack StackColoring for SafeStack. 2016-06-29 20:37:43 +00:00
SampleProfile Tune the weight propagation algorithm for sample profile. 2016-07-11 16:40:17 +00:00
Scalarizer [Scalarizer] PR28108: Skip over nullptr rather than crashing on it. 2016-07-14 01:31:25 +00:00
SCCP [IPSCCP] Constant fold struct argument/instructions when all the lattice values are constant. 2016-07-14 02:51:41 +00:00
SeparateConstOffsetFromGEP
SimplifyCFG Revert "[SimplifyCFG] Stop inserting calls to llvm.trap for UB" 2016-06-25 08:19:55 +00:00
Sink [Sink] Don't move calls to readonly functions across stores 2016-07-11 14:11:51 +00:00
SLPVectorizer [SLPVectorizer][X86] Added fma vectorization tests 2016-07-08 17:19:13 +00:00
SpeculativeExecution
SROA
StraightLineStrengthReduce [SLSR] Call getPointerSizeInBits with the correct address space. 2016-07-11 18:13:28 +00:00
StripDeadPrototypes
StripSymbols Fix strip-dead-debug-info test if path contains "bar". 2016-06-16 19:39:55 +00:00
StructurizeCFG
TailCallElim [PM] Port TailCallElim 2016-07-06 23:48:41 +00:00
Util [MemorySSA] Reinstate the legacy printer and verifier. 2016-07-06 21:20:47 +00:00
WholeProgramDevirt Print remarks from WholeProgramDevirt pass for each call site. 2016-07-12 02:38:37 +00:00