llvm-6502/lib/Target/AArch64
JF Bastien 81338a4890 Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded.
Summary:
In PNaCl, most atomic instructions have their own @llvm.nacl.atomic.* function, each one, with a few exceptions, represents a consistent behaviour across all NaCl-supported targets. Unfortunately, the atomic RMW operations nand, [u]min, and [u]max aren't directly represented by any such @llvm.nacl.atomic.* function. This patch refines shouldExpandAtomicRMWInIR in TargetLowering so that a future `Le32TargetLowering` class can selectively inform the caller how the target desires the atomic RMW instruction to be expanded (ie via load-linked/store-conditional for ARM/AArch64, via cmpxchg for X86/others?, or not at all for Mips) if at all.

This does not represent a behavioural change and as such no tests were added.

Patch by: Richard Diamond.

Reviewers: jfb

Reviewed By: jfb

Subscribers: jfb, aemerson, t.p.northover, llvm-commits

Differential Revision: http://reviews.llvm.org/D7713

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231250 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-04 15:47:57 +00:00
..
AsmParser Fix some unnoticed/unwanted behavior change from r222319. 2015-02-04 03:10:03 +00:00
Disassembler unique_ptrify the RelInfo parameter to TargetRegistry::createMCSymbolizer 2015-01-18 20:45:48 +00:00
InstPrinter
MCTargetDesc Remove MCStreamer.h include from MCContext.h and explictly include it where necessary. NFC 2015-03-04 01:24:11 +00:00
TargetInfo
Utils Fix PR22408 - LLVM producing AArch64 TLS relocations that GNU linkers cannot handle yet. 2015-03-04 09:12:08 +00:00
AArch64.h [PM] Remove a bunch of stale TTI creation method declarations. I nuked 2015-02-01 00:22:15 +00:00
AArch64.td Adding support to LLVM for targeting Cortex-A72 2015-02-04 13:31:29 +00:00
AArch64A53Fix835769.cpp Clean up some uses of getSubtarget in AArch64. 2015-01-30 01:10:24 +00:00
AArch64A57FPLoadBalancing.cpp Remove subtarget dependence in pass pipeline setup for AArch64. 2015-03-03 23:22:40 +00:00
AArch64AddressTypePromotion.cpp
AArch64AdvSIMDScalarPass.cpp This only needs TargetInstrInfo, not the specialized one. 2015-01-30 01:10:18 +00:00
AArch64AsmPrinter.cpp Fix PR22408 - LLVM producing AArch64 TLS relocations that GNU linkers cannot handle yet. 2015-03-04 09:12:08 +00:00
AArch64BranchRelaxation.cpp Migrate AArch64 except for TTI and AsmPrinter away from getSubtargetImpl. 2015-01-28 03:51:33 +00:00
AArch64CallingConvention.h Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
AArch64CallingConvention.td Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp Fix PR22408 - LLVM producing AArch64 TLS relocations that GNU linkers cannot handle yet. 2015-03-04 09:12:08 +00:00
AArch64CollectLOH.cpp Clean up some uses of getSubtarget in AArch64. 2015-01-30 01:10:24 +00:00
AArch64ConditionalCompares.cpp AArch64: Canonicalize access to function attributes, NFC 2015-02-14 02:09:06 +00:00
AArch64ConditionOptimizer.cpp Migrate AArch64 except for TTI and AsmPrinter away from getSubtargetImpl. 2015-01-28 03:51:33 +00:00
AArch64DeadRegisterDefinitionsPass.cpp
AArch64ExpandPseudoInsts.cpp MathExtras: Bring Count(Trailing|Leading)Ones and CountPopulation in line with countTrailingZeros 2015-02-12 15:35:40 +00:00
AArch64FastISel.cpp Clean up some uses of getSubtarget in AArch64. 2015-01-30 01:10:24 +00:00
AArch64FrameLowering.cpp AArch64: Canonicalize access to function attributes, NFC 2015-02-14 02:09:06 +00:00
AArch64FrameLowering.h
AArch64InstrAtomics.td
AArch64InstrFormats.td Replace neverHasSideEffects=1 with hasSideEffects=0 in all .td files. 2014-11-26 00:46:26 +00:00
AArch64InstrInfo.cpp ArrayRefize memory operand folding. NFC. 2015-02-28 12:04:00 +00:00
AArch64InstrInfo.h ArrayRefize memory operand folding. NFC. 2015-02-28 12:04:00 +00:00
AArch64InstrInfo.td Fix PR22408 - LLVM producing AArch64 TLS relocations that GNU linkers cannot handle yet. 2015-03-04 09:12:08 +00:00
AArch64ISelDAGToDAG.cpp AArch64: Add debug message for large shift constants. 2015-02-25 18:03:50 +00:00
AArch64ISelLowering.cpp Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded. 2015-03-04 15:47:57 +00:00
AArch64ISelLowering.h Mutate TargetLowering::shouldExpandAtomicRMWInIR to specifically dictate how AtomicRMWInsts are expanded. 2015-03-04 15:47:57 +00:00
AArch64LoadStoreOptimizer.cpp Migrate AArch64 except for TTI and AsmPrinter away from getSubtargetImpl. 2015-01-28 03:51:33 +00:00
AArch64MachineCombinerPattern.h
AArch64MachineFunctionInfo.h
AArch64MCInstLower.cpp Fix PR22408 - LLVM producing AArch64 TLS relocations that GNU linkers cannot handle yet. 2015-03-04 09:12:08 +00:00
AArch64MCInstLower.h
AArch64PBQPRegAlloc.cpp Avoid copying LiveInterval, this could lead to a double-delete 2015-03-03 22:25:48 +00:00
AArch64PBQPRegAlloc.h
AArch64PerfectShuffle.h
AArch64PromoteConstant.cpp [AArch64] fix an invalid-iterator-use bug. 2015-03-02 00:17:18 +00:00
AArch64RegisterInfo.cpp AArch64: add backend option to reserve x18 (platform register) 2015-01-21 15:43:31 +00:00
AArch64RegisterInfo.h
AArch64RegisterInfo.td
AArch64SchedA53.td
AArch64SchedA57.td
AArch64SchedA57WriteRes.td
AArch64SchedCyclone.td
AArch64Schedule.td
AArch64SelectionDAGInfo.cpp Get the cached subtarget off the MachineFunction rather than 2015-02-20 08:39:06 +00:00
AArch64SelectionDAGInfo.h
AArch64StorePairSuppress.cpp Clean up the AArch64 store pair suppression pass initialization 2015-01-27 07:54:36 +00:00
AArch64Subtarget.cpp Remove getSubtargetImpl from AArch64ISelLowering and cache the 2015-01-29 00:19:42 +00:00
AArch64Subtarget.h Move DataLayout back to the TargetMachine from TargetSubtargetInfo 2015-01-26 19:03:15 +00:00
AArch64TargetMachine.cpp Remove subtarget dependence in pass pipeline setup for AArch64. 2015-03-03 23:22:40 +00:00
AArch64TargetMachine.h [multiversion] Switch all of the targets over to use the 2015-02-01 13:20:00 +00:00
AArch64TargetObjectFile.cpp
AArch64TargetObjectFile.h
AArch64TargetTransformInfo.cpp Make some non-constant static variables non-static or fully const. 2015-03-01 18:09:56 +00:00
AArch64TargetTransformInfo.h [multiversion] Remove the function parameter from the unrolling 2015-02-01 14:31:23 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile