1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/Transforms
Eli Friedman 19ad020e28 [ScalarEvolution] Ensure backedge-taken counts are not pointers.
A backedge-taken count doesn't refer to memory; returning a pointer type
is nonsense. So make sure we always return an integer.

The obvious way to do this would be to just convert the operands of the
icmp to integers, but that doesn't quite work out at the moment:
isLoopEntryGuardedByCond currently gets confused by ptrtoint operations.
So we perform the ptrtoint conversion late for lt/gt operations.

The test changes are mostly innocuous. The most interesting changes are
more complex SCEV expressions of the form "(-1 * (ptrtoint i8* %ptr to
i64)) + %ptr)". This is expected: we can't fold this to zero because we
need to preserve the pointer base.

The call to isLoopEntryGuardedByCond in howFarToZero is less precise
because of ptrtoint operations; this shows up in the function
pr46786_c26_char in ptrtoint.ll. Fixing it here would require more
complex refactoring.  It should eventually be fixed by future
improvements to isImpliedCond.

See https://bugs.llvm.org/show_bug.cgi?id=46786 for context.

Differential Revision: https://reviews.llvm.org/D103656
2021-06-21 16:24:16 -07:00
..
ADCE Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
AddDiscriminators Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
AggressiveInstCombine
AlignmentFromAssumptions
ArgumentPromotion [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
AtomicExpand [AtomicExpandPass][AArch64] Promote xchg with floating-point types to integer ones 2021-05-29 08:57:27 +02:00
Attributor [Attributor] Don't print the call-graph in a hard-coded file. 2021-06-18 09:38:07 +02:00
BDCE
BlockExtractor
BranchFolding
CalledValuePropagation
CallSiteSplitting
CanonicalizeAliases
CanonicalizeFreezeInLoops
CodeExtractor
CodeGenPrepare Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ConstantHoisting Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ConstantMerge
ConstraintElimination
Coroutines Reapply [InstCombine] Extract bitcast -> gep transform 2021-06-21 22:03:15 +02:00
CorrelatedValuePropagation [CVP] Guard against poison in common phi value transform (PR50399) 2021-05-25 20:47:17 +02:00
CrossDSOCFI
DCE
DeadArgElim [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
DeadStoreElimination [DSE] Remove stores in the same loop iteration 2021-06-20 17:03:30 +01:00
DivRemPairs
EarlyCSE
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp
FixIrreducible
Float2Int
ForcedFunctionAttrs
FunctionAttrs
FunctionImport Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
FunctionSpecialization [FuncSpec] Add minsize test. NFC. 2021-06-21 15:21:09 +01:00
GCOVProfiling [GCOVProfiling][test] Ensure that 'opt' drops any files in a temp directory 2021-06-20 22:48:35 +02:00
GlobalDCE
GlobalMerge
GlobalOpt [IR] Make TypeFinder aware of DIArgList values 2021-05-28 17:09:45 +02:00
GlobalSplit
GuardWidening
GVN [InstCombine] Use poison constant to represent the result of unreachable instrs 2021-06-21 09:58:44 +09:00
GVNHoist Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
GVNSink
HardwareLoops
HelloNew
HotColdSplit
IndirectBrExpand
IndVarSimplify [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
InferAddressSpaces
InferFunctionAttrs
Inline Remove ML inlining model artifacts. 2021-06-21 17:38:09 +00:00
InstCombine Reapply [InstCombine] Don't try converting opaque pointer bitcast to GEP 2021-06-21 22:15:56 +02:00
InstMerge
InstNamer
InstSimplify [InstSimplify] icmp poison, X -> poison 2021-06-20 15:39:07 +09:00
InterleavedAccess [InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass 2021-06-17 09:53:33 +01:00
Internalize [Internalize] Simplify comdat renaming with noduplicates after D103043 2021-05-28 16:58:38 -07:00
IRCE
IROutliner [IROutliner] Adding DebugInfo handling for IR Outlined Functions 2021-06-15 10:57:08 -05:00
JumpThreading [BasicAA] Handle PHIs without incoming values gracefully 2021-06-07 21:39:01 +00:00
LCSSA
LICM Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
LoadStoreVectorizer LoadStoreVectorizer: support different operand orders in the add sequence match 2021-06-10 16:31:35 -07:00
LoopBoundSplit [LoopBoundSplit] Ignore phi node which is not scevable 2021-06-09 09:44:36 +01:00
LoopDataPrefetch
LoopDeletion Revert "[LoopDeletion] Handle Phis with similar inputs from different blocks" 2021-06-21 10:18:55 -07:00
LoopDistribute
LoopFlatten
LoopFusion
LoopIdiom [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
LoopInstSimplify
LoopInterchange [LoopInterhcange] Handle movement of reduction phis appropriately 2021-05-31 16:27:38 -04:00
LoopLoadElim
LoopPredication
LoopReroll [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
LoopRotate Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
LoopSimplify
LoopSimplifyCFG
LoopStrengthReduce [Test] Add XFAIL unit test for PR50765 2021-06-18 16:25:42 +07:00
LoopTransformWarning
LoopUnroll [LoopUnroll] Use smallest exact trip count from any exit 2021-06-20 20:58:26 +02:00
LoopUnrollAndJam [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass 2021-06-08 20:30:02 +09:00
LoopUnswitch
LoopVectorize [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
LoopVersioning Split a test for ease of auto update 2021-06-21 11:02:26 -07:00
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] In transpose opts, handle a^t * a^t 2021-06-11 09:29:43 -07:00
LowerSwitch
LowerTypeTests [LTT] Handle merged llvm.assume when dropping type tests 2021-05-25 17:02:13 -07:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
MemCpyOpt
MergeFunc
MergeICmps Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
MetaRenamer
NameAnonGlobals
NaryReassociate
NewGVN Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ObjCARC
OpenMP [Attributor] Set floating point loads and stores as nofree in AANoFreeFloating 2021-06-09 16:16:37 -04:00
PartialInlining
PartiallyInlineLibCalls [PartiallyInlineLibCalls] Disable sqrt expansion for strictfp. 2021-06-17 14:15:12 -07:00
PGOProfile [llvm-profdata] Make diagnostics consistent with the (no capitalization, no period) style 2021-06-19 14:54:25 -07:00
PhaseOrdering [ScalarEvolution] Ensure backedge-taken counts are not pointers. 2021-06-21 16:24:16 -07:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate Revert "3rd Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands"" 2021-06-08 14:54:08 +02:00
Reg2Mem
RelLookupTableConverter/X86
RewriteStatepointsForGC Allow ptrtoint/inttoptr of non-integral pointer types in IR 2021-06-11 13:38:32 -07:00
SafeStack [SafeStack] Use proper API to get stack guard 2021-05-30 00:52:48 -07:00
SampleProfile [CSSPGO] Undoing the concept of dangling pseudo probe 2021-06-18 15:14:11 -07:00
ScalarizeMaskedMemIntrin
Scalarizer Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
SCCP
SeparateConstOffsetFromGEP
SimpleLoopUnswitch [SimpleLoopUnswitch] Port partially invariant unswitch from LoopUnswitch to SimpleLoopUnswitch 2021-06-02 10:58:22 +01:00
SimplifyCFG [NFC][SimplifyCFG] Add basic test for debuginfo preservation of ret tail merging 2021-06-21 23:56:54 +03:00
Sink
SLPVectorizer [SLP][NFC]Rename functions in the tests, NFC. 2021-06-21 13:37:12 -07:00
SpeculativeExecution
SROA [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
StraightLineStrengthReduce Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
StripDeadPrototypes
StripSymbols
StructurizeCFG Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
SyntheticCountsPropagation
TailCallElim [test] Properly match parameter/argument ABI attributes 2021-05-31 09:12:18 -07:00
ThinLTOBitcodeWriter
TypePromotion/ARM
UnifyFunctionExitNodes
UnifyLoopExits
Util Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
VectorCombine [VectorCombine] Limit scalarization to non-poison indices for now. 2021-06-14 16:40:14 +01:00
WholeProgramDevirt