llvm-project/llvm/test/Transforms
Philip Reames e6ad9ef4e7 [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement
The basic idea to this is that a) having a single canonical type makes CSE easier, and b) many of our transforms are inconsistent about which types we end up with based on visit order.

I'm restricting this to constants as for non-constants, we'd have to decide whether the simplicity was worth extra instructions. For constants, there are no extra instructions.

We chose the canonical type as i64 arbitrarily.  We might consider changing this to something else in the future if we have cause.

Differential Revision: https://reviews.llvm.org/D115387
2021-12-13 16:56:22 -08:00
..
ADCE [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
AddDiscriminators [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
AggressiveInstCombine [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
AlignmentFromAssumptions [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
ArgumentPromotion [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
AtomicExpand
Attributor [Attributor] Introduce AAAssumptionInfo to propagate assumptions 2021-11-09 17:39:18 -05:00
BDCE [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
BlockExtractor
BranchFolding
CallSiteSplitting
CalledValuePropagation [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
CanonicalizeAliases
CanonicalizeFreezeInLoops [AArch64] Make -mcpu=generic schedule for an in-order core 2021-10-09 15:58:31 +01:00
CodeExtractor [CodeExtractor] Preserve topological order for the return blocks. 2021-08-25 08:09:01 -07:00
CodeGenPrepare [AArch64] Sink splat shuffles to lane index intrinsics 2021-11-22 08:11:35 +00:00
ConstantHoisting
ConstantMerge [test] Use -passes syntax when specifying pipeline in some more tests 2021-11-27 09:52:55 +01:00
ConstraintElimination [test] Use -passes syntax when specifying pipeline in some more tests 2021-11-27 09:52:55 +01:00
Coroutines [C++20] [Coroutines] Mark coroutine done if unhandled_exception throws 2021-12-09 14:58:06 +08:00
CorrelatedValuePropagation [CVP] Remove ashr of -1 or 0 2021-11-29 15:32:09 -08:00
CrossDSOCFI
DCE [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
DFAJumpThreading
DeadArgElim [NFC][llvm] Inclusive language: reword uses of sanity test and check 2021-11-25 07:21:42 -05:00
DeadStoreElimination [DSE] Add additional memset_chk tests. 2021-12-06 13:06:11 +00:00
DivRemPairs
EarlyCSE [EarlyCSE] Retain poison flags, if program is UB if poison. 2021-12-11 15:11:44 +00:00
EliminateAvailableExternally
EntryExitInstrumenter [NewPM] Use parameterized syntax for a couple of more passes 2021-08-20 14:59:21 +02:00
ExpandMemCmp
FixIrreducible
Float2Int [NewPM][test] Strickly use -passes in some more lit tests 2021-10-20 17:06:47 +02:00
ForcedFunctionAttrs
FunctionAttrs [funcattrs] Fix a bug in recently introduced writeonly argument inference 2021-12-03 08:57:15 -08:00
FunctionImport [NFC][llvm] Inclusive language: reword uses of sanity test and check 2021-11-25 07:21:42 -05:00
FunctionSpecialization [FuncSpec] Don't run the solver if there's nothing to do 2021-10-13 19:05:19 +01:00
GCOVProfiling
GVN [Test] [GVN] Add test showing equivalent PHIs generation by GVN 2021-12-09 16:40:23 +07:00
GVNHoist PR46874: Reset stack after visiting a node 2021-08-20 11:25:05 -07:00
GVNSink
GlobalDCE [test] Use -passes syntax when specifying pipeline in some more tests 2021-11-27 09:52:55 +01:00
GlobalMerge
GlobalOpt [GlobalOpt] Add test for PR51879 (NFC) 2021-12-10 16:18:18 +01:00
GlobalSplit
GuardWidening [test] Remove -loop-guard-widening legacy PM tests 2021-09-05 11:36:21 -07:00
HardwareLoops [ARM] Update test comments after D114018. NFC 2021-11-16 22:48:45 +00:00
HelloNew
HotColdSplit [CodeExtractor] Preserve topological order for the return blocks. 2021-08-25 08:09:01 -07:00
IRCE [SCEVExpander] Drop poison generating flags when reusing instructions 2021-11-29 15:23:34 -08:00
IROutliner [IROutliner] Adding supports for multiple exits 2021-09-08 08:58:07 -07:00
IndVarSimplify [SCEV] Track and invalidate ValuesAtScopes users 2021-11-30 18:21:14 +01:00
IndirectBrExpand
InferAddressSpaces [InferAddressSpaces] Support assumed addrspaces from addrspace predicates. 2021-11-08 16:51:57 -05:00
InferFunctionAttrs Verify inferattrs doesn't infer unexpected attributes 2021-12-10 07:54:35 -08:00
Inline [Inline] Add test for exponential deferred inlining (NFC) 2021-12-10 08:59:59 +01:00
InstCombine [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
InstMerge Reland "[LICM] Hoist LOAD without sinking the STORE" 2021-12-02 03:53:50 -08:00
InstNamer
InstSimplify [ConstantFold] Handle same type in ConstantFoldLoadThroughBitcast 2021-12-10 16:39:50 +01:00
InterleavedAccess [AArch64][SVE] Add FP types to the supported SVE structure load/stores vector type list 2021-11-08 22:29:08 +08:00
Internalize
JumpThreading Use a deterministic order when updating the DominatorTree 2021-11-29 13:14:50 +01:00
LCSSA
LICM [NFC][LICM] Update the comment in the scalar-promote.ll 2021-12-06 03:00:39 -08:00
LoadStoreVectorizer [LSV] Change the default value of InstertElement to poison 2021-10-03 17:57:34 +09:00
LoopBoundSplit [LoopBoundSplit] Handle the case in which exiting block is loop header 2021-10-08 09:13:41 +01:00
LoopDataPrefetch [LoopDataPrefetch] Add missed LoopSimplify dependence for prefetch pass 2021-08-26 21:01:59 +08:00
LoopDeletion [LoopDeletion] Support selects when symbolically evaluating 1st iteration 2021-10-09 14:47:44 +07:00
LoopDistribute Revert rest of `IRBuilderBase`'s short-circuiting folds 2021-10-28 02:15:14 +03:00
LoopFlatten [LoopFlatten] Bail if we can't perform flattening after IV widening 2021-09-29 19:53:34 +01:00
LoopFusion
LoopIdiom [LoopIdiom] Let LIR fold memset pointer / stride SCEV regarding loop guards 2021-12-13 09:36:58 -08:00
LoopInstSimplify
LoopInterchange
LoopLoadElim
LoopPredication [SCEVExpander] Drop poison generating flags when reusing instructions 2021-11-29 15:23:34 -08:00
LoopReroll
LoopRotate [InferAddressSpaces] Support assumed addrspaces from addrspace predicates. 2021-11-08 16:51:57 -05:00
LoopSimplify [test] Fixup tests with -analyze in llvm/test/Transforms 2021-09-04 16:45:51 -07:00
LoopSimplifyCFG
LoopStrengthReduce [ARM] Use v2i1 for MVE and CDE intrinsics 2021-12-03 15:27:58 +00:00
LoopTransformWarning
LoopUnroll Compute estimated trip counts for multiple exit loops 2021-12-09 09:53:49 -08:00
LoopUnrollAndJam [runtime-unroll] Use incrementing IVs instead of decrementing ones 2021-11-12 15:44:58 -08:00
LoopUnswitch [Test] Regenerate checks using auto-update script 2021-10-28 15:13:43 +07:00
LoopVectorize [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
LoopVersioning Revert rest of `IRBuilderBase`'s short-circuiting folds 2021-10-28 02:15:14 +03:00
LoopVersioningLICM [opt] Directly translate -O# to -passes='default<O#>' 2021-10-18 16:48:10 -07:00
LowerAtomic
LowerConstantIntrinsics [LowerConstantIntrinsics] Fix heap-use-after-free bug in worklist 2021-09-21 11:33:07 +02:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Tests] Fix incorrect noalias metadata 2021-09-18 20:51:00 +02:00
LowerSwitch
LowerTypeTests Revert rest of `IRBuilderBase`'s short-circuiting folds 2021-10-28 02:15:14 +03:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [NFC][llvm] Inclusive language: reword uses of sanity test and check 2021-11-25 07:21:42 -05:00
MemCpyOpt [MemCpyOpt] Add additional call slot capture tests (NFC) 2021-12-13 10:57:06 +01:00
MergeFunc [opt] Directly translate -O# to -passes='default<O#>' 2021-10-18 16:48:10 -07:00
MergeICmps [MergeICmps] Don't reorder unmerged comparisons 2021-09-21 21:22:12 +02:00
MetaRenamer [MetaRenamer] Add command line options to disable renaming name with specified prefixes 2021-12-09 18:45:06 +07:00
NameAnonGlobals
NaryReassociate [NARY-REASSOCIATE] Fix infinite recursion optimizing min\max 2021-10-20 14:23:03 +07:00
NewGVN [NewGVN] Use PredicateInfo info when previously used for the same ssa.copy intrinsic 2021-12-13 16:49:24 -08:00
ObjCARC [ObjC][ARC] Handle operand bundle "clang.arc.attachedcall" on targets 2021-11-08 18:38:39 -08:00
OpenMP [OpenMP][FIX] Invalidate the SPMDCompatibilityTracker explicitly 2021-12-06 12:31:57 -05:00
PGOProfile [PowerPC] Prevent the optimizer from producing wide vector types in IR. 2021-11-25 12:35:26 -06:00
PartialInlining
PartiallyInlineLibCalls
PhaseOrdering [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
PlaceSafepoints
PreISelIntrinsicLowering [ObjC][ARC] Replace uses of ObjC intrinsics that are arguments of 2021-11-08 21:19:07 -08:00
PruneEH
Reassociate
Reg2Mem [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00
RelLookupTableConverter/X86 [Passes] Fix relative lookup table converter pass 2021-12-12 04:40:17 +00:00
RewriteStatepointsForGC [LLVM] Inclusive terms: remove/replace references to sanity in RewriteStatepointsForGC.cpp and test 2021-10-25 16:17:41 -04:00
SCCP [test] Use -passes syntax when specifying pipeline in some more tests 2021-11-27 09:52:55 +01:00
SLPVectorizer [instcombine] Canonicalize constant index type to i64 for extractelement/insertelement 2021-12-13 16:56:22 -08:00
SROA Run update_test_checks.py on test cases. 2021-12-03 00:25:14 +00:00
SafeStack
SampleProfile [CSSPGO] Turn on Profi by default 2021-12-02 17:56:38 -08:00
ScalarizeMaskedMemIntrin
Scalarizer [Scalarizer] Do not insert instructions between PHI nodes and debug intrinsics. 2021-11-02 09:53:59 -04:00
SeparateConstOffsetFromGEP SeparateConstOffsetFromGEP: Fix stack overflow in unreachable code 2021-09-14 19:49:38 -04:00
SimpleLoopUnswitch [SimpleLoopUnswitch] Re-fix introduction of UB when hoisted condition may be undef or poison 2021-10-12 01:02:09 +09:00
SimplifyCFG [Test] Regenerate checks using auto-update script 2021-10-28 15:13:43 +07:00
Sink
SpeculativeExecution [NewPM][test] Use -passes syntax in SpeculativeExecution lit tests 2021-10-20 15:16:17 +02:00
StraightLineStrengthReduce
StripDeadPrototypes [NewPM][test] Strickly use -passes in some more lit tests 2021-10-20 17:06:47 +02:00
StripSymbols [NewPM][test] Strickly use -passes in some more lit tests 2021-10-20 17:06:47 +02:00
StructurizeCFG
SyntheticCountsPropagation
TailCallElim [test] Use -passes syntax when specifying pipeline in some more tests 2021-11-27 09:52:55 +01:00
ThinLTOBitcodeWriter [ThinLTO][MC] Use conditional assignments for promotion aliases 2021-12-10 12:21:37 -08:00
TypePromotion/ARM [TypePromotion] Extend TypePromotion::isSafeWrap 2021-11-14 11:18:31 +00:00
UnifyFunctionExitNodes
UnifyLoopExits
Util [NewPM] Port FlattenCFGPass to NPM 2021-12-09 07:55:02 +00:00
VectorCombine [VectorCombine] fold shuffle-of-binops with common operand 2021-10-21 12:37:54 -04:00
WholeProgramDevirt [test] Update some test cases to use -passes when specifying the pipeline 2021-09-29 21:51:08 +02:00