llvm-project/llvm/test/Transforms
Nikita Popov de18fa9e52 Revert "[InstSimplify] Bypass no-op `and`-mask, using known bits (PR49543)"
This reverts commit ea1a0d7c9a.

While this is strictly more powerful, it is also strictly slower.
InstSimplify intentionally does not perform many folds that it
is allowed to perform, if doing so requires a KnownBits calculation
that will be repeated in InstCombine.

Maybe it's worthwhile to do this here, but that needs a more
explicitly stated motivation, evaluated in a review.
2021-04-21 09:55:25 +02:00
..
ADCE [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
AddDiscriminators
AggressiveInstCombine [AggressiveInstCombine] Generalize foldGuardedRotateToFunnelShift to generic funnel shifts (REAPPLIED) 2020-12-21 15:22:27 +00:00
AlignmentFromAssumptions [AssumeBundles] offset should be added to correctly calculate align 2021-04-02 12:32:05 +09:00
ArgumentPromotion Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
AtomicExpand Copy syncscope when expanding atomicrmw into cmpxchg loop 2021-04-05 17:29:38 -07:00
Attributor Revert "[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction" 2021-04-06 16:33:28 +02:00
BDCE [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
BlockExtractor [BlockExtract][NewPM] Port -extract-blocks to NPM 2020-10-21 12:51:11 -07:00
BranchFolding
CallSiteSplitting [SimplifyCFG] Teach simplifyUnreachable() to preserve DomTree 2020-12-18 00:37:22 +03:00
CalledValuePropagation
CanonicalizeAliases [NPM] Move more O0 pass building into PassBuilder 2020-11-19 11:22:23 -08:00
CanonicalizeFreezeInLoops
CodeExtractor [HotColdSplit] Reflect full cost of parameters in split penalty 2020-12-18 17:06:17 -08:00
CodeGenPrepare [test, ARM] Fix use of var defined in CHECK-NOT 2021-03-30 16:28:13 +01:00
ConstantHoisting [ConstantHoisting] Fix bug where constant materialization could insert into EH pad 2021-02-01 11:23:56 -08:00
ConstantMerge
ConstraintElimination [ConstraintElimination] Only strip casts preserving the representation. 2021-03-26 20:07:41 +00:00
Coroutines Revert "[Coroutines] Set presplit attribute in Clang instead of CoroEarly pass" 2021-04-18 17:22:28 -07:00
CorrelatedValuePropagation [CVP] @llvm.[us]{min,max}() intrinsics handling 2021-04-11 00:33:47 +03:00
CrossDSOCFI
DCE [Tests] Add willreturn to libcalls in some tests 2021-01-22 21:47:35 +01:00
DeadArgElim Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
DeadStoreElimination Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
DivRemPairs
EarlyCSE [gvn] CSE gc.relocates based on meaning, not spelling (try 2) 2021-03-16 10:59:31 -07: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 [funcattrs] Consistently check call site attributes 2021-04-19 13:20:50 -07:00
FunctionImport [CGProfile] allows bitcast in metadata node storing function pointers 2020-11-13 09:28:21 -08:00
GCOVProfiling Encode alignment attribute for `atomicrmw` 2021-02-11 15:17:37 -05:00
GVN [Test] Add a negative unit test 2021-04-21 12:11:05 +07:00
GVNHoist Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
GVNSink [GVNSink] auto-generate test checks; NFC 2021-04-02 13:16:35 -04:00
GlobalDCE [SimplifyCFG] MergeBlockIntoPredecessor() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
GlobalMerge
GlobalOpt Revert "[GlobalOpt] Revert valgrind hacks" 2021-04-13 17:47:07 -07:00
GlobalSplit [test] Fix mix of variable use/def and regex match 2021-03-24 17:58:16 +00:00
GuardWidening [NewPM][GuardWidening] Fix loop guard widening tests under NPM 2020-08-06 15:32:59 -07:00
HardwareLoops [test, HardwareLoops] Fix use of var defined in CHECK-NOT 2021-03-30 15:06:32 +01:00
HelloNew Reland [docs][NewPM] Add docs for writing NPM passes 2020-09-14 16:06:19 -07:00
HotColdSplit [HotColdSplit] Reflect full cost of parameters in split penalty 2020-12-18 17:06:17 -08:00
IRCE Make FoldBranchToCommonDest poison-safe by default 2021-03-27 19:05:12 +09:00
IROutliner [IROutliner] Adapting to hoisted bitcasts in CodeExtractor 2021-01-13 11:10:37 -06:00
IndVarSimplify Revert "[SCEV] Model `ashr exact x, C` as `(abs(x) EXACT/u (1<<C)) * signum(x)`" 2021-04-18 16:26:45 +03:00
IndirectBrExpand
InferAddressSpaces [NewPM] Port infer-address-spaces 2020-12-28 19:58:12 -08:00
InferFunctionAttrs [inferattrs] Don't infer lib func attributes for nobuiltin functions 2021-04-16 15:36:15 -07:00
Inline [Inline] Don't add noalias metadata to inaccessiblememonly calls 2021-04-17 14:56:13 +02:00
InstCombine Revert "[InstCombine] Recognize `((x * y) s/ x) !=/== y` as an signed multiplication overflow check (PR48769)" 2021-04-20 15:53:34 -07:00
InstMerge OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
InstNamer Port -instnamer to NPM 2020-10-22 12:08:36 -07:00
InstSimplify Revert "[InstSimplify] Bypass no-op `and`-mask, using known bits (PR49543)" 2021-04-21 09:55:25 +02:00
InterleavedAccess [CodeGen] Update transformations to use poison for shufflevector/insertelem's initial vector elem 2021-01-10 18:03:51 +09:00
Internalize
JumpThreading [JumpThreading] merge debug info when merging select+br 2021-04-12 17:51:21 -07:00
LCSSA [DebugInfo] Avoid re-ordering assignments in LCSSA 2020-12-17 16:17:32 +00:00
LICM [LICM] Make capture check more precise 2021-04-19 20:34:23 +02:00
LoadStoreVectorizer Precommit transform tests that have poison as insertelement's placeholder 2020-12-24 11:46:17 +09:00
LoopDataPrefetch
LoopDeletion [LoopDeletion] Add test for PR49967 (NFC) 2021-04-18 22:08:51 +02:00
LoopDistribute [SCEVExpander] ReuseOrCreateCast(): use IRBuilder to actually create the cast 2021-04-19 18:38:39 +03:00
LoopFlatten [NFC] Improve debug message and test description in 4c1f74a 2021-03-24 18:21:13 +08:00
LoopFusion [LoopFusion] Bails out if only the second candidate is guarded (PR48060) 2021-04-06 01:08:56 +08:00
LoopIdiom [LoopIdiom] left-shift-until-bittest: set all allowed no-wrap flags on add/sub 2021-04-11 18:08:07 +03:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Fix transformation bugs in loop interchange 2021-04-08 14:58:13 -04:00
LoopLoadElim [IndVars] Provide eliminateIVComparison with context 2021-03-19 12:28:22 +07:00
LoopPredication [NFCI] SCEVExpander: emit intrinsics for integral {u,s}{min,max} SCEV expressions 2021-03-06 21:52:46 +03:00
LoopReroll [SCEV] Strength nowrap flags after constant folding 2020-10-25 18:00:22 +01:00
LoopRotate [NewPM] Change tests to run them without PreserveCFGChecker. NFC 2021-04-06 11:33:07 +07:00
LoopSimplify Make FoldBranchToCommonDest poison-safe by default 2021-03-27 19:05:12 +09:00
LoopSimplifyCFG [LoopSimplifyCFG][NewPM] Rename simplify-cfg -> loop-simplifycfg 2020-09-21 08:27:19 -07:00
LoopStrengthReduce [LSR] Fix for pre-indexed generated constant offset 2021-04-15 16:44:42 +01:00
LoopTransformWarning
LoopUnroll [LoopUnroll] Regenerate test checks (NFC) 2021-04-17 20:59:20 +02:00
LoopUnrollAndJam [LoopUnrollAndJam] Avoid repeated instructions for UAJ analysis 2021-04-15 12:59:42 -04:00
LoopUnswitch Explicitly enable the new pass manager in this test. 2021-03-25 18:10:36 -07:00
LoopVectorize [COST][AARCH64] Improve cost of reverse shuffles for AArch64. 2021-04-20 13:47:56 -07:00
LoopVersioning Revert "[BasicAA] Handle two unknown sizes for GEPs" 2020-12-18 17:59:12 +00:00
LoopVersioningLICM [NewPM][opt] Run the "default" AA pipeline by default 2021-01-21 21:08:54 -08:00
LowerAtomic
LowerConstantIntrinsics [LowerConstantIntrinsics] avoid crashing on alloca with unexpected operand type 2021-04-19 13:06:29 -04:00
LowerExpectIntrinsic Revert "clang-misexpect: Profile Guided Validation of Performance Annotations in LLVM" 2020-11-14 13:12:38 +03:00
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics Reland "[Libcalls, Attrs] Annotate libcalls with noundef" 2021-02-20 06:18:48 +01:00
LowerSwitch [LowerSwitch][NewPM] Port lowerswitch to NPM 2020-09-15 18:18:31 -07:00
LowerTypeTests [LTT] Don't attempt to lower type tests used only by assumes 2021-02-06 09:02:10 -08:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg
MemCpyOpt [tests] Refresh a bunch of autogen test to adjust for format changes 2021-03-22 10:41:39 -07:00
MergeFunc OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
MergeICmps Tweak a test so it actually gets autogened 2021-03-22 11:32:32 -07:00
MetaRenamer OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
NameAnonGlobals [NPM] Move more O0 pass building into PassBuilder 2020-11-19 11:22:23 -08:00
NaryReassociate [NARY] Don't optimize min/max if there are side uses 2021-04-12 12:43:54 +07:00
NewGVN [NewGVN] Add phi-of-ops operands if no real PHI is created. 2021-04-15 08:25:10 +01:00
ObjCARC [ObjC][ARC] Use operand bundle 'clang.arc.attachedcall' instead of 2021-03-04 11:22:30 -08:00
OpenMP [OpenMP] Add OpenMPOpt as a Module pass 2021-04-20 12:28:58 -04:00
PGOProfile [SimplifyCFG] use profile metadata to refine merging branch conditions 2021-03-23 10:19:37 -04:00
PartialInlining [PartialInliner]: Handle code regions in a switch stmt cases 2020-11-02 14:32:45 -05:00
PartiallyInlineLibCalls
PhaseOrdering [OpenMP] Add OpenMPOpt as a Module pass 2021-04-20 12:28:58 -04:00
PlaceSafepoints [PlaceSafepoints] Pin tests to legacy PM 2020-10-26 20:07:37 -07:00
PreISelIntrinsicLowering
PruneEH [FuncAttrs] Infer noreturn 2021-01-05 13:25:42 -08:00
Reassociate Revert "Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands"" 2021-04-12 20:10:17 -07:00
Reg2Mem [Reg2Mem] add support for the new pass manager 2020-11-08 11:14:05 +00:00
RelLookupTableConverter/X86 [Passes] Add relative lookup table converter pass 2021-04-13 01:29:41 +00:00
RewriteStatepointsForGC [rs4gc] Fix a latent bug around attribute stripping for intrinsics 2021-04-19 13:14:07 -07:00
SCCP Revert "[IR] Ignore bitcasts of function pointers which are only used as callees in callbase instruction" 2021-04-06 16:33:28 +02:00
SLPVectorizer [SLP] Add detection of shuffled/perfect matching of tree entries. 2021-04-20 09:08:46 -07:00
SROA [SROA][TBAA] Handle shift of regular TBAA nodes 2021-04-14 14:35:20 -04:00
SafeStack OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
SampleProfile [CSSPGO] Exclude pseudo probes from slot index 2021-04-19 17:55:35 -07:00
ScalarizeMaskedMemIntrin Expand masked mem intrinsics correctly wrt big-endian 2021-02-11 08:59:52 +00:00
Scalarizer [Scalarizer] Use poison as insertelement's placeholder 2021-01-04 00:35:28 +09:00
SeparateConstOffsetFromGEP [test] Make global in split-gep-and-gvn.ll not constant 2021-04-19 11:03:19 -07:00
SimpleLoopUnswitch [LoopUnswitch] Simplify branch condition if it is select with constant operands 2021-03-30 20:09:42 +09:00
SimplifyCFG [SimplifyCFG] Skip dbg intrinsics when checking for branch-only BBs. 2021-04-17 15:17:50 +01:00
Sink Sink: Handle instruction sink when a user is dead 2020-10-09 16:20:26 -07:00
SpeculateAroundPHIs
SpeculativeExecution Precommit tests that have poison as shufflevector's placeholder 2020-12-29 17:09:31 +09:00
StraightLineStrengthReduce [NPM] Add remaining test of -slsr 2020-11-17 14:41:01 +08:00
StripDeadPrototypes
StripSymbols [DebugInfo] Support for signed constants inside DIExpression 2021-03-30 23:20:38 +05:30
StructurizeCFG [test] Pin backedge-id-bug-xfail.ll to legacy PM 2021-01-04 13:09:42 -08:00
SyntheticCountsPropagation
TailCallElim Autogen some tests for ease of update 2021-03-22 11:06:29 -07:00
ThinLTOBitcodeWriter [ThinLTO] Copy UnnamedAddr when spliting module. 2021-04-19 14:04:58 -07:00
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
Util [AnnotationRemarks] Use subprogram location for summary remarks. 2021-03-23 12:05:41 +00:00
VectorCombine [VectorCombine] Add tests for load/extract scalarization. 2021-04-11 21:39:48 +01:00
WholeProgramDevirt Don't use $ as suffix for symbol names in ThinLTOBitcodeWriter and other places 2021-03-29 13:03:52 +02:00