1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/Transforms
Anna Thomas 23f3f90569 Strip undef implying attributes when moving calls
When hoisting/moving calls to locations, we strip unknown metadata. Such calls are usually marked `speculatable`, i.e. they are guaranteed to not cause undefined behaviour when run anywhere. So, we should strip attributes that can cause immediate undefined behaviour if those attributes are not valid in the context where the call is moved to.

This patch introduces such an API and uses it in relevant passes. See
updated tests.

Fix for PR50744.

Reviewed By: nikic, jdoerfert, lebedev.ri

Differential Revision: https://reviews.llvm.org/D104641
2021-07-27 10:57:05 -04: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 [PowerPC] Add lit.local.cfg in AtomicExpand tests 2021-07-20 09:13:50 +00:00
Attributor [Attributor][FIX] Copy all members in the assignment operator 2021-07-27 01:44:13 -05: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 [ARM] Set the immediate cost of GEP operands to 0 2021-06-30 19:19:03 +01:00
ConstantMerge [ConstantMerge] Don't merge thread_local constants with non-thread_local constants 2021-04-28 23:44:20 +01:00
ConstraintElimination
Coroutines [Coroutine] Record the elided coroutines 2021-07-27 13:14:09 +08:00
CorrelatedValuePropagation [CVP] Guard against poison in common phi value transform (PR50399) 2021-05-25 20:47:17 +02:00
CrossDSOCFI
DCE
DeadArgElim [Attributes] Remove nonnull from UB-implying attributes 2021-07-25 18:07:31 +02:00
DeadStoreElimination Revert "[DSE] Transform memset + malloc --> calloc (PR25892)" 2021-07-23 11:51:59 +02:00
DivRemPairs [DivRemPairs] Add an initial case for hoisting to a common predecessor. 2021-07-11 10:03:07 -07:00
EarlyCSE [FPEnv] EarlyCSE support for constrained intrinsics, default FP environment edition 2021-05-20 14:40:51 -04:00
EliminateAvailableExternally
EntryExitInstrumenter
ExpandMemCmp
FixIrreducible
Float2Int
ForcedFunctionAttrs
FunctionAttrs [LLVM IR] Allow volatile stores to trap. 2021-07-26 10:51:00 -07:00
FunctionImport Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
FunctionSpecialization [FuncSpec] Add an option to specializing literal constant 2021-06-30 11:26:44 +08: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 This patch extends the OptimizeGlobalAddressOfMalloc to handle the null check of global pointer variables. It is disabled with https://reviews.llvm.org/rGb7cd291c1542aee12c9e9fde6c411314a163a8ea. This PR is to reenable it while fixing the original problem reported. The fix is to set the store value correctly when creating store for the new created global init bool symbol. 2021-07-20 12:27:26 -04:00
GlobalSplit
GuardWidening
GVN [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07: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 [IndVars] Don't widen pointers in WidenIV::getWideRecurrence 2021-07-11 17:04:50 -07:00
InferAddressSpaces [infer-address-spaces] Handle complex non-pointer constexpr arguments. 2021-07-19 12:15:52 -07:00
InferFunctionAttrs Reapply [IR] Don't mark mustprogress as type attribute 2021-07-09 20:57:44 +02:00
Inline [Inliner] Make the CallPenalty configurable 2021-07-26 12:07:49 +01:00
InstCombine [SimplifyLibCalls] avoid crash on pointer math 2021-07-26 11:08:45 -04:00
InstMerge
InstNamer
InstSimplify [FPEnv][InstSimplify] Enable more folds for constrained fadd 2021-07-26 14:06:21 -04:00
InterleavedAccess [InterleaveAccess] Copy fast math flags when adjusting binary operators in interleave access pass 2021-06-17 09:53:33 +01:00
Internalize [IR] Rename comdat noduplicates to comdat nodeduplicate 2021-07-20 12:47:10 -07:00
IRCE [SCEV] By more careful when traversing phis in isImpliedViaMerge. 2021-05-07 19:52:29 +01:00
IROutliner [IROutliner] Adding DebugInfo handling for IR Outlined Functions 2021-06-15 10:57:08 -05:00
JumpThreading [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07:00
LCSSA
LICM Strip undef implying attributes when moving calls 2021-07-27 10:57:05 -04:00
LoadStoreVectorizer [LoadStoreVectorizer] Support opaque pointers 2021-06-27 15:42:16 +02:00
LoopBoundSplit [LoopBoundSplit] Ignore phi node which is not scevable 2021-06-09 09:44:36 +01:00
LoopDataPrefetch
LoopDeletion [IR] Consider non-willreturn as side effect (PR50511) 2021-07-26 16:35:14 +02:00
LoopDistribute
LoopFlatten [LoopFlatten] Use SCEV and Loop APIs to identify increment and trip count 2021-07-27 08:42:59 +01:00
LoopFusion [llvm] Unbreak no-asserts testing after 18839be9c5c8b9f882dd241769784035b082d4e1 2021-04-27 05:46:43 -04:00
LoopIdiom [LoopIdiom] Transform memmove-like loop into memmove (PR46179) 2021-07-22 13:05:43 +02:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Check lcssa phis in the inner latch in scenarios of multi-level nested loops 2021-07-16 11:59:20 -04:00
LoopLoadElim
LoopPredication
LoopReroll [SCEV] Fix unsound reasoning in howManyLessThans 2021-07-15 10:32:47 -07:00
LoopRotate Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
LoopSimplify [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
LoopSimplifyCFG
LoopStrengthReduce [DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR 2021-07-27 14:22:09 +01:00
LoopTransformWarning
LoopUnroll [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
LoopUnrollAndJam [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass 2021-06-08 20:30:02 +09:00
LoopUnswitch
LoopVectorize [IVDescriptors] Fix bug in checkOrderedReduction 2021-07-27 09:31:44 -04:00
LoopVersioning [LoopUtils] Fix incorrect RT check bounds of loop-invariant mem accesses 2021-07-19 19:38:24 +08:00
LoopVersioningLICM [LoopUtils] Fix incorrect RT check bounds of loop-invariant mem accesses 2021-07-19 19:38:24 +08:00
LowerAtomic
LowerConstantIntrinsics [LowerConstantIntrinsics] reuse isManifestLogic from ConstantFolding 2021-05-14 15:35:21 -07:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Fix miscompile for NT matmul if the transpose has other use 2021-07-22 10:45:56 -07:00
LowerSwitch
LowerTypeTests [OpaquePtr] Support forward references in textual IR 2021-06-29 20:10:31 +02:00
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg [Mem2Reg] Regenerate test checks (NFC) 2021-06-21 11:06:28 +02:00
MemCpyOpt [tests] Stablize tests for possible change in deref semantics 2021-07-14 13:05:43 -07:00
MergeFunc
MergeICmps [MergeICmps] Relax sinking check 2021-07-23 22:16:11 +02:00
MetaRenamer
NameAnonGlobals
NaryReassociate [NARY] Don't optimize min/max if there are side uses (part2) 2021-04-30 19:02:02 +07:00
NewGVN Revert "[NFC] remove explicit default value for strboolattr attribute in tests" 2021-05-24 19:43:40 +02:00
ObjCARC [ObjCARC] Use objc_msgSend instead of llvm.objc.msgSend in tests 2021-07-15 22:21:22 +02:00
OpenMP [Attributor] Delete dead stores 2021-07-26 23:33:36 -05:00
PartialInlining
PartiallyInlineLibCalls [PartiallyInlineLibCalls] Disable sqrt expansion for strictfp. 2021-06-17 14:15:12 -07:00
PGOProfile [SimplifyCFG] Don't speculatively execute BB[s] if they are predictably not taken 2021-07-26 02:55:15 +03:00
PhaseOrdering [SimplifyCFG] SwitchToLookupTable(): don't increase ret count 2021-07-26 23:29:55 +03:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [NewPM] Consistently use 'simplifycfg' rather than 'simplify-cfg' 2021-07-09 09:47:03 +02:00
Reassociate Partial Reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands" 2021-06-24 09:46:38 +01:00
Reg2Mem
RelLookupTableConverter/X86
RewriteStatepointsForGC [RS4GC] Use one DVCache for both inlineGetBaseAndOffset() and insertParsePoints() 2021-07-12 18:13:00 +07:00
SafeStack [SafeStack] Use proper API to get stack guard 2021-05-30 00:52:48 -07:00
SampleProfile [CSSPGO] Tweak ICP threshold in top-down inliner 2021-07-26 21:49:20 -07:00
ScalarizeMaskedMemIntrin
Scalarizer Update @llvm.powi to handle different int sizes for the exponent 2021-06-17 09:38:28 +02:00
SCCP [IR] Consider non-willreturn as side effect (PR50511) 2021-07-26 16:35:14 +02:00
SeparateConstOffsetFromGEP
SimpleLoopUnswitch [SimpleLoopUnswitch] Don't non-trivially unswitch loops with catchswitch exits 2021-07-14 14:07:28 -07:00
SimplifyCFG Strip undef implying attributes when moving calls 2021-07-27 10:57:05 -04:00
Sink
SLPVectorizer [SLP]Fix costs calculations. 2021-07-26 07:14:03 -07:00
SpeculativeExecution
SROA [SROA] avoid crash on memset with constant expression length 2021-07-21 15:20:28 -04: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 [Tests] Add missing willreturn attributes (NFC) 2021-07-24 17:17:48 +02:00
ThinLTOBitcodeWriter Revert "ThinLTO: Fix inline assembly references to static functions with CFI" 2021-07-20 13:59:46 -07:00
TypePromotion/ARM
UnifyFunctionExitNodes
UnifyLoopExits
Util [PowerPC] Add pwr7 and pwr10 support to IBM MASSV pass on AIX 2021-07-26 23:21:38 +00:00
VectorCombine [NFC][VectorCombine] Load widening: add a few more negative tests 2021-07-21 15:21:37 +03:00
WholeProgramDevirt [OpaquePtr] Support forward references in textual IR 2021-06-29 20:10:31 +02:00