1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/test/Transforms
Tim Northover 5f6de253c5 ARM: use a pseudo-instruction for cmpxchg at -O0.
The fast register-allocator cannot cope with inter-block dependencies without
spilling. This is fine for ldrex/strex loops coming from atomicrmw instructions
where any value produced within a block is dead by the end, but not for
cmpxchg. So we lower a cmpxchg at -O0 via a pseudo-inst that gets expanded
after regalloc.

Fortunately this is at -O0 so we don't have to care about performance. This
simplifies the various axes of expansion considerably: we assume a strong
seq_cst operation and ensure ordering via the always-present DMB instructions
rather than v8 acquire/release instructions.

Should fix the 32-bit part of PR25526.

llvm-svn: 266679
2016-04-18 21:48:55 +00:00
..
ADCE [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
AddDiscriminators [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
AlignmentFromAssumptions
ArgumentPromotion [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
AtomicExpand ARM: use a pseudo-instruction for cmpxchg at -O0. 2016-04-18 21:48:55 +00:00
BBVectorize
BDCE
BranchFolding
CodeExtractor
CodeGenPrepare [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
ConstantHoisting ARM: don't try to hoist constant RHS out of a division. 2016-04-15 18:17:18 +00:00
ConstantMerge
ConstProp
CorrelatedValuePropagation
CrossDSOCFI
DeadArgElim [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
DeadStoreElimination [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
EarlyCSE
EliminateAvailableExternally
Float2Int
ForcedFunctionAttrs
FunctionAttrs Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
FunctionImport ThinLTO: Make aliases explicit in the summary 2016-04-16 06:56:44 +00:00
GCOVProfiling [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
GlobalDCE
GlobalOpt [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
GVN [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
IndVarSimplify This reverts commit r265913 and r265912 2016-04-11 15:26:18 +00:00
InferFunctionAttrs [NVPTX] Infer __nvvm_reflect as nounwind, readnone 2016-03-31 21:29:57 +00:00
Inline Revert "Replace the use of MaxFunctionCount module flag" 2016-04-18 15:31:11 +00:00
InstCombine Fix a typo in rL265762 2016-04-17 04:30:43 +00:00
InstMerge fixed typo - CHECK-LABEL 2016-03-29 06:49:38 +00:00
InstSimplify [ValueTracking] Correct lit test comments. NFC. 2016-04-18 19:11:45 +00:00
Internalize
IPConstantProp Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
IRCE
JumpThreading
LCSSA
LICM [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
LoadCombine
LoopDataPrefetch [LoopDataPrefetch] Centralize the tuning cl::opts under the pass 2016-03-29 23:45:52 +00:00
LoopDeletion
LoopDistribute
LoopIdiom [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
LoopInterchange
LoopLoadElim [LLE] Check for mismatching types between the store and the load earlier 2016-03-24 17:59:26 +00:00
LoopReroll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
LoopRotate [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
LoopSimplify [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
LoopSimplifyCFG
LoopStrengthReduce Don't delete empty preheaders in CodeGenPrepare if it would create a critical edge 2016-04-05 14:06:20 +00:00
LoopUnroll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
LoopUnswitch [SimlifyCFG] Prevent passes from destroying canonical loop structure, especially for nested loops 2016-03-29 04:08:57 +00:00
LoopVectorize [ARM] AArch32 v8 NEON is still not IEEE-754 compliant 2016-04-18 12:06:47 +00:00
LoopVersioning [LVers] Change CHECK_LABEL to CHECK-LABEL (underscore->dash) 2016-03-28 21:04:13 +00:00
LoopVersioningLICM
LowerAtomic
LowerBitSets [cfi] Support explicit sections for functions in cfi-icall. 2016-04-15 22:55:38 +00:00
LowerExpectIntrinsic
LowerGuardIntrinsic Introduce a @llvm.experimental.guard intrinsic 2016-03-31 00:18:46 +00:00
LowerInvoke
LowerSwitch
Mem2Reg [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
MemCpyOpt
MergeFunc MergeFunctions: test alloca better 2016-04-12 00:03:26 +00:00
MetaRenamer
NameAnonFunctions Add a pass to name anonymous/nameless function 2016-04-12 21:35:28 +00:00
NaryReassociate
ObjCARC [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
PartiallyInlineLibCalls
PGOProfile [PGO] Avoid instrumenting direct callee's at value sites. 2016-04-04 18:56:36 +00:00
PhaseOrdering
PlaceSafepoints
PruneEH
Reassociate
Reg2Mem
RewriteStatepointsForGC [RS4GC] Better codegen for deoptimize calls 2016-04-05 23:18:35 +00:00
SafeStack [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
SampleProfile [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
Scalarizer [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
ScalarRepl [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
SCCP Don't IPO over functions that can be de-refined 2016-04-08 00:48:30 +00:00
SeparateConstOffsetFromGEP
SimplifyCFG [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
Sink
SLPVectorizer [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
SpeculativeExecution Move divergent-target test into CodeGen/NVPTX because it requires an NVPTX target. 2016-04-15 01:20:52 +00:00
SROA [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
StraightLineStrengthReduce
StripDeadPrototypes
StripSymbols [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
StructurizeCFG AMDGPU: Remove leftover ShaderType attributes in tests 2016-04-13 00:39:48 +00:00
TailCallElim
Util [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
WholeProgramDevirt