| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 71776
|
| |
|
|
|
|
|
|
| |
coercion to be specified which truncates padding bits. It would be
nice to still have the assert, but we don't have any API call for the
unpadding size of a type yet.
llvm-svn: 71695
|
| |
|
|
|
|
| |
rdar://6880573
llvm-svn: 71637
|
| |
|
|
| |
llvm-svn: 71595
|
| |
|
|
|
|
| |
don't need special treatment for unions.
llvm-svn: 71559
|
| |
|
|
|
|
|
| |
register.
- Merge algorithm was returning MEMORY as it should.
llvm-svn: 71556
|
| |
|
|
|
|
| |
spotted by Eli!
llvm-svn: 71490
|
| |
|
|
| |
llvm-svn: 71484
|
| |
|
|
| |
llvm-svn: 71461
|
| |
|
|
| |
llvm-svn: 71361
|
| |
|
|
|
|
|
| |
- {return-types,single-args}-{32,64} pass the first 1k ABI tests with
bit-fields enabled.
llvm-svn: 71272
|
| |
|
|
|
|
|
|
|
| |
to use a wide enough type. This might be wider than the "single
element"'s type in the presence of padding bit-fields.
- Darwin x86_32 now passes the first 1k ABI tests with bit-field
generation enabled.
llvm-svn: 71270
|
| |
|
|
|
|
| |
element" structures.
llvm-svn: 71266
|
| |
|
|
|
|
|
| |
- This turns out to be a no-op now that most of the handling for
everything else is in place.
llvm-svn: 71261
|
| |
|
|
|
|
|
| |
- This eliminates 5/1000 failures on return-types-32, on the current
ABITest config.
llvm-svn: 71250
|
| |
|
|
|
|
|
|
|
| |
of the underlying _N builtin, not the the type of the pointee of the
actual type. This ensures that atomics involving pointers end up
using the correct integer type when they are resolved, avoiding
aborts in codegen.
llvm-svn: 71218
|
| |
|
|
|
|
|
|
|
| |
semantic rules that gcc and icc use. This implements the variadic
and concrete versions as builtins and has sema do the
disambiguation. There are probably a bunch of details to finish up
but this seems like a large monotonic step forward :)
llvm-svn: 71212
|
| |
|
|
| |
llvm-svn: 71194
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- This is a WIP...
- This adds -march= handling to the driver, and fixes the defaulting
of -mcpu on Darwin (which was using the wrong test).
Instead of handling -m{sse, ...} in the driver, pass them to clang-cc as
-target-feature [+-]name
In clang-cc, communicate with the (clang) target to discover the legal
features of a target, and the features which are enabled based on
-mcpu. This is currently hardcoded just enough to not be a feature
regression, we need to get this information from the backend's
TableGen information somehow.
This is used to construct the full list of features which are being
used, which is in turn used to initialize the predefines.
llvm-svn: 71061
|
| |
|
|
|
|
|
|
| |
to go back and clean up existing uses of the bitcasted function. This
is not just an optimization: it is required for correctness to get
always inline functions to work, see testcases in function-attributes.c.
llvm-svn: 70971
|
| |
|
|
| |
llvm-svn: 70825
|
| |
|
|
| |
llvm-svn: 70794
|
| |
|
|
| |
llvm-svn: 70786
|
| |
|
|
|
|
| |
this fixes http://llvm.org/bugs/show_bug.cgi?id=3373#c20
llvm-svn: 70685
|
| |
|
|
|
|
| |
from the asm string, but reject references to the smaller one.
llvm-svn: 70679
|
| |
|
|
|
|
| |
the input. This is part of PR3373.
llvm-svn: 70677
|
| |
|
|
| |
llvm-svn: 70676
|
| |
|
|
|
|
| |
like bitfields. incidentally llvm-gcc crashes on this sort of thing also. :)
llvm-svn: 70675
|
| |
|
|
| |
llvm-svn: 70672
|
| |
|
|
| |
llvm-svn: 70571
|
| |
|
|
|
|
| |
definitions of statics
llvm-svn: 70543
|
| |
|
|
|
|
| |
Radar 6838889
llvm-svn: 70525
|
| |
|
|
| |
llvm-svn: 70523
|
| |
|
|
|
|
| |
constant initializers.
llvm-svn: 70483
|
| |
|
|
|
|
| |
have support for __divti3 and friends.
llvm-svn: 70480
|
| |
|
|
|
|
|
|
| |
compatible with VC++ and GCC. The codegen/mangling angle hasn't
been fully ironed out yet. Note that we accept int128_t even in
32-bit mode, unlike gcc.
llvm-svn: 70464
|
| |
|
|
|
|
|
|
|
|
|
| |
mode and in the presence of __gnu_inline__ attributes. This should fix
both PR3989 and PR4069.
As part of this, we now keep track of all of the attributes attached
to each declaration even after we've performed declaration
merging. This fixes PR3264.
llvm-svn: 70292
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scheme to be more useful.
The new scheme introduces a set of categories that should be more
readable, and also reflects what we want to consider as an extension
more accurately. Specifically, it makes the "what is a keyword"
determination accurately reflect whether the keyword is a GNU or
Microsoft extension.
I also introduced separate flags for keyword aliases; this is useful
because the classification of the aliases is mostly unrelated to the
classification of the original keyword.
This patch treats anything that's in the implementation
namespace (prefixed with "__", or "_X" where "X" is any upper-case
letter) as a keyword without marking it as an extension. This is
consistent with the standards in that an implementation is allowed to define
arbitrary extensions in the implementation namespace without violating
the standard. This gets rid of all the nasty "extension used" warnings
for stuff like __attribute__ in -pedantic mode. We still warn for
extensions outside of the the implementation namespace, like typeof.
If someone wants to implement -Wextensions or something like that, we
could add additional information to the keyword table.
This also removes processing for the unused "Boolean" language option;
such an extension isn't supported on any other C implementation, so I
don't see any point to adding it.
The changes to test/CodeGen/inline.c are required because previously, we
weren't actually disabling the "inline" keyword in -std=c89 mode.
I'll remove Boolean and NoExtensions from LangOptions in a follow-up
commit.
llvm-svn: 70281
|
| |
|
|
|
|
|
|
| |
member.
Also, spell bitfield more consistently as bit-field.
llvm-svn: 70220
|
| |
|
|
|
|
| |
make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>.
llvm-svn: 70098
|
| |
|
|
| |
llvm-svn: 70067
|
| |
|
|
|
|
|
| |
multiple declarations of the function. Should fix PR3989 and
<rdar://problem/6818429>.
llvm-svn: 69905
|
| |
|
|
|
|
|
|
| |
preprocessed source file without -main-file-name. In this case, CDDebugInfo is not able identify correct main source file becase SM.isFromMainFile() returns true for locations from header files as well as locations from main source file.
This patch takes conservative approach by not emitting more then one compile unit with isMain bit set.
llvm-svn: 69902
|
| |
|
|
|
|
|
|
|
|
| |
extern. Previously we would warn about it and ignore the attribute.
This is incorrect, it should be handled as a c89 "extern inline"
function. Many thanks to Matthieu Castet for pointing this out and
beating me over the head until I got it.
PR3988: extern inline function are not externally visible
llvm-svn: 69756
|
| |
|
|
| |
llvm-svn: 69747
|
| |
|
|
|
|
|
| |
but crashed codegen. Fix this to report the name of the llvm function.
This fixes rdar://6808051
llvm-svn: 69658
|
| |
|
|
|
|
| |
PR4023
llvm-svn: 69618
|
| |
|
|
| |
llvm-svn: 69617
|
| |
|
|
|
|
| |
subsequently crashed).
llvm-svn: 69567
|
| |
|
|
|
|
| |
Adapted from patch by Tim Northover.
llvm-svn: 69566
|