llvm-project/llvm/test/Transforms
Shimin Cui 95bda510fb [ConstantFold] Fold the comparison of bitcasted global values
This is to simplify icmp instructions in the form like:

%cmp = icmp eq i32 (i8*, i8*)* bitcast (i32 (i32**, i32**)* @f32 to i32
%(i8*, i8*)), bitcast (i32 (i64**, i64**) @f64 to i32 (i8*, i8*)*)

Here @f32 and @f64 are two functions.

Differential Revision: https://reviews.llvm.org/D87850
2020-10-20 12:41:49 -07:00
..
ADCE
AddDiscriminators
AggressiveInstCombine [AggressiveInstCombine] foldAnyOrAllBitsSet - add uniform vector support 2020-10-15 11:02:35 +01:00
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 [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
BDCE [DemandedBits][BDCE] Add support for min/max intrinsics 2020-09-10 22:13:31 +02:00
BlockExtractor
BranchFolding
CallSiteSplitting
CalledValuePropagation
CanonicalizeAliases
CanonicalizeFreezeInLoops
CodeExtractor Revert "[PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting" 2020-10-19 12:31:14 +02:00
CodeGenPrepare [CodeGenPrepare] Fix zapping dead operands of assume 2020-09-14 11:46:34 +07:00
ConstantHoisting
ConstantMerge
ConstraintElimination [ConstraintElimination] Add add/sub/and/or test cases. 2020-10-13 13:18:32 +01:00
Coroutines Recommit "[DSE] Switch to MemorySSA-backed DSE by default." 2020-10-16 09:02:53 +01:00
CorrelatedValuePropagation [CVP] Allow two transforms in one invocation 2020-09-28 15:11:42 -07:00
CrossDSOCFI
DCE
DeadArgElim [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
DeadStoreElimination [DSE] Do not scan users of memory terminators for further reads. 2020-10-20 16:55:22 +01:00
DivRemPairs
EarlyCSE Clean up test file, NFC 2020-09-23 15:32:46 -05:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp
FixIrreducible [FixIrreducible][NewPM] Port -fix-irreducible to NPM 2020-10-09 09:22:09 -07: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] Teach to look through `addrspacecast`. 2020-10-16 08:43:09 -04: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 "[PM/CC1] Add -f[no-]split-cold-code CC1 option to toggle splitting" 2020-10-19 12:31:14 +02:00
IRCE [IRCE] Do not transform if loop has small number of iterations 2020-10-20 10:33:59 +07:00
IndVarSimplify [SCEV] Recommit "Use nw flag and symbolic iteration count to sharpen ranges of AddRecs", attempt 2 2020-10-20 11:32:36 +07:00
IndirectBrExpand
InferAddressSpaces InferAddressSpaces: Fix assert with unreachable code 2020-09-15 15:48:43 -04:00
InferFunctionAttrs [InferAttrs] Add argmemonly attribute to string libcalls 2020-10-18 01:33:26 +02:00
Inline [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
InstCombine [ConstantFold] Fold the comparison of bitcasted global values 2020-10-20 12:41:49 -07:00
InstMerge
InstNamer
InstSimplify [InstSimplify] allow vector splats for icmp-of-neg folds 2020-10-20 09:24:36 -04: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
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] Precommit new test cases. NFC. 2020-10-14 10:09:40 +01:00
LoopFusion
LoopIdiom [LoopIdiom] Regenerate test checks; NFC 2020-10-18 14:07:04 +02:00
LoopInstSimplify
LoopInterchange [LoopInterchange][NewPM] Port -loop-interchange to NPM 2020-10-09 09:21:31 -07:00
LoopLoadElim [LoopLoadElim] Filter away candidates that stop being AddRecs after loop versioning. PR47457 2020-09-10 13:30:31 +07:00
LoopPredication
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 [NFC][LSR] Autogenerate check lines in tests being affected by upcoming patch 2020-10-15 23:15:04 +03: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 [test][NPM] Fix already-vectorized.ll under NPM 2020-10-19 13:11:13 -07:00
LoopVersioning [NewPM][LoopVersioning] Port LoopVersioning to NPM 2020-08-03 10:32:09 -07:00
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02: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
MemCpyOpt [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +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 [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02:00
OpenMP [OpenMPOpt] Merge parallel regions 2020-10-09 09:59:04 -07:00
PGOProfile [NPM][PFOProfile] Fix some tests under NPM 2020-10-19 22:06:10 -07:00
PartialInlining [Partial Inliner] Compute intrinsic cost through TTI 2020-09-16 15:12:31 +01:00
PartiallyInlineLibCalls
PhaseOrdering [NPM] Fix some PhaseOrdering tests under NPM 2020-10-16 16:58:14 -07:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH
Reassociate [DIE] Remove DeadInstEliminationPass 2020-09-21 12:12:25 -07:00
Reg2Mem [Reg2Mem][NewPM] Pin test to legacy PM 2020-10-09 12:36:08 -07:00
RewriteStatepointsForGC
SCCP [ConstantFold] Fold the comparison of bitcasted global values 2020-10-20 12:41:49 -07:00
SLPVectorizer [IR] Make nosync, nofree and willreturn default for intrinsics. 2020-10-20 11:57:19 +02: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: Handle instruction sink when a user is dead 2020-10-09 16:20:26 -07:00
SpeculateAroundPHIs
SpeculativeExecution
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
ThinLTOBitcodeWriter
TypePromotion/ARM
UnifyFunctionExitNodes [NPM] Port -mergereturn to NPM 2020-10-20 10:33:58 -07:00
UnifyLoopExits [NPM] port -unify-loop-exits to NPM 2020-10-20 10:46:57 -07:00
UniqueInternalLinkageNames
Util Port StripGCRelocates pass to NPM 2020-10-07 14:41:29 -07:00
VectorCombine [VectorCombine] Avoid crossing address space boundaries. 2020-10-16 13:19:31 -07:00
WholeProgramDevirt [WholeProgramDevirt][NewPM] Add NPM testing path to match legacy pass 2020-09-30 17:27:37 -07:00