| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 143223
|
| |
|
|
|
|
| |
the common case (-O0, no always_inline) fast.
llvm-svn: 143222
|
| |
|
|
|
|
| |
from r143097.
llvm-svn: 143098
|
| |
|
|
| |
llvm-svn: 143052
|
| |
|
|
|
|
|
|
|
| |
itself via an asm label.
available_externally functions are supposed to correspond to an external
function, and that is not the case in the examples in pr9614.
llvm-svn: 143049
|
| |
|
|
| |
llvm-svn: 142894
|
| |
|
|
| |
llvm-svn: 142883
|
| |
|
|
|
|
|
|
| |
for the function type. Update a testcase accordingly.
Patch initially by Anders Waldenborg!
llvm-svn: 142700
|
| |
|
|
| |
llvm-svn: 142699
|
| |
|
|
|
|
|
| |
closer to what GCC does, except that GCC also checks that the inodes for $PWD
and '.' match.
llvm-svn: 142633
|
| |
|
|
| |
llvm-svn: 142285
|
| |
|
|
|
|
|
|
| |
an atomic type rather than an atomic type itself just to save some implementation pain; I can change that if it seems worthwhile.
I think this is the last hook needed for <atomic> besides defines for ATOMIC_CHAR_LOCK_FREE and friends.
llvm-svn: 142281
|
| |
|
|
|
|
|
|
|
| |
hasIntegerRepresentation() used to always return false for vectors, but since it was changed, it also
changed the return type of a compare of two unsigned vectors to be unsigned. This patch removes the check for hasIntegerRepresentation since its not needed and returns the appropriate signed type.
I added a new test case and updated exisiting test cases that assumed an unsigned result.
llvm-svn: 142250
|
| |
|
|
| |
llvm-svn: 142017
|
| |
|
|
|
|
| |
_Atomic types.
llvm-svn: 142002
|
| |
|
|
| |
llvm-svn: 141973
|
| |
|
|
|
|
| |
-std=c++0x. Patch by Ahmed Charles!
llvm-svn: 141900
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Start handling debug line and scope information better:
Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.
Finishes off the rest of rdar://10246360
after fixing a few bugs that were exposed in gdb testsuite testing.
llvm-svn: 141893
|
| |
|
|
|
|
| |
the same behavior of gcc by keeping the attribute out of the function type.
llvm-svn: 141803
|
| |
|
|
| |
llvm-svn: 141796
|
| |
|
|
|
|
|
|
|
|
|
| |
Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.
Finishes off the rest of rdar://10246360
llvm-svn: 141732
|
| |
|
|
|
|
| |
libcalls.
llvm-svn: 141723
|
| |
|
|
| |
llvm-svn: 141632
|
| |
|
|
| |
llvm-svn: 141622
|
| |
|
|
| |
llvm-svn: 141002
|
| |
|
|
| |
llvm-svn: 140243
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
if the definition has a non-variadic prototype with compatible
parameters. Therefore, the default rule for such calls must be to
use a non-variadic convention. Achieve this by casting the callee to
the function type with which it is required to be compatible, unless
the target specifically opts out and insists that unprototyped calls
should use the variadic rules. The only case of that I'm aware of is
the x86-64 convention, which passes arguments the same way in both
cases but also sets a small amount of extra information; here we seek
to maintain compatibility with GCC, which does set this when calling
an unprototyped function.
Addresses PR10810 and PR10713.
llvm-svn: 140241
|
| |
|
|
|
|
|
|
| |
"_Complex float x = {1.0f, 2.0f};". See changes to docs/LanguageExtensions.html for a longer description.
<rdar://problem/9397672>.
llvm-svn: 140090
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This model uses the 'landingpad' instruction, which is pinned to the top of the
landing pad. (A landing pad is defined as the destination of the unwind branch
of an invoke instruction.) All of the information needed to generate the correct
exception handling metadata during code generation is encoded into the
landingpad instruction.
The new 'resume' instruction takes the place of the llvm.eh.resume intrinsic
call. It's lowered in much the same way as the intrinsic is.
llvm-svn: 140049
|
| |
|
|
|
|
|
|
| |
posix-unlike hosts.
Without -ffreestanding, clang tries to seek /usr/include/stdlib.h in host filesystem, even on Windows hosts.
llvm-svn: 139899
|
| |
|
|
|
|
|
|
| |
alignment (which probably has little effect in practice, but better to get it right). Make the load in _mm_loadh_pi and _mm_loadl_pi a single LLVM IR instruction to make optimizing easier for CodeGen.
rdar://10054986
llvm-svn: 139874
|
| |
|
|
|
|
| |
Make clang use Acquire loads and Release stores where necessary.
llvm-svn: 139650
|
| |
|
|
| |
llvm-svn: 139648
|
| |
|
|
| |
llvm-svn: 139643
|
| |
|
|
| |
llvm-svn: 139464
|
| |
|
|
| |
llvm-svn: 139462
|
| |
|
|
| |
llvm-svn: 139460
|
| |
|
|
|
|
|
|
| |
a test failure in CodeGen/palignr.c, which has been marked
XFAIL for the time being. A bug has been filed at PR10901
for this issue.
llvm-svn: 139457
|
| |
|
|
| |
llvm-svn: 139455
|
| |
|
|
|
|
|
| |
annotate global, local variables, struct fields, or arbitrary statements (using
the __builtin_annotation), rdar://8037476.
llvm-svn: 139423
|
| |
|
|
|
|
|
|
| |
along with the new insert point.
Fixes PR10829
llvm-svn: 139416
|
| |
|
|
|
|
|
|
| |
feature akin to the ARC runtime checks. Removes a terrible hack where
IR gen needed to find the declarations of those symbols in the translation
unit.
llvm-svn: 139404
|
| |
|
|
|
|
|
|
|
|
| |
These functions return a second value by writing to a pointer argument,
so they cannot be marked 'readnone' which implies that they don't access
memory.
<rdar://problem/10070234>
llvm-svn: 139319
|
| |
|
|
|
|
| |
ParmVarDecl's. PR10878.
llvm-svn: 139224
|
| |
|
|
|
|
|
|
|
|
| |
(which will go away). LLVM CodeGen does almost exactly the same thing with these and the old intrinsics, so I'm reasonably confident this will not break anything.
There are still a few issues which need to be resolved with code generation for atomic load and store, so I'm not converting the places which need those for now.
I'm not entirely sure what to do about __builtin_llvm_memory_barrier: the fence instruction doesn't expose all the possibilities which can be expressed by __builtin_llvm_memory_barrier. I would appreciate hearing from anyone who is using this intrinsic.
llvm-svn: 139216
|
| |
|
|
| |
llvm-svn: 139043
|
| |
|
|
|
|
| |
// rdar://10033896
llvm-svn: 139041
|
| |
|
|
| |
llvm-svn: 139029
|
| |
|
|
|
|
| |
// rdar://10033896
llvm-svn: 139020
|
| |
|
|
|
|
|
|
|
|
| |
emit call results into potentially aliased slots. This allows us
to properly mark indirect return slots as noalias, at the cost
of requiring an extra memcpy when assigning an aggregate call
result into a l-value. It also brings us into compliance with
the x86-64 ABI.
llvm-svn: 138599
|