llvm-project/llvm/test/Transforms
Florian Hahn a73166a452 [LAA] Use DL to get element size for bound computation.
Currently LAA uses getScalarSizeInBits to compute the size of an element
when computing the end bound of an access.

This does not work as expected for pointers to pointers, because
getScalarSizeInBits will return 0 for pointer types.

By using DataLayout to get the size of the element we can also correctly
handle pointer element types.

Note the changes to the existing test, which seems to also use the wrong
offset for the end.

Fixes PR47751.

Reviewed By: anemet

Differential Revision: https://reviews.llvm.org/D88953
2020-10-07 18:57:07 +01:00
..
ADCE
AddDiscriminators
AggressiveInstCombine
AlignmentFromAssumptions Reland [AssumeBundles] Use operand bundles to encode alignment assumptions 2020-09-12 15:36:06 +02:00
ArgumentPromotion [ArgumentPromotion]: Copy function metadata after promoting arguments 2020-09-10 13:08:57 -04:00
AtomicExpand AMDGPU: Check global FP atomics match default FP mode 2020-09-23 09:07:50 -04:00
Attributor [Attributor] Use smarter way to determine alignment of GEPs 2020-10-06 19:31:08 -05:00
BDCE [DemandedBits][BDCE] Add support for min/max intrinsics 2020-09-10 22:13:31 +02:00
BlockExtractor
BranchFolding
CallSiteSplitting Re-enable "[InstCombine] Simplify boolean Phis with const inputs using CFG" 2020-07-16 16:09:08 +07:00
CalledValuePropagation
CanonicalizeAliases
CanonicalizeFreezeInLoops
CodeExtractor [CodeExtractor] Don't create bitcasts when inserting lifetime markers (NFCI) 2020-09-29 16:34:36 -07:00
CodeGenPrepare [CodeGenPrepare] Fix zapping dead operands of assume 2020-09-14 11:46:34 +07:00
ConstantHoisting
ConstantMerge
ConstraintElimination [NewPM] Port ConstraintElimination to the new pass manager 2020-09-27 11:12:26 -07:00
Coroutines [Coroutines][NewPM] Fix coroutine tests under new pass manager 2020-10-04 14:19:29 -07:00
CorrelatedValuePropagation [CVP] Allow two transforms in one invocation 2020-09-28 15:11:42 -07:00
CrossDSOCFI
DCE
DeadArgElim [AttributeFuncs] Consider `noundef` in `typeIncompatible` 2020-10-05 23:23:06 -05:00
DeadStoreElimination [DSE] Look through memory PHI arguments when removing noop stores in MSSA. 2020-10-01 10:42:02 -07:00
DivRemPairs [ValueTracking] Let isGuaranteedNotToBeUndefOrPoison use canCreateUndefOrPoison 2020-07-20 09:21:39 +09:00
EarlyCSE Clean up test file, NFC 2020-09-23 15:32:46 -05:00
EliminateAvailableExternally
EntryExitInstrumenter Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
ExpandMemCmp
FixIrreducible [fix-irreducible] Skip unreachable predecessors. 2020-07-11 10:08:44 -04:00
Float2Int
ForcedFunctionAttrs Force Remove Attribute 2020-08-19 17:30:13 -04:00
FunctionAttrs [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00
FunctionImport
GCOVProfiling [gcov] Add spanning tree optimization 2020-09-13 00:07:31 -07:00
GVN [GVN LoadPRE] Extend the scope of optimization by using context to prove safety of speculation 2020-10-06 09:25:16 +07:00
GVNHoist [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
GVNSink [GVNSink][NewPM] Add GVNSinkPass to PassRegistry.def 2020-09-22 08:24:09 -07:00
GlobalDCE [FunctionAttrs] Rename functionattrs -> function-attrs 2020-07-28 09:09:13 -07:00
GlobalMerge
GlobalOpt [GlobalOpt] Fix an incorrect Modified status 2020-09-02 15:00:45 +02:00
GlobalSplit
GuardWidening [NewPM][GuardWidening] Fix loop guard widening tests under NPM 2020-08-06 15:32:59 -07:00
HardwareLoops [SCEV] If Start>=RHS, simplify (Start smin RHS) = RHS for trip counts. 2020-08-03 17:22:42 +01:00
HelloNew Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00
HotColdSplit Revert "Outline non returning functions unless a longjmp" 2020-10-05 14:10:25 -07:00
IRCE [NPM] Bail out when -foo and --passes=foo are both specified 2020-06-22 08:27:13 -07:00
IndVarSimplify [Test] Add one more test where we can avoid creating trunc 2020-10-07 15:06:38 +07:00
IndirectBrExpand
InferAddressSpaces InferAddressSpaces: Fix assert with unreachable code 2020-09-15 15:48:43 -04:00
InferFunctionAttrs [BuildLibCalls] Add noundef to the returned pointers of allocators and argument of free 2020-09-30 02:13:48 +09:00
Inline [MLInliner] Factor out logging 2020-10-05 18:09:17 -07:00
InstCombine [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
InstMerge [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
InstNamer [InstNamer] use 'i' for Instructions, not 'tmp' 2020-06-01 11:11:14 -04:00
InstSimplify [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
InterleavedAccess
Internalize
JumpThreading [JumpThreading] Fix an incorrect Modified status 2020-09-14 10:36:13 +02:00
LCSSA [NewPM][LoopUnswitch] Pin loop-unswitch to legacy PM or use simple-loop-unswitch 2020-08-06 10:56:00 -07:00
LICM [AArch64][SVE] Drop "argmemonly" from gather/scatter with vector base. 2020-09-25 16:01:05 -07:00
LoadStoreVectorizer Revert "[AMDGPU] Reorganize GCN subtarget features for unaligned access" 2020-09-29 15:33:34 +02:00
LoopDataPrefetch Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
LoopDeletion [LoopDeletion] Forget loop before setting values to undef 2020-09-29 10:38:44 +01:00
LoopDistribute [SCEVExpander] Avoid re-using existing casts if it means updating users. 2020-08-09 13:25:17 +01:00
LoopFlatten [LoopFlatten] Add a loop-flattening pass 2020-10-01 13:54:45 +01:00
LoopFusion [Loop Fusion] Integrate Loop Peeling into Loop Fusion (re-land after fixing ASAN build failures) 2020-07-23 21:02:04 +00:00
LoopIdiom Fix a bug in memset formation with vectors of non-integral pointers 2020-10-01 16:11:11 -07:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Move instructions from preheader to outer loop header. 2020-08-10 12:41:33 +01:00
LoopLoadElim [LoopLoadElim] Filter away candidates that stop being AddRecs after loop versioning. PR47457 2020-09-10 13:30:31 +07:00
LoopPredication [BasicAA] Rename deprecated -basicaa to -basic-aa 2020-06-26 20:41:37 -07:00
LoopReroll [LoopReroll][NewPM] Port -loop-reroll to NPM 2020-09-25 12:09:06 -07:00
LoopRotate [NewPM][LoopRotate] Rename rotate -> loop-rotate 2020-08-05 12:25:01 -07:00
LoopSimplify [AttributeFuncs] Consider `align` in `typeIncompatible` 2020-10-05 23:23:05 -05:00
LoopSimplifyCFG [LoopSimplifyCFG][NewPM] Rename simplify-cfg -> loop-simplifycfg 2020-09-21 08:27:19 -07:00
LoopStrengthReduce [PowerPC] implement target hook getTgtMemIntrinsic 2020-10-07 00:02:44 -04:00
LoopTransformWarning
LoopUnroll [test] Fix FullUnroll.ll 2020-09-17 15:56:13 -07:00
LoopUnrollAndJam [LoopUnrollAndJam] Allow unroll and jam loops forced by user. 2020-09-17 19:40:14 +00:00
LoopUnswitch Reland "[LoopUnswitch] Fix incorrect Modified status" 2020-08-20 11:52:09 +02:00
LoopVectorize [LAA] Use DL to get element size for bound computation. 2020-10-07 18:57:07 +01:00
LoopVersioning [NewPM][LoopVersioning] Port LoopVersioning to NPM 2020-08-03 10:32:09 -07:00
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics IR: Define byref parameter attribute 2020-07-20 10:23:09 -04:00
LowerExpectIntrinsic Add support of __builtin_expect_with_probability 2020-06-22 10:21:28 -07:00
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Use TileInfo to create tiled loop nest for matrix multiply. 2020-07-20 21:11:53 +01:00
LowerSwitch [LowerSwitch][NewPM] Port lowerswitch to NPM 2020-09-15 18:18:31 -07:00
LowerTypeTests [AArch64] Add BTI to CFI jumptables. 2020-09-29 13:50:23 +02:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Teach promote to register about droppable instructions 2020-07-24 15:15:38 -05:00
MemCpyOpt [MemCpyOpt] Add additional callslot test cases (NFC) 2020-10-07 18:06:29 +02:00
MergeFunc
MergeICmps
MetaRenamer [MetaRenamer][NewPM] Port metarenamer to NPM 2020-10-02 15:42:25 -07:00
NameAnonGlobals
NaryReassociate [EarlyCSE] Verify hash code in regression tests 2020-09-04 10:40:35 -04:00
NewGVN [DIE] Remove DeadInstEliminationPass 2020-09-21 12:12:25 -07:00
ObjCARC [ObjCARCAA][NewPM] Add already ported objc-arc-aa to PassRegistry.def 2020-09-30 08:50:44 -07:00
OpenMP [OpenMP] Add Missing Runtime Call for Globalization Remarks 2020-10-01 21:19:53 -04:00
PGOProfile [PGO] Skip if an IndirectBrInst critical edge cannot be split 2020-09-10 11:04:14 -07:00
PartialInlining [Partial Inliner] Compute intrinsic cost through TTI 2020-09-16 15:12:31 +01:00
PartiallyInlineLibCalls
PhaseOrdering [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
PlaceSafepoints
PreISelIntrinsicLowering Remove Passes dependency on CodeGen 2020-06-24 14:52:46 -07:00
PruneEH
Reassociate [DIE] Remove DeadInstEliminationPass 2020-09-21 12:12:25 -07:00
Reg2Mem
RewriteStatepointsForGC [NPM] Bail out when -foo and --passes=foo are both specified 2020-06-22 08:27:13 -07:00
SCCP Revert "Recommit "[SCCP] Do not replace deref'able ptr with un-deref'able one."" 2020-09-29 09:18:19 +01:00
SLPVectorizer [llvm][mlir] Promote the experimental reduction intrinsics to be first class intrinsics. 2020-10-07 10:36:44 -07:00
SROA [SROA] rewritePartition()/findCommonType(): if uses have conflicting type, try getTypePartition() before falling back to largest integral use type (PR47592) 2020-10-07 09:20:19 +03:00
SafeStack [StackSafety] Ignore allocas with partial lifetime markers 2020-08-27 13:54:41 -07:00
SampleProfile [test][NewPM][SampleProfile] Fix more tests under NPM 2020-09-30 11:50:41 -07:00
ScalarizeMaskedMemIntrin [ScalarizeMaskedMemIntrin][X86] Refresh missed transform test cases from rGc0c3b9a25fee 2020-08-10 11:14:01 +01:00
Scalarizer [Scalarizer] Avoid changing name of non-instructions 2020-09-15 14:15:50 +02:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch [LoopUnswitch] Trivial simplification: remove trivial dead condition after unswitch 2020-09-22 09:04:59 +07:00
SimplifyCFG [NewPM] Pin tests with -debug-pass to legacy PM 2020-09-22 17:54:25 -07:00
Sink [Sink][test] Add nounwind test and properly test convergent 2020-08-30 18:26:42 -07:00
SpeculateAroundPHIs
SpeculativeExecution SpeculativeExecution: Fix for logic change introduced in D81730. 2020-07-09 15:45:23 +03:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols [NewPM] Port strip* passes to NPM 2020-09-15 18:25:12 -07:00
StructurizeCFG [UnifyLoopExits] Pin tests with -unify-loop-exits to legacy PM 2020-09-21 18:08:58 -07:00
SyntheticCountsPropagation
TailCallElim Revert "[TRE] allow TRE for non-capturing calls." 2020-07-13 00:39:48 +03:00
ThinLTOBitcodeWriter
TypePromotion/ARM
UnifyFunctionExitNodes [UnifyFunctionExitNodes] Fix Modified status for unreachable blocks 2020-09-09 13:36:03 +02:00
UnifyLoopExits [UnifyLoopExits] Pin tests with -unify-loop-exits to legacy PM 2020-09-21 18:08:58 -07:00
UniqueInternalLinkageNames
Util [NewPM] Pin -lazy-branch-prob and -lazy-block-freq tests to legacy PM 2020-09-21 17:51:46 -07:00
VectorCombine [VectorCombine] limit load+insert transform to one-use 2020-09-17 14:29:15 -04:00
WholeProgramDevirt [WholeProgramDevirt][NewPM] Add NPM testing path to match legacy pass 2020-09-30 17:27:37 -07:00