llvm-mirror/include/llvm/CodeGen
Daniel Sanders ed6e598662 [globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg
Summary:
This patch adds support for the atomicrmw instructions and the strong
cmpxchg instruction to the IRTranslator.

I've left out weak cmpxchg because LangRef.rst isn't entirely clear on what
difference it makes to the backend. As far as I can tell from the code, it
only matters to AtomicExpandPass which is run at the LLVM-IR level.

Reviewers: ab, t.p.northover, qcolombet, rovka, aditya_nandakumar, volkan, javed.absar

Reviewed By: qcolombet

Subscribers: kristof.beyls, javed.absar, igorb, llvm-commits

Differential Revision: https://reviews.llvm.org/D40092

llvm-svn: 336589
2018-07-09 19:33:40 +00:00
..
GlobalISel [globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg 2018-07-09 19:33:40 +00:00
MIRParser Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
PBQP Remove @brief commands from doxygen comments, too. 2018-05-01 16:10:38 +00:00
AccelTable.h [AccelTable] Provide abstraction for emitting DWARF5 accelerator tables. 2018-07-09 09:08:44 +00:00
Analysis.h [WebAssembly] Add functions for EHScopes 2018-05-23 00:32:46 +00:00
AsmPrinter.h [DWARF] Rework debug line parsing to use llvm::Error and callbacks 2018-05-10 10:51:33 +00:00
AtomicExpandUtils.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
BasicTTIImpl.h [CostModel] Replace ShuffleKind::SK_Alternate with ShuffleKind::SK_Select (PR33744) 2018-06-12 16:12:29 +00:00
CalcSpillWeights.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
CallingConvLower.h [RISCV] Add custom CC_RISCV calling convention and improved call support 2017-12-11 12:49:02 +00:00
CommandFlags.inc Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
CostTable.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DAGCombine.h
DFAPacketizer.h [Packetizer] Add function to check for aliasing between instructions 2017-10-20 22:08:40 +00:00
DIE.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
DIEValue.def Make a DWARF generator so we can unit test DWARF APIs with gtest. 2016-12-08 01:03:48 +00:00
DwarfStringPoolEntry.h [DWARF][NFC] Overload AsmPrinter::emitDwarfStringOffsets() to take a DwarfStringPoolEntry 2018-01-11 02:35:00 +00:00
EdgeBundles.h
ExecutionDomainFix.h Separate LoopTraversal, ReachingDefAnalysis and BreakFalseDeps into their own files. 2018-01-22 10:06:50 +00:00
ExpandReductions.h Add a late IR expansion pass for the experimental reduction intrinsics. 2017-05-10 09:42:49 +00:00
FastISel.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
FaultMaps.h Fix FaultMaps crash when the out streamer is reused 2017-10-17 11:44:34 +00:00
FunctionLoweringInfo.h [FastISel] Sink local value materializations to first use 2018-03-14 21:54:21 +00:00
GCMetadata.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCMetadataPrinter.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
GCs.h
GCStrategy.h [Docs] Escape the @ symbol, so that it appears in documentation output. [NFC] 2018-04-26 21:55:45 +00:00
IntrinsicLowering.h [CodeGen] fix documentation comments; NFC 2017-12-15 18:09:33 +00:00
ISDOpcodes.h Get rid of SETCCE 2018-06-04 18:36:22 +00:00
LatencyPriorityQueue.h IWYU for llvm-config.h in llvm, additions. 2018-04-30 14:59:11 +00:00
LazyMachineBlockFrequencyInfo.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
LexicalScopes.h Mark dump() methods as const. NFC 2017-06-21 22:19:17 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h
LiveInterval.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
LiveIntervals.h Account for undef values from predecessors in extendSegmentsToUses 2018-06-26 14:37:16 +00:00
LiveIntervalUnion.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-24 23:10:29 +00:00
LivePhysRegs.h [BranchFolding] Fix live-in's when hoisting code 2018-06-07 07:20:33 +00:00
LiveRangeEdit.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
LiveRegMatrix.h Take into account the cost of local intervals when selecting split candidate. 2018-01-31 13:31:08 +00:00
LiveRegUnits.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
LiveStacks.h LiveStacks: Rename LiveStack.{h|cpp} to LiveStacks.{h|cpp}; NFC 2017-12-18 23:19:44 +00:00
LiveVariables.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
LoopTraversal.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
LowLevelType.h Recommit: [globalisel] Change LLT constructor string into an LLT-based object that knows how to generate it. 2017-03-07 23:20:35 +00:00
MachineBasicBlock.h [WebAssembly] Add functions for EHScopes 2018-05-23 00:32:46 +00:00
MachineBlockFrequencyInfo.h Irreducible loop metadata for more accurate block frequency under PGO. 2017-11-02 22:26:51 +00:00
MachineBranchProbabilityInfo.h Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI. 2015-12-18 21:53:24 +00:00
MachineCombinerPattern.h [AArch64] Add patterns to replace fsub fmul with fma fneg. 2017-12-06 22:48:36 +00:00
MachineConstantPool.h Remove @brief commands from doxygen comments, too. 2018-05-01 16:10:38 +00:00
MachineDominanceFrontier.h [WebAssembly] Add WebAssemblyException information analysis 2018-06-25 01:20:21 +00:00
MachineDominators.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
MachineFrameInfo.h StackSlotColoring: Decide colors per stack ID 2018-06-25 16:05:55 +00:00
MachineFunction.h [WebAssembly] Add WasmEHFuncInfo for unwind destination information 2018-06-19 00:26:39 +00:00
MachineFunctionPass.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
MachineInstr.h [NFC] make MIFlag accessor functions consistant with usage model 2018-06-18 18:37:48 +00:00
MachineInstrBuilder.h [DebugInfo] Make sure all DBG_VALUEs' reguse operands have IsDebug property 2018-06-21 10:03:34 +00:00
MachineInstrBundle.h [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register. 2017-12-07 10:40:31 +00:00
MachineInstrBundleIterator.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-05-31 01:10:10 +00:00
MachineJumpTableInfo.h [CodeGen] Print jump-table index operands as %jump-table.0 in both MIR and debug output 2017-12-13 10:30:59 +00:00
MachineLoopInfo.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
MachineMemOperand.h Fix type mismatch between MachineMemOperand constructor and accessors. NFC 2018-04-09 18:42:19 +00:00
MachineModuleInfo.h MachineModuleInfo: Remove unused function; NFC 2017-12-15 22:22:42 +00:00
MachineModuleInfoImpls.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-10-10 22:33:29 +00:00
MachineOperand.h Reapplying r331819 [GlobalISel][Legalizer] More concise and faster widenScalar, NFC 2018-05-09 17:28:18 +00:00
MachineOptimizationRemarkEmitter.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
MachineOutliner.h [MachineOutliner] Assert that Liveness tracking is accurate (NFC) 2018-07-07 08:02:19 +00:00
MachinePassRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-26 22:44:03 +00:00
MachinePostDominators.h [Dominators] Change Roots type to SmallVector 2017-07-26 18:27:39 +00:00
MachineRegionInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-01 23:25:02 +00:00
MachineRegisterInfo.h [GlobalISel] NFCI, Getting GlobalISel ~5% faster 2018-05-23 21:12:02 +00:00
MachineScheduler.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
MachineSSAUpdater.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-09-11 23:00:48 +00:00
MachineTraceMetrics.h Recommit [MachineCombiner] Update instruction depths incrementally for large BBs. 2017-09-20 11:54:37 +00:00
MachORelocation.h
MacroFusion.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
MIRPrinter.h MIParser/MIRPrinter: Compute block successors if not explicitely specified 2017-05-05 21:09:30 +00:00
MIRYamlMapping.h [MIR] Add support for debug metadata for fixed stack objects 2018-04-25 18:58:06 +00:00
ParallelCG.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Passes.h [MachineOutliner] Add support for target-default outlining. 2018-06-30 03:56:03 +00:00
PBQPRAConstraint.h Remove @brief commands from doxygen comments, too. 2018-05-01 16:10:38 +00:00
PreISelIntrinsicLowering.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
PseudoSourceValue.h Add AddresSpace to PseudoSourceValue. 2017-09-14 20:53:51 +00:00
ReachingDefAnalysis.h [ReachingDefAnalysis] Fix what I assume to be a typo ReachingDedDefaultVal->ReachingDefDefaultVal. 2018-03-20 20:53:21 +00:00
RegAllocPBQP.h Remove @brief commands from doxygen comments, too. 2018-05-01 16:10:38 +00:00
RegAllocRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-07 23:53:32 +00:00
RegisterClassInfo.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
RegisterPressure.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
RegisterScavenging.h RegScavenging: Add scavengeRegisterBackwards() 2017-06-17 02:08:18 +00:00
RegisterUsageInfo.h RegisterUsageInfo.h: Add missing header for complete type needed for DenseMap traits 2017-10-24 21:29:10 +00:00
ResourcePriorityQueue.h Fix a bunch more layering of CodeGen headers that are in Target 2017-11-17 01:07:10 +00:00
RuntimeLibcalls.def Add support for emitting libcalls for x86_fp80 -> fp128 and vice-versa 2018-01-17 22:29:16 +00:00
RuntimeLibcalls.h [IR][CodeGen] Remove dependency on EVT from IR/Function.cpp. Move EVT to CodeGen layer. 2018-03-29 17:21:10 +00:00
ScheduleDAG.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
ScheduleDAGInstrs.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
ScheduleDAGMutation.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-22 22:32:51 +00:00
ScheduleDFS.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
ScheduleHazardRecognizer.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-22 22:32:51 +00:00
SchedulerRegistry.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-06 22:22:41 +00:00
ScoreboardHazardRecognizer.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-02-22 22:32:51 +00:00
SDNodeProperties.td TableGen: Allow setting SDNodeProperties on intrinsics 2017-12-20 19:36:28 +00:00
SelectionDAG.h [SelectionDAG] Split float and integer isKnownNeverZero tests 2018-07-07 18:17:14 +00:00
SelectionDAGAddressAnalysis.h [DAG] Teach BaseIndexOffset to correctly handle with indexed operations 2018-01-08 16:21:35 +00:00
SelectionDAGISel.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
SelectionDAGNodes.h [SelectionDAG] Remove debug locations from ConstantSD(FP)Nodes 2018-06-25 17:06:18 +00:00
SelectionDAGTargetInfo.h [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-09-13 21:15:20 +00:00
SlotIndexes.h [DebugInfo] Examine all uses of isDebugValue() for debug instructions. 2018-05-09 02:42:00 +00:00
StackMaps.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
StackProtector.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
TailDuplicator.h Remove unnecessary includes; NFC 2017-12-13 02:51:01 +00:00
TargetCallingConv.h [IR][CodeGen] Remove dependency on EVT from IR/Function.cpp. Move EVT to CodeGen layer. 2018-03-29 17:21:10 +00:00
TargetFrameLowering.h Correct dwarf unwind information in function epilogue 2018-04-24 10:32:08 +00:00
TargetInstrInfo.h [MachineOutliner] Fix typo in getOutliningCandidateInfo function name 2018-07-04 15:37:08 +00:00
TargetLowering.h [X86][TLI] DAGCombine: Unfold variable bit-clearing mask to two shifts. 2018-07-09 19:06:42 +00:00
TargetLoweringObjectFileImpl.h Revert "Add support for generating a call graph profile from Branch Frequency Info." 2018-06-28 13:15:03 +00:00
TargetOpcodes.h Fix layering of CodeGen/TargetOpcodes.def by moving it to Support 2018-03-23 23:58:27 +00:00
TargetPassConfig.h Fix typos of occurred and occurrence 2018-01-24 10:33:39 +00:00
TargetRegisterInfo.h GlobalISel: Use a callback to compute constrained reg class for unallocatble registers 2018-05-03 21:44:16 +00:00
TargetSchedule.h [CodeGen] assume max/default throughput for unspecified instructions 2018-06-05 23:34:45 +00:00
TargetSubtargetInfo.h Remove \brief commands from doxygen comments. 2018-05-01 15:54:18 +00:00
UnreachableBlockElim.h [PM] Port UnreachableBlockElim to the new Pass Manager 2016-07-08 03:32:49 +00:00
ValueTypes.h [IR][CodeGen] Remove dependency on EVT from IR/Function.cpp. Move EVT to CodeGen layer. 2018-03-29 17:21:10 +00:00
ValueTypes.td NFC Fix a comment in ValueTypes.td 2018-06-07 23:32:18 +00:00
VirtRegMap.h Remove @brief commands from doxygen comments, too. 2018-05-01 16:10:38 +00:00
WasmEHFuncInfo.h Fix WasmEHFuncInfo.h to include what it uses 2018-06-20 21:43:49 +00:00
WinEHFuncInfo.h [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-03 00:22:41 +00:00