llvm-6502/include/llvm
Robin Morisset 1ad925ccf8 Refactor AtomicExpandPass and add a generic isAtomic() method to Instruction
Summary:
Split shouldExpandAtomicInIR() into different versions for Stores/Loads/RMWs/CmpXchgs.
Makes runOnFunction cleaner (no more redundant checking/casting), and will help moving
the X86 backend to this pass.

This requires a way of easily detecting which instructions are atomic.
I followed the pattern of mayReadFromMemory, mayWriteOrReadMemory, etc.. in making
isAtomic() a method of Instruction implemented by a switch on the opcodes.

Test Plan: make check

Reviewers: jfb

Subscribers: mcrosier, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217080 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-03 21:29:59 +00:00
..
ADT house cleaning: "Don’t duplicate function or class name at the beginning of the comment." 2014-09-03 20:08:51 +00:00
Analysis
AsmParser
Bitcode Pass a && to getLazyBitcodeModule. 2014-09-03 17:31:46 +00:00
CodeGen [FastISel][tblgen] Rename tblgen generated FastISel functions. NFC. 2014-09-03 20:56:59 +00:00
Config
DebugInfo
ExecutionEngine unique_ptrify a bunch of stuff through RuntimeDyld::loadObject 2014-09-03 19:48:09 +00:00
IR Refactor AtomicExpandPass and add a generic isAtomic() method to Instruction 2014-09-03 21:29:59 +00:00
IRReader
LineEditor
Linker
LTO
MC
Object unique_ptrify IRObjectFile::createIRObjectFile 2014-09-03 17:59:23 +00:00
Option
ProfileData
Support Add writeFileWithSystemEncoding to LibLLVMSuppor. 2014-09-03 20:02:00 +00:00
TableGen
Target Refactor AtomicExpandPass and add a generic isAtomic() method to Instruction 2014-09-03 21:29:59 +00:00
Transforms
CMakeLists.txt
InitializePasses.h
LinkAllIR.h
LinkAllPasses.h
module.modulemap
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassManager.h
PassRegistry.h
PassSupport.h