llvm-mirror/test/Transforms
Craig Topper 5cd891dbc3 [X86] Remove IntrArgMemOnly from target specific gather/scatter intrinsics
IntrArgMemOnly implies that only memory pointed to by pointer typed arguments will be accessed. But these intrinsics allow you to pass null to the pointer argument and put the full address into the index argument. Other passes won't be able to understand this.

A colleague found that ISPC was creating gathers like this and then dead store elimination removed some stores because it didn't understand what the gather was doing since the pointer argument was null.

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

llvm-svn: 355228
2019-03-01 21:02:40 +00:00
..
ADCE Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
AddDiscriminators treat invoke like call 2019-01-15 21:26:51 +00:00
AggressiveInstCombine [AggressiveInstCombine] convert rotate with guard branch into funnel shift (PR34924) 2018-12-17 21:14:51 +00:00
AlignmentFromAssumptions
ArgumentPromotion Temporarily revert "ArgumentPromotion should copy all metadata to new Function" and the dependent patch "Refine ArgPromotion metadata handling" as they're causing segfaults in argument promotion. 2019-02-28 01:11:12 +00:00
AtomicExpand Codegen support for atomicrmw fadd/fsub 2019-01-22 18:36:06 +00:00
BDCE [BDCE] Remove dead uses of arguments 2019-01-04 21:21:43 +00:00
BlockExtractor [hot-cold-split] Name split functions with ".cold" suffix 2018-10-24 18:53:47 +00:00
BranchFolding
CalledValuePropagation
CallSiteSplitting [CallSiteSplitting] Report edge deletion to DomTreeUpdater 2018-11-29 15:27:04 +00:00
CanonicalizeAliases [ThinLTO] Handle chains of aliases 2019-01-04 19:04:54 +00:00
CodeExtractor [CodeExtractor] Do not lift lifetime.end markers for region inputs 2019-02-15 18:46:58 +00:00
CodeGenPrepare [CGP] add special-cases to form unsigned add with overflow (PR40486) 2019-02-24 15:31:27 +00:00
ConstantHoisting [ConstantHoisting] Call cleanup() in ConstantHoistingPass::runImpl to avoid dangling elements in ConstIntInfoVec for new PM 2019-03-01 05:27:01 +00:00
ConstantMerge
ConstProp [ConstantFold] Fix misfolding fcmp of a ConstantExpr NaN with itself. 2019-02-19 21:21:54 +00:00
Coroutines Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
CorrelatedValuePropagation [CVP] Use LVI to constant fold deopt operands 2019-01-22 01:34:33 +00:00
CrossDSOCFI
DCE
DeadArgElim [IPO][AVR] Create new Functions in the default address space specified in the data layout 2018-12-18 09:52:52 +00:00
DeadStoreElimination [X86] Remove IntrArgMemOnly from target specific gather/scatter intrinsics 2019-03-01 21:02:40 +00:00
DivRemPairs
EarlyCSE AMDGPU: Remove IntrReadMem from memtime/memrealtime intrinsics 2019-02-25 20:16:11 +00:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp/X86 Re-land r349731 "[CodeGen][ExpandMemcmp] Add an option for allowing overlapping loads. 2018-12-20 13:01:04 +00:00
Float2Int
ForcedFunctionAttrs
FunctionAttrs [FuncAttrs] Remove "access range attributes" for read-none functions 2018-09-11 11:51:29 +00:00
FunctionImport Recommit "[ThinLTO] Rename COMDATs for COFF when promoting/renaming COMDAT leader" 2019-01-31 17:18:11 +00:00
GCOVProfiling [DebugInfo] IR/Bitcode changes for DISubprogram flags. 2018-11-28 21:14:32 +00:00
GlobalDCE GlobalDCE: Teach isEmptyFunction() to ignore debug intrinsics. 2018-11-16 17:47:21 +00:00
GlobalMerge
GlobalOpt [GlobalOpt] Simplify __cxa_atexit elimination 2019-02-09 09:18:37 +00:00
GlobalSplit
GuardWidening [GuardWidening] Support widening of explicitly expressed guards 2019-02-13 09:56:30 +00:00
GVN [GVN] Small tweaks to comments, style, and missed vector handling 2019-02-20 00:31:28 +00:00
GVNHoist [MemorySSAUpdater] Avoid creating self-referencing MemoryDefs 2018-09-11 14:29:59 +00:00
GVNSink [Local] Make DoesKMove required for combineMetadata. 2018-08-24 11:40:04 +00:00
HotColdSplit [HotColdSplit] Disable splitting for sanitized functions 2019-02-26 22:55:46 +00:00
IndirectBrExpand
IndVarSimplify [IndVars] Fix corner case with unreachable Phi inputs. PR40454 2019-02-12 09:59:44 +00:00
InferAddressSpaces [InferAddressSpaces] Fix crash on select of non-ptr operands 2019-02-21 12:31:36 +00:00
InferFunctionAttrs Allow norecurse attribute on functions that have debug infos. 2018-12-05 16:48:00 +00:00
Inline [X86] Filter out tuning feature flags and a few ISA feature flags when checking for function inline compatibility. 2019-02-19 17:05:11 +00:00
InstCombine [InstCombine] Extend saturating idempotent atomicrmw transform to FP 2019-03-01 19:50:36 +00:00
InstMerge [DebugInfo][InstMerge] Fix -debugify for phi node created by -mldst-motion 2018-11-02 18:25:41 +00:00
InstNamer
InstSimplify [InstSimplify] remove zero-shift-guard fold for general funnel shift 2019-02-26 18:26:56 +00:00
InterleavedAccess
Internalize
IPConstantProp [IPCP] Don't crash due to arg count/type mismatch between caller/callee 2019-01-29 10:19:44 +00:00
IRCE [IRCE] Support narrow latch condition for wide range checks 2019-01-23 07:20:56 +00:00
JumpThreading Implementation of asm-goto support in LLVM 2019-02-08 20:48:56 +00:00
LCSSA [LCSSA] Handle case with single new PHI faster. 2019-02-02 15:26:05 +00:00
LICM [LICM] Infer proper alignment from loads during scalar promotion 2019-03-01 18:45:05 +00:00
LoadStoreVectorizer [PM] Port LoadStoreVectorizer to the new pass manager. 2018-12-07 08:23:37 +00:00
LoopDataPrefetch
LoopDeletion Fix RUN line in test/Transforms/LoopDeletion/crashbc.ll 2019-01-10 09:58:23 +00:00
LoopDistribute [Unroll/UnrollAndJam/Vectorizer/Distribute] Add followup loop attributes. 2018-12-12 17:32:52 +00:00
LoopIdiom [LoopIdiomRecognize] @llvm.dbg values shouldn't affect the transformation. 2019-02-03 20:33:20 +00:00
LoopInstSimplify Update MemorySSA in LoopInstSimplify. 2018-08-22 20:05:21 +00:00
LoopInterchange [LoopInterchange] Support reductions across inner and outer loop. 2018-11-08 20:44:19 +00:00
LoopLoadElim
LoopPredication [LoopPredication] Support guards expressed as branches by widenable condition 2019-01-22 11:49:06 +00:00
LoopReroll [LoopReroll] Fix reroll root legality checking. 2019-02-12 00:33:25 +00:00
LoopRotate Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
LoopSimplify Revert r346810 "Preserve loop metadata when splitting exit blocks" 2018-11-14 01:47:32 +00:00
LoopSimplifyCFG [LoopSimplifyCFG] Update MemorySSA after r353911. 2019-02-21 19:54:05 +00:00
LoopStrengthReduce [LSR] Generate cross iteration indexes 2019-02-07 13:32:54 +00:00
LoopTransformWarning [WarnMissedTransforms] Do not warn about already vectorized loops. 2019-02-04 19:55:59 +00:00
LoopUnroll [LoopUnrollPeel] Add case where we should forget the peeled loop from SCEV. 2019-02-14 13:59:39 +00:00
LoopUnrollAndJam [Unroll/UnrollAndJam/Vectorizer/Distribute] Add followup loop attributes. 2018-12-12 17:32:52 +00:00
LoopUnswitch Update MemorySSA in LoopUnswitch. 2018-09-11 19:19:21 +00:00
LoopVectorize [ValueTracking] More accurate unsigned sub overflow detection 2019-02-28 18:04:20 +00:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerSwitch [LowerSwitch][AMDGPU] Do not handle impossible values 2019-02-22 14:33:46 +00:00
LowerTypeTests
LowerWidenableCondition Default lowering for experimental.widenable.condition 2019-01-31 09:10:17 +00:00
MakeGuardsExplicit Introduce llvm.experimental.widenable_condition intrinsic 2018-12-07 14:39:46 +00:00
Mem2Reg [Mem2Reg] Fix nondeterministic corner case 2018-11-30 19:20:02 +00:00
MemCpyOpt [ValueTracking] Look through casts when determining non-nullness 2019-01-26 23:40:35 +00:00
MergeFunc Implementation of asm-goto support in LLVM 2019-02-08 20:48:56 +00:00
MergeICmps [MergeICmps] Do not perform the transformation if GEP is used outside of block 2018-11-05 18:16:32 +00:00
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00
ObjCARC Teach ObjCARC optimizer about equivalent PHIs when eliminating autoreleaseRV/retainRV pairs 2019-01-03 01:38:08 +00:00
PartiallyInlineLibCalls
PGOProfile [PGO] Make pgo related options in opt more consistent. 2019-01-16 23:19:02 +00:00
PhaseOrdering [InstCombine] canonicalize raw IR rotate patterns to funnel shift 2019-01-01 21:51:39 +00:00
PlaceSafepoints
PreISelIntrinsicLowering Preserve the linkage for objc* intrinsics as clang will set them to weak_external in some cases 2018-12-18 22:42:08 +00:00
PruneEH [Transforms] Preserve metadata when converting invoke to call. 2018-12-14 18:15:11 +00:00
Reassociate [PatternMatch] Handle undef vectors consistently 2018-11-20 16:08:19 +00:00
Reg2Mem
RewriteStatepointsForGC [RS4GC] Expand/standardize tests introduced in rL352059 2019-01-24 16:45:23 +00:00
SafeStack SafeStack: Prevent OOB reads with mem intrinsics 2018-08-30 20:44:51 +00:00
SampleProfile Update entry count for cold calls 2019-01-24 00:55:23 +00:00
ScalarizeMaskedMemIntrin/X86 [ScalarizeMaskedMemIntrin] Use MinAlign to calculate alignment for the scalar load/stores to handle element types that are byte-sized but not powers of 2. 2018-09-28 03:35:37 +00:00
Scalarizer Introduce llvm.loop.parallel_accesses and llvm.access.group metadata. 2018-12-20 04:58:07 +00:00
SCCP [ConstantFold] Use getMinSignedBits for APInt in isIndexInRangeOfArrayType. 2018-12-12 18:55:14 +00:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch Update MemorySSA in SimpleLoopUnswitch. 2018-12-04 14:23:37 +00:00
SimplifyCFG [DWARF] LLVM ERROR: Broken function found, while removing Debug Intrinsics. 2019-02-11 10:16:38 +00:00
Sink
SLPVectorizer [Vectorizer] Add vectorization support for fixed smul/umul intrinsics 2019-02-25 15:42:02 +00:00
SpeculateAroundPHIs
SpeculativeExecution
SROA [Analysis] Fix isSafeToLoadUnconditionally handling of volatile. 2019-01-24 21:31:13 +00:00
StraightLineStrengthReduce [SLSR] use 'match' to simplify code; NFC 2018-10-23 14:07:39 +00:00
StripDeadPrototypes
StripSymbols
StructurizeCFG StructurizeCFG: Simplify inserted PHI nodes 2018-10-17 15:37:41 +00:00
SyntheticCountsPropagation
TailCallElim [TailCallElim] Enable marking of calls with byval as tails 2018-10-08 18:03:40 +00:00
ThinLTOBitcodeWriter [LTO] Record whether LTOUnit splitting is enabled in index 2019-01-11 18:31:57 +00:00
Util [LowerSwitch][AMDGPU] Do not handle impossible values 2019-02-22 14:33:46 +00:00
WholeProgramDevirt [ThinLTO] Efficiency fix for writing type id records in per-module indexes 2018-09-25 20:14:40 +00:00