summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGAtomic.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add CodeGenABITypes.h for use in LLDB.Mark Lacey2013-10-301-0/+1
| | | | | | | | | | | | | | | | | | CodeGenABITypes is a wrapper built on top of CodeGenModule that exposes some of the functionality of CodeGenTypes (held by CodeGenModule), specifically methods that determine the LLVM types appropriate for function argument and return values. I addition to CodeGenABITypes.h, CGFunctionInfo.h is introduced, and the definitions of ABIArgInfo, RequiredArgs, and CGFunctionInfo are moved into this new header from the private headers ABIInfo.h and CGCall.h. Exposing this functionality is one part of making it possible for LLDB to determine the actual ABI locations of function arguments and return values, making it possible for it to determine this for any supported target without hard-coding ABI knowledge in the LLDB code. llvm-svn: 193717
* Thread a SourceLocation into the EmitCheck for "load_invalid_value". This occursNick Lewycky2013-10-021-21/+32
| | | | | | when scalars are loaded / undergo lvalue-to-rvalue conversion. llvm-svn: 191808
* No functionality change. Reflow lines that could fit on one line. Break linesNick Lewycky2013-10-011-6/+3
| | | | | | that had 80-column violations. Remove spurious emacs mode markers on .cpp files. llvm-svn: 191797
* Simplify atomic load/store IRGen.Eli Friedman2013-07-111-44/+20
| | | | | | Also fixes a couple minor bugs along the way; see testcases. llvm-svn: 186049
* Fix style bug introduced in r183033.Ed Schouten2013-05-311-2/+1
| | | | | | | I renamed the function at one point in time, but forgot to fix the layout of the arguments. llvm-svn: 183036
* Add support for optimized (non-generic) atomic libcalls.Ed Schouten2013-05-311-19/+106
| | | | | | | | | | | | | | | | | For integer types of sizes 1, 2, 4 and 8, libcompiler-rt (and libgcc) provide atomic functions that pass parameters by value and return results directly. libgcc and libcompiler-rt only provide optimized libcalls for __atomic_fetch_*, as generic libcalls on non-integer types would make little sense. This means that we can finally make __atomic_fetch_* work on architectures for which we don't provide these operations as builtins (e.g. ARM). This should fix the dreaded "cannot compile this atomic library call yet" error that would pop up once every while. llvm-svn: 183033
* Standardize accesses to the TargetInfo in IR-gen.John McCall2013-04-161-1/+1
| | | | | | Patch by Stephen Lin! llvm-svn: 179638
* Removed #if 0 code that doesn't compiled if uncommented.Rafael Espindola2013-04-141-9/+0
| | | | llvm-svn: 179495
* Promote atomic type sizes up to a power of two, capped byJohn McCall2013-03-071-24/+481
| | | | | | | | MaxAtomicPromoteWidth. Fix a ton of terrible bugs with _Atomic types and (non-intrinsic-mediated) loads and stores thereto. llvm-svn: 176658
* Move the atomics code into its own file.John McCall2013-03-071-0/+485
llvm-svn: 176657
OpenPOWER on IntegriCloud