1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
llvm-mirror/lib/Target/AArch64
JF Bastien f4f5b32f44 NFC: make AtomicOrdering an enum class
Summary:
In the context of http://wg21.link/lwg2445 C++ uses the concept of
'stronger' ordering but doesn't define it properly. This should be fixed
in C++17 barring a small question that's still open.

The code currently plays fast and loose with the AtomicOrdering
enum. Using an enum class is one step towards tightening things. I later
also want to tighten related enums, such as clang's
AtomicOrderingKind (which should be shared with LLVM as a 'C++ ABI'
enum).

This change touches a few lines of code which can be improved later, I'd
like to keep it as NFC for now as it's already quite complex. I have
related changes for clang.

As a follow-up I'll add:
  bool operator<(AtomicOrdering, AtomicOrdering) = delete;
  bool operator>(AtomicOrdering, AtomicOrdering) = delete;
  bool operator<=(AtomicOrdering, AtomicOrdering) = delete;
  bool operator>=(AtomicOrdering, AtomicOrdering) = delete;
This is separate so that clang and LLVM changes don't need to be in sync.

Reviewers: jyknight, reames

Subscribers: jyknight, llvm-commits

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

llvm-svn: 265602
2016-04-06 21:19:33 +00:00
..
AsmParser AArch64: support .cpu directive 2016-04-02 19:29:52 +00:00
Disassembler Remove autoconf support 2016-01-26 21:29:08 +00:00
InstPrinter Remove autoconf support 2016-01-26 21:29:08 +00:00
MCTargetDesc [AArch64] Better errors for out-of-range fixups 2016-04-01 09:14:50 +00:00
TargetInfo Remove autoconf support 2016-01-26 21:29:08 +00:00
Utils Remove autoconf support 2016-01-26 21:29:08 +00:00
AArch64.h AArch64: avoid clobbering SP for dead MOVimm pseudos. 2016-04-01 23:14:52 +00:00
AArch64.td AArch64: remove CRC feature from Cyclone. 2016-02-24 18:10:17 +00:00
AArch64A53Fix835769.cpp Add MachineFunctionProperty checks for AllVRegsAllocated for target passes 2016-04-04 17:09:25 +00:00
AArch64A57FPLoadBalancing.cpp RegisterScavenger: Take a reference as enterBasicBlock() argument. 2016-04-06 02:47:09 +00:00
AArch64AddressTypePromotion.cpp Simplify some boolean conditional return statements in AArch64. 2016-02-29 22:50:49 +00:00
AArch64AdvSIMDScalarPass.cpp AArch64: Remove implicit ilist iterator conversions, NFC 2015-10-13 20:02:15 +00:00
AArch64AsmPrinter.cpp Clean up redundant copies of Triple objects. NFC 2015-06-16 15:44:21 +00:00
AArch64BranchRelaxation.cpp [AArch64] Fix typo. NFC. 2016-03-25 14:37:43 +00:00
AArch64CallingConvention.h Replace uint16_t with the MCPhysReg typedef in many places. A lot of physical register arrays already use this typedef. 2015-12-05 07:13:35 +00:00
AArch64CallingConvention.td Swift Calling Convention: add swiftself attribute. 2016-03-29 17:37:21 +00:00
AArch64CallLowering.cpp [GlobalISel] Re-apply r260922-260923 with MSVC-friendly code. 2016-02-16 19:26:02 +00:00
AArch64CallLowering.h [GlobalISel] Re-apply r260922-260923 with MSVC-friendly code. 2016-02-16 19:26:02 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp Revert "CodeGen: MachineInstr::getIterator() => getInstrIterator(), NFC" 2016-02-22 20:49:58 +00:00
AArch64CollectLOH.cpp Add MachineFunctionProperty checks for AllVRegsAllocated for target passes 2016-04-04 17:09:25 +00:00
AArch64ConditionalCompares.cpp WIP: CodeGen: Use MachineInstr& in MachineInstrBundle.h, NFC 2016-02-27 17:05:33 +00:00
AArch64ConditionOptimizer.cpp Fix AArch64ConditionOptimizer 2016-01-15 00:06:58 +00:00
AArch64DeadRegisterDefinitionsPass.cpp Add MachineFunctionProperty checks for AllVRegsAllocated for target passes 2016-04-04 17:09:25 +00:00
AArch64ExpandPseudoInsts.cpp AArch64: avoid clobbering SP for dead MOVimm pseudos. 2016-04-01 23:14:52 +00:00
AArch64FastISel.cpp Swift Calling Convention: add swiftself attribute. 2016-03-29 17:37:21 +00:00
AArch64FrameLowering.cpp AArch64: Fix compile error 2016-04-06 02:59:44 +00:00
AArch64FrameLowering.h Change eliminateCallFramePseudoInstr() to return an iterator 2016-03-31 18:33:38 +00:00
AArch64GISelAccessor.h [AArch64] Teach the subtarget how to get to the RegisterBankInfo. 2016-04-06 17:26:03 +00:00
AArch64InstrAtomics.td NFC: make AtomicOrdering an enum class 2016-04-06 21:19:33 +00:00
AArch64InstrFormats.td AArch64: Add missing schedinfo, check completeness for cyclone 2016-03-01 21:20:31 +00:00
AArch64InstrInfo.cpp [AArch64][CodeGen] NFC refactor AArch64InstrInfo::optimizeCompareInstr to prepare it for fixing a bug in it 2016-04-06 11:39:00 +00:00
AArch64InstrInfo.h [AArch64][CodeGen] NFC refactor AArch64InstrInfo::optimizeCompareInstr to prepare it for fixing a bug in it 2016-04-06 11:39:00 +00:00
AArch64InstrInfo.td AArch64: remove pseudo-instructions used only for their patterns. 2016-03-10 18:46:12 +00:00
AArch64ISelDAGToDAG.cpp NFC: make AtomicOrdering an enum class 2016-04-06 21:19:33 +00:00
AArch64ISelLowering.cpp NFC: make AtomicOrdering an enum class 2016-04-06 21:19:33 +00:00
AArch64ISelLowering.h Faster stack-protector for Android/AArch64. 2016-04-05 22:41:50 +00:00
AArch64LoadStoreOptimizer.cpp Add MachineFunctionProperty checks for AllVRegsAllocated for target passes 2016-04-04 17:09:25 +00:00
AArch64MachineFunctionInfo.h [AArch64] Break the dependency between FP and SP when possible. 2016-03-14 18:17:41 +00:00
AArch64MCInstLower.cpp Convert some AArch64 code to foreach loops. NFC. 2015-08-03 19:04:32 +00:00
AArch64MCInstLower.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
AArch64PBQPRegAlloc.cpp CodeGen: Take MachineInstr& in SlotIndexes and LiveIntervals, NFC 2016-02-27 06:40:41 +00:00
AArch64PBQPRegAlloc.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
AArch64PerfectShuffle.h
AArch64PromoteConstant.cpp Fix -Wdocumentation warnings from r263853 2016-03-21 22:13:44 +00:00
AArch64RedundantCopyElimination.cpp Add MachineFunctionProperty checks for AllVRegsAllocated for target passes 2016-04-04 17:09:25 +00:00
AArch64RegisterBankInfo.cpp Put quotes around #error string. 2016-04-06 19:52:32 +00:00
AArch64RegisterBankInfo.h [AArch64] Initial implementation of the targeting of the register bank information. 2016-04-05 23:34:59 +00:00
AArch64RegisterInfo.cpp Add support for a preserve_most calling convention to the AArch64 backend. 2016-03-10 04:35:09 +00:00
AArch64RegisterInfo.h CXX_FAST_TLS calling convention: performance improvement for AArch64. 2015-12-16 21:04:19 +00:00
AArch64RegisterInfo.td [AArch64] Add ARMv8.2-A FP16 vector instructions 2015-12-08 12:16:10 +00:00
AArch64SchedA53.td AArch64: Reenable CompleteModel for A53, A57 and Kryo models 2016-03-01 21:55:35 +00:00
AArch64SchedA57.td AArch64: Reenable CompleteModel for A53, A57 and Kryo models 2016-03-01 21:55:35 +00:00
AArch64SchedA57WriteRes.td
AArch64SchedCyclone.td AArch64: Add missing schedinfo, check completeness for cyclone 2016-03-01 21:20:31 +00:00
AArch64SchedKryo.td AArch64: Reenable CompleteModel for A53, A57 and Kryo models 2016-03-01 21:55:35 +00:00
AArch64SchedKryoDetails.td [AArch64] Add support for Qualcomm Kryo CPU. 2016-02-12 15:51:51 +00:00
AArch64SchedM1.td [AArch64] Minor reformatting (NFC). 2016-03-09 19:56:38 +00:00
AArch64Schedule.td AArch64: Add missing schedinfo, check completeness for cyclone 2016-03-01 21:20:31 +00:00
AArch64SelectionDAGInfo.cpp Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00
AArch64SelectionDAGInfo.h Rename TargetSelectionDAGInfo into SelectionDAGTargetInfo and move it to CodeGen/ 2016-01-27 16:32:26 +00:00
AArch64StorePairSuppress.cpp [TII] Allow getMemOpBaseRegImmOfs() to accept negative offsets. NFC. 2016-03-09 16:00:35 +00:00
AArch64Subtarget.cpp [AArch64] Teach the subtarget how to get to the RegisterBankInfo. 2016-04-06 17:26:03 +00:00
AArch64Subtarget.h [AArch64] Teach the subtarget how to get to the RegisterBankInfo. 2016-04-06 17:26:03 +00:00
AArch64TargetMachine.cpp [AArch64] Teach the subtarget how to get to the RegisterBankInfo. 2016-04-06 17:26:03 +00:00
AArch64TargetMachine.h Replace string GNU Triples with llvm::Triple in TargetMachine. NFC. 2015-06-11 19:41:26 +00:00
AArch64TargetObjectFile.cpp MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
AArch64TargetObjectFile.h
AArch64TargetTransformInfo.cpp [LoopDataPrefetch] Centralize the tuning cl::opts under the pass 2016-03-29 23:45:52 +00:00
AArch64TargetTransformInfo.h [LoopDataPrefetch] Add TTI to limit the number of iterations to prefetch ahead 2016-03-18 00:27:43 +00:00
CMakeLists.txt [AArch64] Change the CMake to avoid to build GlobalISel related APIs 2016-04-06 17:38:12 +00:00
LLVMBuild.txt [AArch64] Plug the beginning of the GlobalISel pipeline. 2016-02-11 19:35:06 +00:00