llvm-6502/include/llvm
Robin Morisset 58bca6e8ec [Power] Use AtomicExpandPass for fence insertion, and use lwsync where appropriate
Summary:
This patch makes use of AtomicExpandPass in Power for inserting fences around
atomic as part of an effort to remove fence insertion from SelectionDAGBuilder.
As a big bonus, it lets us use sync 1 (lightweight sync, often used by the mnemonic
lwsync) instead of sync 0 (heavyweight sync) in many cases.

I also added a test, as there was no test for the barriers emitted by the Power
backend for atomic loads and stores.

Test Plan: new test + make check-all

Reviewers: jfb

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@218331 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-23 20:46:49 +00:00
..
ADT [ADT/IntrusiveRefCntPtr] Give friend access to IntrusiveRefCntPtr<X> so the relevant move constructor can access 'Obj'. 2014-09-23 06:06:43 +00:00
Analysis Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
AsmParser Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
Bitcode Spell out the template args for compilers having issues with the injected class 2014-09-15 16:13:33 +00:00
CodeGen [MCJIT] Nuke MachineRelocation and MachineCodeEmitter. Now that the old JIT is 2014-09-23 18:08:47 +00:00
Config Regenerate autoconf, previous updates to the configury haven't 2014-07-28 22:00:44 +00:00
DebugInfo Fix build faliure introduced by r217129. 2014-09-04 06:35:09 +00:00
ExecutionEngine [MCJIT] Remove a few more references to JITMemoryManager that survived r218316. 2014-09-23 17:10:24 +00:00
IR [Power] Use AtomicExpandPass for fence insertion, and use lwsync where appropriate 2014-09-23 20:46:49 +00:00
IRReader Pass a MemoryBufferRef when we can avoid taking ownership. 2014-08-26 21:49:01 +00:00
LineEditor
Linker IR: Add COMDATs to the IR 2014-06-27 18:19:56 +00:00
LTO unique_ptrify LTOCodeGenerator::NativeObjectFile 2014-09-02 18:21:06 +00:00
MC ms-inline-asm: Fix parsing label names inside bracket expressions 2014-09-22 20:40:36 +00:00
Object LTO: introduce object file-based on-disk module format. 2014-09-18 21:28:49 +00:00
Option Add an overload of getLastArgNoClaim taking two OptSpecifiers. 2014-09-12 19:42:53 +00:00
ProfileData llvm-cov: Allow creating CoverageMappings from filenames 2014-09-20 17:19:52 +00:00
Support Fixup for r217830. Don't do left shifts on negative values 2014-09-17 18:23:07 +00:00
TableGen [TableGen] Fully resolve class-instance values before defs in multiclasses 2014-09-16 17:14:13 +00:00
Target Add AtomicExpandPass::bracketInstWithFences, and use it whenever getInsertFencesForAtomic would trigger in SelectionDAGBuilder 2014-09-23 20:31:14 +00:00
Transforms Reapply fix in r217988 (reverted in r217989) and remove the alternative fix committed in r217987. 2014-09-17 22:27:36 +00:00
CMakeLists.txt Remove llvm_headers_do_not_build for the benefit of XCode and Visual Studio users. 2014-08-14 00:51:47 +00:00
InitializePasses.h Add a new pass FunctionTargetTransformInfo. This pass serves as a 2014-09-18 00:34:14 +00:00
LinkAllIR.h
LinkAllPasses.h Added missing blank 2014-09-10 17:52:27 +00:00
module.modulemap Nuke MCAnalysis. 2014-09-02 22:32:20 +00:00
module.modulemap.build
Pass.h
PassAnalysisSupport.h
PassInfo.h
PassManager.h
PassRegistry.h
PassSupport.h Move GlobalMerge from Transform to CodeGen. 2014-06-13 22:57:59 +00:00