llvm/test/Transforms
Anna Thomas 9cd4907159 [AliasAnalysis] Treat invariant.start as read-memory
Summary:
We teach alias analysis that invariant.start is readonly.
This helps with GVN and memcopy optimizations that currently treat.
invariant.start as a clobber.
We need to treat this as readonly, so that DSE does not incorrectly
remove stores prior to the invariant.start

Reviewers: sanjoy, reames, majnemer, dberlin

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@278138 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-09 17:18:05 +00:00
..
ADCE
AddDiscriminators Do not assign new discriminator for all intrinsics. 2016-08-05 17:56:49 +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 CodeExtractor : Add ability to preserve profile data. 2016-08-02 02:15:45 +00:00
CodeGenPrepare
ConstantHoisting This implements a more optimal algorithm for selecting a base constant in 2016-07-14 07:44:20 +00:00
ConstantMerge [PM] Port ConstantMerge to the new pass manager. 2016-05-05 00:51:09 +00:00
ConstProp Don't remove side effecting instructions due to ConstantFoldInstruction 2016-07-22 04:54:44 +00:00
Coroutines [Coroutines] Passify the build bots. Remove restart-trigger.ll test for now 2016-08-06 21:01:22 +00:00
CorrelatedValuePropagation [LVI] Make LVI smarter about comparisons with non-constants 2016-08-09 14:50:08 +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 [AliasAnalysis] Treat invariant.start as read-memory 2016-08-09 17:18:05 +00:00
EarlyCSE [EarlyCSE] Correctly handle simplified, but live, instructions 2016-07-29 05:39:21 +00:00
EliminateAvailableExternally [PM] Port EliminateAvailableExternally pass to the new pass manager. 2016-05-05 02:37:32 +00:00
Float2Int [PM] Port float2int to the new pass manager 2016-06-24 23:32:02 +00:00
ForcedFunctionAttrs
FunctionAttrs Forgot to add a test for r276008. 2016-07-20 04:13:05 +00:00
FunctionImport [PM] Port FunctionImport Pass to new PM 2016-07-18 21:22:24 +00:00
GCOVProfiling [PM] Port GCOVProfiler pass to the new pass manager 2016-06-05 05:12:23 +00:00
GlobalDCE [GlobalDCE, Misc] Don't remove functions referenced by ifuncs 2016-05-04 00:20:48 +00:00
GlobalMerge CodeGen: Make the global-merge pass independently testable, and add a test. 2016-05-19 04:38:56 +00:00
GlobalOpt IR: Drop uniquing when an MDNode Value operand is deleted 2016-08-03 18:19:43 +00:00
GuardWidening [GuardWidening] Fix incorrect use of remove_if 2016-05-21 02:24:44 +00:00
GVN [AliasAnalysis] Treat invariant.start as read-memory 2016-08-09 17:18:05 +00:00
IndVarSimplify [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
InferFunctionAttrs Recommitting r275284: add support to inline __builtin_mempcpy 2016-07-29 18:23:18 +00:00
Inline Replace hot-callsite based heuristic to use its own threshold parameter instead of share inline-hint parameter 2016-08-05 20:28:41 +00:00
InstCombine auto-generate checks 2016-08-09 17:03:51 +00:00
InstMerge [PM] Port MergedLoadStoreMotion to the new pass manager, take two. 2016-06-17 19:10:09 +00:00
InstSimplify [InstSimplify] Fold gep (gep V, C), (sub 0, V) to C 2016-08-07 07:58:12 +00:00
Internalize [Internalize] Test that __stack_chk_{guard, fail} are not internalized. 2016-06-05 19:08:54 +00:00
IPConstantProp [PM] Port Interprocedural SCCP to the new pass manager. 2016-05-05 21:05:36 +00:00
IRCE [IRCE] Preserve loop-simplify form 2016-08-06 00:01:56 +00:00
JumpThreading [JumpThreading] Fix handling of aliasing metadata. 2016-08-08 04:10:22 +00:00
LCSSA Revert "Revert r275883 and r275891. They seem to cause PR28608." 2016-07-20 01:55:27 +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 LoadStoreVectorizer: Remove TargetBaseAlign. Keep alignment for stack adjustments. 2016-08-04 16:38:44 +00:00
LoopDataPrefetch [LoopDataPrefetch] Include hotness of region in opt remark 2016-07-22 22:53:17 +00:00
LoopDeletion [PM] Port Dead Loop Deletion Pass to the new PM 2016-07-14 18:28:29 +00:00
LoopDistribute [BPI] Add new LazyBPI analysis 2016-07-28 23:31:12 +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 [LoopReroll] Reroll loops with unordered atomic memory accesses 2016-07-19 00:23:54 +00:00
LoopRotate LPM: Drop require<loops> from these tests, it's redundant. NFC 2016-05-10 18:28:10 +00:00
LoopSimplify Revert "Revert "[LoopSimplify] Fix updating LCSSA after separating nested loops."" 2016-08-07 01:56:54 +00:00
LoopSimplifyCFG LPM: Drop require<loops> from these tests, it's redundant. NFC 2016-05-10 18:28:10 +00:00
LoopStrengthReduce [PM] Significantly refactor the pass pipeline parsing to be easier to 2016-08-03 03:21:41 +00:00
LoopUnroll [LoopUnroll] Fix a PowerPC test broken by r277524. 2016-08-02 21:43:25 +00:00
LoopUnswitch [LoopUnswitch] Unswitch on conditions feeding into guards 2016-06-26 05:10:45 +00:00
LoopVectorize [ValueTracking] Teach computeKnownBits about [su]min/max 2016-08-06 08:16:00 +00:00
LoopVersioning [LoopVer] Update all existing PHIs in the exit block 2016-06-14 09:38:54 +00:00
LoopVersioningLICM
LowerAtomic [PM] Port LowerAtomic to the new pass manager. 2016-05-13 22:52:35 +00:00
LowerExpectIntrinsic
LowerGuardIntrinsic [PM] Port LowerGuardIntrinsic to the new PM. 2016-07-28 22:08:41 +00:00
LowerInvoke
LowerSwitch
LowerTypeTests [WebAssembly] Fix CFI index to account for padding nullptr function 2016-08-08 23:56:01 +00:00
Mem2Reg [PM] Port Mem2Reg to the new pass manager. 2016-06-14 03:22:22 +00:00
MemCpyOpt [AliasAnalysis] Treat invariant.start as read-memory 2016-08-09 17:18:05 +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 [PM] Port NaryReassociate to the new PM 2016-07-21 22:28:52 +00:00
ObjCARC [Verifier] Resume instructions can only be in functions w/ a personality 2016-08-01 18:06:34 +00:00
PartiallyInlineLibCalls [PM] Port PartiallyInlineLibCalls to the new pass manager. 2016-05-25 23:38:53 +00:00
PGOProfile [Profile] turn off verbose warnings by default 2016-08-09 15:35:28 +00:00
PhaseOrdering Mark that SpeculativeExecution preserves Globals Alias Analysis. 2016-05-03 08:33:26 +00:00
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 [safestack] Layout large allocas first to reduce fragmentation. 2016-08-02 23:21:30 +00:00
SampleProfile Tune the weight propagation algorithm for sample profile. 2016-07-11 16:40:17 +00:00
Scalarizer Scalarizer: Support scalarizing intrinsics 2016-07-25 20:02:54 +00:00
SCCP [SCCP] Zap multiple return values. 2016-07-20 20:17:13 +00:00
SeparateConstOffsetFromGEP [NVPTX] Enable the load-store vectorizer on nvptx. 2016-07-20 22:11:36 +00:00
SimplifyCFG Actually, r277337 was fine. Just kill the DAGs that made the test allow nondeterminism. 2016-08-05 14:58:34 +00:00
Sink Add a testcase for r275581 2016-07-19 17:52:41 +00:00
SLPVectorizer [X86][SSE] Add initial costs for vector CTTZ/CTLZ 2016-08-04 10:51:41 +00:00
SpeculativeExecution [PM] Port SpeculativeExecution to the new PM 2016-08-01 21:48:33 +00:00
SROA [SROA] Fix crash with lifetime intrinsic partially covering alloca. 2016-08-08 01:30:53 +00:00
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 StructurizeCFG: Fix inverting constantexpr conditions 2016-07-15 22:13:16 +00:00
TailCallElim [PM] Port TailCallElim 2016-07-06 23:48:41 +00:00
Util [MSSA] Fix PR28880 by fixing use optimizer's lower bound tracking behavior. 2016-08-08 04:44:53 +00:00
WholeProgramDevirt WholeProgramDevirt: print remarks with devirtualized method names. 2016-08-05 19:45:16 +00:00