llvm-project/llvm/lib/Target/Hexagon
Ahmed Bougacha 5246867384 [CodeGen] Refactor TLI/AtomicExpand interface to make LLSC explicit.
We used to have this magic "hasLoadLinkedStoreConditional()" callback,
which really meant two things:
- expand cmpxchg (to ll/sc).
- expand atomic loads using ll/sc (rather than cmpxchg).

Remove it, and, instead, introduce explicit callbacks:
- bool shouldExpandAtomicCmpXchgInIR(inst)
- AtomicExpansionKind shouldExpandAtomicLoadInIR(inst)

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

llvm-svn: 247429
2015-09-11 17:08:28 +00:00
..
Disassembler Explicitly clear the MI operand list when getInstruction() is called. Call MI.clear() within MCD::OPC_Decode case and inside of translateInstruction() for the X86 target. Remove now unnecessary MI.clear() from ARMDisassembler. 2015-08-11 01:15:07 +00:00
MCTargetDesc -Wdeprecated: Remove some dead code that was relying on a questionable (rule-of-3-violating) copy ctor in MCInstPrinter 2015-08-05 21:15:48 +00:00
TargetInfo
BitTracker.cpp [WinEH] Add some support for code generating catchpad 2015-08-27 23:27:47 +00:00
BitTracker.h -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-01 05:31:27 +00:00
CMakeLists.txt [Hexagon] Implement TargetTransformInfo for Hexagon 2015-08-05 18:35:37 +00:00
Hexagon.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Hexagon.td Make the Hexagon ISelDAGToDAG pass set the subtarget dynamically 2015-03-21 03:12:59 +00:00
HexagonAsmPrinter.cpp MC: Add target hook to control symbol quoting 2015-06-09 00:31:39 +00:00
HexagonAsmPrinter.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonBitTracker.cpp [Hexagon] Use composition instead of inheritance from STL types 2015-07-18 17:43:23 +00:00
HexagonBitTracker.h [Hexagon] Move BitTracker into the llvm namespace and remove redundant qualifications 2015-07-13 20:38:16 +00:00
HexagonCFGOptimizer.cpp Save LaneMask with livein registers 2015-09-09 18:08:03 +00:00
HexagonCallingConv.td
HexagonCommonGEP.cpp [Hexagon] Use composition instead of inheritance from STL types 2015-07-18 17:43:23 +00:00
HexagonCopyToCombine.cpp [Hexagon] Moving pass declarations out of header and in to implementation files. Removing unused function getSubtargetInfo from HexagonMCCodeEmitter.cpp Removing deletion of copy construction and assignment operator since parent already deletes it. 2015-06-15 19:05:35 +00:00
HexagonExpandCondsets.cpp [Hexagon] Add missing preamble to a source file 2015-07-09 15:40:25 +00:00
HexagonExpandPredSpillCode.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonFixupHwLoops.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonFrameLowering.cpp Remove redundant TargetFrameLowering::getFrameIndexOffset virtual 2015-08-15 02:32:35 +00:00
HexagonFrameLowering.h Remove redundant TargetFrameLowering::getFrameIndexOffset virtual 2015-08-15 02:32:35 +00:00
HexagonGenExtract.cpp [Hexagon] Generate "extract" instructions more aggressively 2015-07-14 17:07:24 +00:00
HexagonGenInsert.cpp -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-01 05:31:27 +00:00
HexagonGenMux.cpp [Hexagon] Generate MUX from conditional transfers when dot-new not possible 2015-07-20 21:23:25 +00:00
HexagonGenPredicate.cpp Fix some comment typos. 2015-08-08 18:27:36 +00:00
HexagonHardwareLoops.cpp Fix some comment typos. 2015-08-08 18:27:36 +00:00
HexagonISelDAGToDAG.cpp Use more foreach loops in SelectionDAG. NFC 2015-07-14 23:43:29 +00:00
HexagonISelLowering.cpp [CodeGen] Refactor TLI/AtomicExpand interface to make LLSC explicit. 2015-09-11 17:08:28 +00:00
HexagonISelLowering.h [CodeGen] Refactor TLI/AtomicExpand interface to make LLSC explicit. 2015-09-11 17:08:28 +00:00
HexagonInstrFormats.td [Hexagon] Disassembling, printing, and emitting instructions a whole-bundle at a time which is the semantic unit for Hexagon. Fixing tests to use the new format. Disabling tests in the direct object emission path for a followup patch. 2015-05-29 14:44:13 +00:00
HexagonInstrFormatsV4.td [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonInstrInfo.cpp Pass BranchProbability/BlockMass by value instead of const& as they are small. NFC. 2015-09-10 23:10:42 +00:00
HexagonInstrInfo.h Pass BranchProbability/BlockMass by value instead of const& as they are small. NFC. 2015-09-10 23:10:42 +00:00
HexagonInstrInfo.td Reapply r235977 "[DebugInfo] Add debug locations to constant SD nodes" 2015-04-28 14:05:47 +00:00
HexagonInstrInfoV3.td [Hexagon] Removing v2-4 flags. V4 is the minimum supported version. 2015-02-09 21:07:35 +00:00
HexagonInstrInfoV4.td [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonInstrInfoV5.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonInstrInfoVector.td [Hexagon] Add support for vector instructions 2015-03-19 16:33:08 +00:00
HexagonIntrinsics.td [Hexagon] Making intrinsic tests agnostic to register allocation. Narrowing intrinsic parameters to appropriate width. 2015-06-12 19:57:32 +00:00
HexagonIntrinsicsDerived.td [Hexagon] Deleting a lot of old variants of intrinsics and updating references. 2015-01-28 18:29:11 +00:00
HexagonIntrinsicsV3.td [Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests. 2015-02-03 20:40:52 +00:00
HexagonIntrinsicsV4.td Eliminate constant-extender profitability checks from Hexagon isel 2015-03-12 00:19:59 +00:00
HexagonIntrinsicsV5.td [Hexagon] Converting XTYPE/SHIFT intrinsics. Cleaning out old intrinsic patterns and updating tests. 2015-02-03 20:40:52 +00:00
HexagonIsetDx.td [Hexagon] Reapply r239097 with tests corrected for shuffling and duplexing. 2015-06-05 16:00:11 +00:00
HexagonMCInstLower.cpp MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
HexagonMachineFunctionInfo.cpp
HexagonMachineFunctionInfo.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonMachineScheduler.cpp Move HexagonMachineScheduler to use the subtarget off of the 2015-02-02 22:11:40 +00:00
HexagonMachineScheduler.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonNewValueJump.cpp [Hexagon] Moving pass declarations out of header and in to implementation files. Removing unused function getSubtargetInfo from HexagonMCCodeEmitter.cpp Removing deletion of copy construction and assignment operator since parent already deletes it. 2015-06-15 19:05:35 +00:00
HexagonOperands.td [Hexagon] Making intrinsic tests agnostic to register allocation. Narrowing intrinsic parameters to appropriate width. 2015-06-12 19:57:32 +00:00
HexagonPeephole.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonRegisterInfo.cpp Targets: commonize some stack realignment code 2015-07-20 22:51:32 +00:00
HexagonRegisterInfo.h Targets: commonize some stack realignment code 2015-07-20 22:51:32 +00:00
HexagonRegisterInfo.td [Hexagon] Adding vector shift instructions and tests. 2015-01-30 21:58:46 +00:00
HexagonRemoveSZExtArgs.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonSchedule.td
HexagonScheduleV4.td
HexagonSelectCCInfo.td
HexagonSelectionDAGInfo.cpp Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00
HexagonSelectionDAGInfo.h Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00
HexagonSplitConst32AndConst64.cpp Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonSubtarget.cpp Remove getDataLayout() from TargetSelectionDAGInfo (had no users) 2015-07-09 02:10:08 +00:00
HexagonSubtarget.h Replace string GNU Triples with llvm::Triple in MCSubtargetInfo and create*MCSubtargetInfo(). NFC. 2015-06-10 12:11:26 +00:00
HexagonTargetMachine.cpp Remove unnecessary includes 2015-08-08 00:41:53 +00:00
HexagonTargetMachine.h [Hexagon] Implement TargetTransformInfo for Hexagon 2015-08-05 18:35:37 +00:00
HexagonTargetObjectFile.cpp Move most user of TargetMachine::getDataLayout to the Module one 2015-07-16 06:11:10 +00:00
HexagonTargetObjectFile.h Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
HexagonTargetStreamer.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
HexagonTargetTransformInfo.cpp [Hexagon] Edit a comment. NFC 2015-08-05 21:08:26 +00:00
HexagonTargetTransformInfo.h [Hexagon] Implement TargetTransformInfo for Hexagon 2015-08-05 18:35:37 +00:00
HexagonVLIWPacketizer.cpp [PM/AA] Rebuild LLVM's alias analysis infrastructure in a way compatible 2015-09-09 17:55:00 +00:00
LLVMBuild.txt Add missing dependency to Hexagon target. 2015-07-08 21:13:37 +00:00
Makefile Prune CRLFs. 2015-05-25 01:43:23 +00:00