| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 64961
|
| |
|
|
|
|
|
|
| |
things passed in mixed registers.
This knocks out 8 x86_64 failures.
llvm-svn: 64958
|
| |
|
|
|
|
| |
ir gen.
llvm-svn: 64954
|
| |
|
|
| |
llvm-svn: 64944
|
| |
|
|
|
|
| |
objc gc type attributes.
llvm-svn: 64935
|
| |
|
|
|
|
|
|
| |
This make warn-weak-field.m to fail (subject of
a followup patch).
attr-objc-gc.m no passes.
llvm-svn: 64925
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Return of _Complex long double used wrong type.
2. va_arg of types passed in two SSE registers didn't account for
extra space in register save area.
Down to 18 failures on gcc/compat/x86_64. Combined 32/64 results are:
--
=== gcc Summary ===
# of expected passes 1292
# of unexpected failures 34
# of unsupported tests 2
--
llvm-svn: 64880
|
| |
|
|
|
|
| |
Build of the parm list with the iterator, not end().
llvm-svn: 64851
|
| |
|
|
| |
llvm-svn: 64804
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
IRgen no longer relies on isConstantInitializer, instead we just try
to emit the constant. If that fails then in C we emit an error
unsupported (this occurs when Sema accepted something that it doesn't
know how to fold, and IRgen doesn't know how to emit) and in C++ we
emit a guarded initializer.
This ends up handling a few more cases, because IRgen was actually
able to emit some of the constants Sema accepts but can't Evaluate().
For example, PR3398.
llvm-svn: 64780
|
| |
|
|
| |
llvm-svn: 64779
|
| |
|
|
|
|
|
| |
general use; as for, objc2's gc type attributes. No
change in functionality.
llvm-svn: 64778
|
| |
|
|
| |
llvm-svn: 64769
|
| |
|
|
| |
llvm-svn: 64768
|
| |
|
|
| |
llvm-svn: 64756
|
| |
|
|
| |
llvm-svn: 64727
|
| |
|
|
| |
llvm-svn: 64701
|
| |
|
|
| |
llvm-svn: 64692
|
| |
|
|
|
|
| |
nonfragile abi.
llvm-svn: 64690
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Define pow[lf]?, sqrt[lf]? as builtins.
- Add -fmath-errno option which binds to LangOptions.MathErrno
- Add new builtin flag Builtin::Context::isConstWithoutErrno for
functions which can be marked as const if errno isn't respected for
math functions. Sema automatically marks these functions as const
when they are defined, if MathErrno=0.
- IRgen uses const attribute on sqrt and pow library functions to
decide if it can use the llvm intrinsic.
llvm-svn: 64689
|
| |
|
|
|
|
|
|
|
|
|
| |
emit two volatile loads for:
typedef __attribute__(( ext_vector_type(4) )) float float4;
float test(volatile float4 *P) {
return P->x+P->y;
}
llvm-svn: 64683
|
| |
|
|
|
|
| |
suggestion
llvm-svn: 64681
|
| |
|
|
|
|
| |
- Fix test case to not only have negative tests.
llvm-svn: 64674
|
| |
|
|
| |
llvm-svn: 64667
|
| |
|
|
|
|
| |
miscompiling.
llvm-svn: 64647
|
| |
|
|
|
|
| |
creating valid LLVM structures (although they work fined).
llvm-svn: 64580
|
| |
|
|
|
|
| |
Thanks Anders.
llvm-svn: 64571
|
| |
|
|
|
|
| |
starting to work for blocks.
llvm-svn: 64570
|
| |
|
|
|
|
|
| |
Now we are pretty close to be in sync with objc's classic
abi when it comes to passing dejagnu objc executable tests.
llvm-svn: 64569
|
| |
|
|
|
|
|
|
| |
which consequently caused a Seg fault. during meta-data
generation. It also addresses an issue related to
late binding of newly synthesize ivars (when we support it).
llvm-svn: 64563
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
about, whether they are builtins or not. Use this to add the
appropriate "format" attribute to NSLog, NSLogv, asprintf, and
vasprintf, and to translate builtin attributes (from Builtins.def)
into actual attributes on the function declaration.
Use the "printf" format attribute on function declarations to
determine whether we should do format string checking, rather than
looking at an ad hoc list of builtins and "known" function names.
Be a bit more careful about when we consider a function a "builtin" in
C++.
llvm-svn: 64561
|
| |
|
|
|
|
| |
ASTContext types.
llvm-svn: 64533
|
| |
|
|
|
|
|
| |
important for both keeping the generated LLVM simple and for ensuring
that integer types are passed/promoted correctly.
llvm-svn: 64529
|
| |
|
|
|
|
|
|
| |
we can define builtins such as fprintf, vfprintf, and
__builtin___fprintf_chk. Give a nice error message when we need to
implicitly declare a function like fprintf.
llvm-svn: 64526
|
| |
|
|
|
|
| |
missing-?:-true-value extension.
llvm-svn: 64505
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
etc.) when we perform name lookup on them. This ensures that we
produce the correct signature for these functions, which has two
practical impacts:
1) When we're supporting the "implicit function declaration" feature
of C99, these functions will be implicitly declared with the right
signature rather than as a function returning "int" with no
prototype. See PR3541 for the reason why this is important (hint:
GCC always predeclares these functions).
2) If users attempt to redeclare one of these library functions with
an incompatible signature, we produce a hard error.
This patch does a little bit of work to give reasonable error
messages. For example, when we hit case #1 we complain that we're
implicitly declaring this function with a specific signature, and then
we give a note that asks the user to include the appropriate header
(e.g., "please include <stdlib.h> or explicitly declare 'malloc'"). In
case #2, we show the type of the implicit builtin that was incorrectly
declared, so the user can see the problem. We could do better here:
for example, when displaying this latter error message we say
something like:
'strcpy' was implicitly declared here with type 'char *(char *, char
const *)'
but we should really print out a fake code line showing the
declaration, like this:
'strcpy' was implicitly declared here as:
char *strcpy(char *, char const *)
This would also be good for printing built-in candidates with C++
operator overloading.
The set of C library functions supported by this patch includes all
functions from the C99 specification's <stdlib.h> and <string.h> that
(a) are predefined by GCC and (b) have signatures that could cause
codegen issues if they are treated as functions with no prototype
returning and int. Future work could extend this set of functions to
other C library functions that we know about.
llvm-svn: 64504
|
| |
|
|
| |
llvm-svn: 64502
|
| |
|
|
| |
llvm-svn: 64500
|
| |
|
|
|
|
| |
- PR3566
llvm-svn: 64492
|
| |
|
|
|
|
|
|
| |
- Fix emission of static functions with constructor attribute while I
was here.
<rdar://problem/6140899> [codegen] "static" and attribute-constructor interact poorly
llvm-svn: 64488
|
| |
|
|
|
|
|
| |
for attribute used support.
- No functionality change.
llvm-svn: 64487
|
| |
|
|
| |
llvm-svn: 64486
|
| |
|
|
| |
llvm-svn: 64482
|
| |
|
|
| |
llvm-svn: 64481
|
| |
|
|
| |
llvm-svn: 64479
|
| |
|
|
| |
llvm-svn: 64476
|
| |
|
|
| |
llvm-svn: 64475
|
| |
|
|
| |
llvm-svn: 64473
|
| |
|
|
|
|
| |
implementation with no category declaration!
llvm-svn: 64470
|
| |
|
|
|
|
| |
- Now at 1274 passes on gcc compat suite vs 1262.
llvm-svn: 64469
|