1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/test/Transforms
Nicolai Hähnle 5d6415281f [IR] Memory intrinsics are not unconditionally nosync
Remove the `nosync` attribute from the memory intrinsic definitions
(i.e. memset, memcpy, memmove).

Like native memory accesses, memory intrinsics can be volatile. This is
indicated by an immarg in the intrinsic call. All else equal, a volatile
memory intrinsic is `sync`, so we cannot annotate the intrinsic functions
themselves as `nosync`. The attributor and function-attr passes know to
take the volatile bit into account.

Since `nosync` is a default attribute, this means we have to stop using
the DefaultAttrIntrinsic tablegen class for memory intrinsics, and
specify all default attributes other than `nosync` explicitly.

Most of the test changes are trivial churn, but one test case
(in nosync.ll) was in fact incorrect before this change.

Differential Revision: https://reviews.llvm.org/D102295
2021-05-21 03:40:59 +02:00
..
ADCE [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
AddDiscriminators
AggressiveInstCombine
AlignmentFromAssumptions [AssumeBundles] offset should be added to correctly calculate align 2021-04-02 12:32:05 +09:00
ArgumentPromotion [ArgumentPromotion] Fix byval alignment handling. 2021-05-11 11:22:18 -07:00
AtomicExpand Revert "[CodeGen][ARM] Implement atomicrmw as pseudo operations at -O0" 2021-05-03 21:48:20 +01:00
Attributor [IR] Memory intrinsics are not unconditionally nosync 2021-05-21 03:40:59 +02:00
BDCE [DCE] Don't remove non-willreturn calls 2021-02-19 12:35:40 +01:00
BlockExtractor
BranchFolding
CalledValuePropagation
CallSiteSplitting
CanonicalizeAliases
CanonicalizeFreezeInLoops
CodeExtractor
CodeGenPrepare [CPG][ARM] Optimize towards branch on zero in codegenprepare 2021-05-16 17:54:06 +01:00
ConstantHoisting
ConstantMerge [ConstantMerge] Don't merge thread_local constants with non-thread_local constants 2021-04-28 23:44:20 +01:00
ConstraintElimination [ConstraintElimination] Only strip casts preserving the representation. 2021-03-26 20:07:41 +00:00
Coroutines [NFC][Coroutines] Autogenerate a few tests for ease of further updates 2021-05-20 13:37:44 +03:00
CorrelatedValuePropagation [LVI] Handle mask not equal zero conditions 2021-05-01 23:08:49 +02:00
CrossDSOCFI
DCE
DeadArgElim Reapply "OpaquePtr: Turn inalloca into a type attribute" 2021-03-29 08:55:30 -04:00
DeadStoreElimination [IR] Memory intrinsics are not unconditionally nosync 2021-05-21 03:40:59 +02:00
DivRemPairs
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 [tests] Update Transforms/FunctionAttrs/nosync.ll 2021-05-06 01:39:18 +02:00
FunctionImport
GCOVProfiling [gcov] Set nounwind and respect module flags metadata "frame-pointer" & "uwtable" for synthesized functions 2021-04-26 13:30:21 -07:00
GlobalDCE
GlobalMerge
GlobalOpt [GlobalOpt] recompute alignments for loads and stores of updated globals 2021-05-20 12:12:21 -04:00
GlobalSplit [test] Fix mix of variable use/def and regex match 2021-03-24 17:58:16 +00:00
GuardWidening
GVN [GVN] Improve analysis for missed optimization remark 2021-05-17 21:51:15 -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
HardwareLoops [test, HardwareLoops] Fix use of var defined in CHECK-NOT 2021-03-30 15:06:32 +01:00
HelloNew
HotColdSplit
IndirectBrExpand
IndVarSimplify [SCEV] By more careful when traversing phis in isImpliedViaMerge. 2021-05-07 19:52:29 +01:00
InferAddressSpaces
InferFunctionAttrs [BuildLibCalls] Remove inaccessiblememonly inference for calloc 2021-04-29 00:17:37 +02:00
Inline [Inliner] Copy attributes when deoptimize intrinsic is inlined 2021-05-18 10:08:37 +07:00
InstCombine [CodeGen][AArch64][SVE] Canonicalize intrinsic rdffr{ => _z} 2021-05-20 16:22:50 +00:00
InstMerge
InstNamer
InstSimplify [InstSimplify] Remove redundant {insert,extract}_vector intrinsic chains 2021-05-13 16:09:50 +00:00
InterleavedAccess
Internalize
IRCE [SCEV] By more careful when traversing phis in isImpliedViaMerge. 2021-05-07 19:52:29 +01:00
IROutliner
JumpThreading [LazyValueInfo] Insert an Overdefined placeholder to prevent infinite recursion 2021-05-07 16:05:50 +08:00
LCSSA
LICM [LICM] Remove MaybePromotable set (PR50367) 2021-05-18 20:26:01 +02:00
LoadStoreVectorizer Change the context instruction for computeKnownBits in LoadStoreVectorizer pass 2021-05-12 15:29:29 -07:00
LoopDataPrefetch
LoopDeletion [Test] Auto-generate checks in a test (prepring to update) 2021-05-17 18:26:47 +07:00
LoopDistribute [SCEVExpander] ReuseOrCreateCast(): use IRBuilder to actually create the cast 2021-04-19 18:38:39 +03:00
LoopFlatten [LoopFlatten] Simplify loops so that the pass can operate on unsimplified loops. 2021-05-12 19:22:01 +01:00
LoopFusion [llvm] Unbreak no-asserts testing after 18839be9c5c8b9f882dd241769784035b082d4e1 2021-04-27 05:46:43 -04:00
LoopIdiom [LoopIdiom] 'logical right-shift until zero' ('count active bits') "on steroids" idiom recognition. 2021-05-17 20:33:33 +03:00
LoopInstSimplify
LoopInterchange [LoopInterchange] Handle lcssa PHIs with multiple predecessors 2021-05-11 21:30:54 -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 [LoopReroll] Fix rerolling loop with extra instructions 2021-04-23 15:14:46 +09:00
LoopRotate [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
LoopSimplify [InstCombine] Fully disable select to and/or i1 folding 2021-05-06 09:29:52 +09:00
LoopSimplifyCFG
LoopStrengthReduce [LSR][DebugInfo] Don't unnecessarily drop DebugLocs 2021-04-26 13:14:42 +01:00
LoopTransformWarning
LoopUnroll Do actual DCE in LoopUnroll (try 4) 2021-05-19 10:25:31 -07:00
LoopUnrollAndJam Do actual DCE in LoopUnroll (try 4) 2021-05-19 10:25:31 -07:00
LoopUnswitch Explicitly enable the new pass manager in this test. 2021-03-25 18:10:36 -07:00
LoopVectorize [RISCV] Add legality check for vectorizing reduction 2021-05-20 17:45:46 +08:00
LoopVersioning
LoopVersioningLICM
LowerAtomic
LowerConstantIntrinsics [LowerConstantIntrinsics] reuse isManifestLogic from ConstantFolding 2021-05-14 15:35:21 -07:00
LowerExpectIntrinsic
LowerGuardIntrinsic
LowerInvoke
LowerMatrixIntrinsics [Matrix] Fold the transpose into the matmul operand used to fetch scalars 2021-05-17 17:40:46 -07:00
LowerSwitch
LowerTypeTests
LowerWidenableCondition
MakeGuardsExplicit
Mem2Reg
MemCpyOpt [IR] Memory intrinsics are not unconditionally nosync 2021-05-21 03:40:59 +02:00
MergeFunc
MergeICmps Tweak a test so it actually gets autogened 2021-03-22 11:32:32 -07: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 [NewGVN] Use ExprResult to add extra predicate users. 2021-04-25 11:13:32 +01:00
ObjCARC [IR] Memory intrinsics are not unconditionally nosync 2021-05-21 03:40:59 +02:00
OpenMP [Diagnostics] Allow emitting analysis and missed remarks on functions 2021-05-19 15:10:20 -04:00
PartialInlining
PartiallyInlineLibCalls
PGOProfile [NFC][CHR] Autogenerate checklines in a few tests for ease of updates 2021-05-20 13:12:45 +03:00
PhaseOrdering [PhaseOrdering] Add test for insert/extract code for matrixes. 2021-05-16 12:52:20 +01:00
PlaceSafepoints
PreISelIntrinsicLowering
PruneEH [NFC][PruneEH] Autogenerate checklines in a few tests for ease of updates 2021-05-20 13:12:45 +03:00
Reassociate Revert "Re-reapply "[DebugInfo] Use variadic debug values to salvage BinOps and GEP instrs with non-const operands"" 2021-04-30 20:23:21 -07:00
Reg2Mem
RelLookupTableConverter/X86 [Passes] Add relative lookup table converter pass 2021-04-13 01:29:41 +00:00
RewriteStatepointsForGC [rs4gc] Strip memory related attributes consistently 2021-05-14 07:54:56 -07:00
SafeStack
SampleProfile [CSSPGO] Avoid deleting probe instruction in FoldValueComparisonIntoPredecessors 2021-05-19 13:39:05 -07:00
ScalarizeMaskedMemIntrin
Scalarizer
SCCP [NewPM] Hide pass manager debug logging behind -debug-pass-manager-verbose 2021-05-07 21:51:47 -07:00
SeparateConstOffsetFromGEP [test] Make global in split-gep-and-gvn.ll not constant 2021-04-19 11:03:19 -07:00
SimpleLoopUnswitch Revert "[SimpleLoopUnswitch] Port partially invariant unswitch from LoopUnswitch to SimpleLoopUnswitch" 2021-05-13 08:40:49 +01:00
SimplifyCFG [NFC][SimplifyCFG] Autogenerate checklines in a few tests for ease of updates 2021-05-20 13:12:44 +03:00
Sink
SLPVectorizer [SLP]Try to vectorize tiny trees with shuffled gathers of extractelements. 2021-05-20 08:36:16 -07:00
SpeculateAroundPHIs
SpeculativeExecution
SROA Reapply [ConstantFold] Fold more operations to poison 2021-05-13 16:04:12 +02:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols [DebugInfo] Support for signed constants inside DIExpression 2021-03-30 23:20:38 +05:30
StructurizeCFG
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
UnifyLoopExits
Util Revert "[Remarks] Add analysis remarks for memset/memcpy/memmove lengths" 2021-05-20 12:19:16 -07:00
VectorCombine [VectorCombine] Add tests with and & urem guaranteeing idx is valid. 2021-05-16 12:51:53 +01:00
WholeProgramDevirt Don't use $ as suffix for symbol names in ThinLTOBitcodeWriter and other places 2021-03-29 13:03:52 +02:00