llvm-project/llvm/test/Transforms
Ivan A. Kosarev 53270d0fa6 [Transforms] Propagate TBAA info in SROA
Now that we have the new TBAA metadata format that is capable of
representing accesses to aggregates, we can propagate TBAA access
tags from memory setting and transferring intrinsics to load and
store instructions and vice versa.

Since SROA produces lots of new loads and stores on optimized
builds, this change significantly decreases the share of
undecorated memory accesses on such builds.

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

llvm-svn: 325329
2018-02-16 10:10:29 +00:00
..
ADCE
AddDiscriminators Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
AggressiveInstCombine [AggressiveInstCombine] Fixed TruncCombine class to handle TruncInst leaf node correctly. 2018-01-31 22:39:05 +00:00
AlignmentFromAssumptions Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
ArgumentPromotion [Debugify] Handled unsized types 2018-01-06 00:37:01 +00:00
AtomicExpand
BDCE
BlockExtractor [llvm-extract] Support extracting basic blocks 2018-01-23 21:51:34 +00:00
BranchFolding
CallSiteSplitting Recommit r325001: [CallSiteSplitting] Support splitting of blocks with instrs before call. 2018-02-14 13:59:12 +00:00
CalledValuePropagation Add CalledValuePropagation pass 2017-10-25 13:40:08 +00:00
CodeExtractor [PartialInliner] Update test (NFC). 2018-02-04 18:40:24 +00:00
CodeGenPrepare [AMDGPU] Switch to the new addr space mapping by default 2018-02-02 16:07:16 +00:00
ConstProp [TargetLibraryInfo] fix finite mathlib function availability 2018-01-08 17:38:09 +00:00
ConstantHoisting Fix out-of-order stepping behavior in programs with hoisted constants. 2017-11-09 20:01:31 +00:00
ConstantMerge
Coroutines [Coroutines] Don't move stores for allocator args 2018-02-15 19:31:45 +00:00
CorrelatedValuePropagation [CVP] Don't Replace incoming values from unreachable blocks with undef. 2018-01-29 05:59:55 +00:00
CrossDSOCFI
DCE [DCE] Salvage debug info from dead insts 2018-02-15 22:26:18 +00:00
DeadArgElim [DeadArgumentElimination] Preserve llvm.dbg.values's first argument 2018-01-30 16:42:04 +00:00
DeadStoreElimination [DeadStoreElimination] Salvage debug info from dead insts 2018-02-13 18:15:26 +00:00
DivRemPairs
EarlyCSE [EarlyCSE] Salvage debug info during DCE 2018-01-09 15:08:37 +00:00
EliminateAvailableExternally
EntryExitInstrumenter EntryExitInstrumenter: set DebugLocs on the inserted call instructions (PR35412) 2017-11-28 18:44:26 +00:00
ExpandMemCmp/X86 [x86, MemCmpExpansion] allow 2 pairs of loads per block (PR33325) 2018-01-06 16:16:04 +00:00
Float2Int
ForcedFunctionAttrs
FunctionAttrs Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
FunctionImport [ThinLTO] Import global variables 2018-02-16 08:11:04 +00:00
GCOVProfiling
GVN [GVN] Partially revert debug info salvage change (r325063) 2018-02-16 01:15:20 +00:00
GVNHoist [GVNHoist] Fix: PR35222 gvn-hoist incorrectly erases load in case of a loop 2018-01-04 07:47:24 +00:00
GVNSink Add an @llvm.sideeffect intrinsic 2017-11-08 21:59:51 +00:00
GlobalDCE
GlobalMerge
GlobalOpt Re-commit : [PowerPC] Add handling for ColdCC calling convention and a pass to mark 2018-01-30 16:17:22 +00:00
GlobalSplit
GuardWidening
IPConstantProp [IPSCCP] Remove calls without side effects 2018-01-09 21:58:46 +00:00
IRCE Re-enable "[SCEV] Make isLoopEntryGuardedByCond a bit smarter" 2018-02-07 11:16:29 +00:00
IndVarSimplify [NFC] Fix metadata placement in test 2018-02-15 07:13:18 +00:00
IndirectBrExpand Introduce the "retpoline" x86 mitigation technique for variant #2 of the speculative execution vulnerabilities disclosed today, specifically identified by CVE-2017-5715, "Branch Target Injection", and is one of the two halves to Spectre.. 2018-01-22 22:05:25 +00:00
InferAddressSpaces [AMDGPU] Switch to the new addr space mapping by default 2018-02-02 16:07:16 +00:00
InferFunctionAttrs
Inline [NFC] fix trivial typos in comments and documents 2018-01-29 05:17:03 +00:00
InstCombine Remove brittle check lines from a test, NFC 2018-02-16 01:21:01 +00:00
InstMerge
InstNamer
InstSimplify [InstCombine, InstSimplify] (re)move tests, regenerate checks; NFC 2018-02-13 18:22:53 +00:00
InterleavedAccess [X86][LLVM]Expanding Supports lowerInterleaved{store|load}() in X86InterleavedAccess (VF64 stride 3-4) 2017-10-02 07:35:25 +00:00
Internalize
JumpThreading [Dominators] Visit affected node candidates found at different root levels 2018-01-19 21:27:24 +00:00
LCSSA Revert r323472 "[Debug] Add dbg.value intrinsics for PHIs created during LCSSA." 2018-02-05 16:10:42 +00:00
LICM [LICM] update BlockColors after splitting predecessors 2018-02-12 17:56:55 +00:00
LoadStoreVectorizer [AMDGPU] Switch to the new addr space mapping by default 2018-02-02 16:07:16 +00:00
LoopDataPrefetch
LoopDeletion [LoopDeletion] Handle users in unreachable block 2018-01-12 07:24:43 +00:00
LoopDistribute
LoopIdiom Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
LoopInterchange [LoopInterchange] Incrementally update the dominator tree. 2018-02-14 13:13:15 +00:00
LoopLoadElim
LoopPredication [Loop Predication] Teach LP about reverse loops with uge and sge latch conditions 2018-02-08 10:34:08 +00:00
LoopReroll
LoopRotate [LoopRotate] Detect loops with indirect branches better (we're giving up on them). 2018-01-09 23:54:35 +00:00
LoopSimplify [BasicBlockUtils] Check for unreachable preds before updating LI in UpdateAnalysisInformation 2018-01-02 16:25:50 +00:00
LoopSimplifyCFG
LoopStrengthReduce [LoopStrengthReduce, x86] don't add cost for a cmp that will be macro-fused (PR35681) 2018-02-05 23:43:05 +00:00
LoopUnroll [SimplifyCFG] Re-apply Relax restriction for folding unconditional branches 2018-02-08 07:16:29 +00:00
LoopUnswitch [SimplifyCFG] Re-apply Relax restriction for folding unconditional branches 2018-02-08 07:16:29 +00:00
LoopVectorize [LV] Fix analyzeInterleaving when -pass-remarks enabled 2018-02-10 00:07:45 +00:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch
LowerTypeTests Minor tweak to test case. 2018-02-08 23:10:07 +00:00
Mem2Reg [Debugify] Add a pass to test debug info preservation 2017-12-08 21:57:28 +00:00
MemCpyOpt Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
MergeFunc Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
MergeICmps [MergeICmps] Handle chains with several complex BCE basic blocks. 2018-02-06 12:25:33 +00:00
MetaRenamer Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
NameAnonGlobals
NaryReassociate
NewGVN Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
ObjCARC [ObjCARC] Do not turn a call to @objc_autoreleaseReturnValue into a call 2018-01-19 23:51:13 +00:00
PGOProfile [ThinLTO] Remove dead and dropped symbol declarations when possible 2018-02-06 00:43:39 +00:00
PartiallyInlineLibCalls [PartiallyInlineLibCalls][x86] add TTI hook to allow sqrt inlining to depend on arg rather than result 2017-11-27 21:15:43 +00:00
PhaseOrdering Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
PlaceSafepoints Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
PreISelIntrinsicLowering
PruneEH
Reassociate Reassociate: add global reassociation algorithm 2017-12-12 19:18:02 +00:00
Reg2Mem
RewriteStatepointsForGC [IR] Fix creating mutable versions of TBAA access tags 2018-02-13 14:44:25 +00:00
SCCP [SCCP] Test that constant propagation updates debug info, NFC 2018-02-15 19:13:04 +00:00
SLPVectorizer [SLP] Fix the test for the reversed stores, NFC. 2018-02-15 17:11:50 +00:00
SROA [Transforms] Propagate TBAA info in SROA 2018-02-16 10:10:29 +00:00
SafeStack [SafeStack] Use updated CreateMemCpy API to set more accurate source and destination alignments. 2018-02-12 22:39:47 +00:00
SampleProfile Profiling tests: Endianess XFAIL for powerpc- (32-bit) 2018-01-09 20:09:23 +00:00
Scalarizer
SeparateConstOffsetFromGEP [AMDGPU] Change constant addr space to 4 2018-02-13 18:00:25 +00:00
SimpleLoopUnswitch [PM/Unswitch] Teach SimpleLoopUnswitch to do non-trivial unswitching, 2017-11-17 19:58:36 +00:00
SimplifyCFG Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
Sink [Sink] Really really fix predicate in legality check 2018-01-11 21:28:57 +00:00
SpeculateAroundPHIs Add a new pass to speculate around PHI nodes with constant (integer) operands when profitable. 2017-11-28 11:32:31 +00:00
SpeculativeExecution
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols
StructurizeCFG Revert r321751, "StructurizeCFG: Fix broken backedge detection" 2018-01-24 18:02:05 +00:00
SyntheticCountsPropagation Add a pass to generate synthetic function entry counts. 2018-01-09 19:39:35 +00:00
TailCallElim Remove this test 2017-11-28 22:39:38 +00:00
ThinLTOBitcodeWriter [ThinLTO] fix test failure without x86 backend 2018-02-06 07:03:09 +00:00
Util Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
WholeProgramDevirt Make GlobalValues with non-default visibilility dso_local. 2018-01-18 02:08:23 +00:00