| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
captured block variable layout meta-data. No intended change
in functionality.
llvm-svn: 167549
|
|
|
|
|
|
|
| |
a bug in the inliner still causes the wrong thing to happen at -O2 and above
(PR14116).
llvm-svn: 167534
|
|
|
|
|
|
|
|
|
| |
This is useful because unnamed bitfields can have effects on the
offsets which are not otherwise reflected in the DWARF information.
<rdar://problem/12629719>
llvm-svn: 167503
|
|
|
|
|
|
|
|
| |
works between the modules.
No functionality change on Darwin/Windows.
This fixes PR11480.
llvm-svn: 167496
|
|
|
|
|
|
| |
coverage of this code is.
llvm-svn: 167495
|
|
|
|
| |
llvm-svn: 167487
|
|
|
|
| |
llvm-svn: 167476
|
|
|
|
|
|
|
|
|
|
|
|
| |
disabling byval, we set realign to true.
It will perform an aligned alloca, and call memcpy to copy the byval
argument to the local variable.
Change the size threshold back to 64 bytes.
rdar://12596507
llvm-svn: 167440
|
|
|
|
| |
llvm-svn: 167437
|
|
|
|
|
|
| |
refactor the code.
llvm-svn: 167436
|
|
|
|
|
|
| |
-fsanitize=divide-by-zero.
llvm-svn: 167433
|
|
|
|
| |
llvm-svn: 167431
|
|
|
|
|
|
|
|
| |
token. This is important because the first token could actually be
after an #include that triggers a module import, which might use
either Sema or the AST consumer before it would have been initialized.
llvm-svn: 167423
|
|
|
|
|
|
|
|
|
|
|
| |
the type alignment of the byval argument. This patch will disable byval in this case,
it also increases the size threshold for turning on byval.
A backend fix will be attempted.
rdar://12596507
llvm-svn: 167416
|
|
|
|
|
|
|
| |
checks to enable. Remove frontend support for -fcatch-undefined-behavior,
-faddress-sanitizer and -fthread-sanitizer now that they don't do anything.
llvm-svn: 167413
|
|
|
|
|
|
| |
*Sanitizer to Sanitize* in preparation for later patches.
llvm-svn: 167405
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
zero-extended to 64 bits. This information is currently provided to
the back end by setting "signext" or "zeroext" attributes. However,
this is done only for integer types *smaller* than i32, not for i32
itself. This causes clang to generate code violating the ABI, which
results in a failure of the tramp3d-v4 test case (due to calling a
system library routine without ABI-required extension).
This patch implements custom versions of classifyArgumentType and
classifyReturnType for PPC64_SVR4_ABIInfo, which are the same as the
default versions except that they also classify "int" and "unsigned int"
as types needing extending. This fixed tramp3d-v4 on PowerPC64.
llvm-svn: 167393
|
|
|
|
|
|
| |
well as couple of tests which were not being excercised because of TYPOs.
llvm-svn: 167374
|
|
|
|
|
|
| |
of class_type).
llvm-svn: 167336
|
|
|
|
|
|
| |
mrr mode.
llvm-svn: 167331
|
|
|
|
| |
llvm-svn: 167308
|
|
|
|
| |
llvm-svn: 167266
|
|
|
|
| |
llvm-svn: 167261
|
|
|
|
| |
llvm-svn: 167260
|
|
|
|
|
|
| |
separate functions, since they share essentially no code.
llvm-svn: 167259
|
|
|
|
|
|
|
| |
g++'s -ftrapv, failed to call the -ftrapv overflow handler, and are still
available under -fcatch-undefined-behavior.
llvm-svn: 167258
|
|
|
|
| |
llvm-svn: 167249
|
|
|
|
|
|
|
|
| |
generation for captured block variables in arc mode. This includes
inlined version of the meta-data when it can be done. It also includes
severat tests. This is wip. // rdar://12184410.
llvm-svn: 167241
|
|
|
|
|
|
|
|
| |
We want the diagnostic, and if the load is optimized away, we still want to
trap it. Stop checking non-default address spaces; that doesn't work in
general.
llvm-svn: 167219
|
|
|
|
|
|
|
| |
According to the spec, we can backfill VFP registers that were skipped due
to alignment constraints.
llvm-svn: 167159
|
|
|
|
|
|
|
| |
If HA can only partially fit into VFP registers, we add padding to make sure
HA will be on stack and later VFP CPRCs will be on stack as well.
llvm-svn: 167058
|
|
|
|
|
|
| |
layout meta-data. It is currently off (so no tests). This is wip.
llvm-svn: 167047
|
|
|
|
| |
llvm-svn: 167021
|
|
|
|
| |
llvm-svn: 166992
|
|
|
|
| |
llvm-svn: 166957
|
|
|
|
| |
llvm-svn: 166946
|
|
|
|
| |
llvm-svn: 166924
|
|
|
|
|
|
| |
It is currently off (so no tests). This is wip.
llvm-svn: 166892
|
|
|
|
| |
llvm-svn: 166853
|
|
|
|
| |
llvm-svn: 166849
|
|
|
|
| |
llvm-svn: 166848
|
|
|
|
|
|
| |
can be refactored and used in Sema.
llvm-svn: 166847
|
|
|
|
| |
llvm-svn: 166832
|
|
|
|
|
|
| |
<rdar://problem/12547611>.
llvm-svn: 166825
|
|
|
|
| |
llvm-svn: 166823
|
|
|
|
|
|
| |
flags for __block variable meta-data.
llvm-svn: 166811
|
|
|
|
|
|
|
|
|
| |
extern "C", its method definitions must be IRGen'ed
before meta-data for class is generated. Otherwise,
IRGen crashes (to say the least).
// rdar://12581683
llvm-svn: 166809
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
varargs parameter passing.
A strict reading of the ABI indicates that any argument with alignment greater
than 8 may require skipping doublewords in the parameter save area to align
the argument, and hence require skipping GPRs. In practice, this is not done
by GCC. The alignment restriction is used for internal alignment of a
structure, but a structure with 16-byte alignment, for example, is not
itself 16-byte aligned in the parameter save area. Although this is messy,
it has become the de facto standard used in building existing libraries.
My initial varargs support followed the ABI language, but not the de facto
standard. Running the GCC compatibility test suite exposed this issue, and
indeed showed that LLVM didn't pass parameters self-consistently with my
original logic. Removing the additional alignment logic allows the affected
tests to now pass.
I modified the ppc64-varargs-struct.c test case to remove the existing test
for generation of alignment code, which is no longer appropriate.
Built and tested on powerpc64-unknown-linux-gnu with no new regressions.
llvm-svn: 166805
|
|
|
|
|
|
| |
variable descriptor captured by a block.
llvm-svn: 166746
|
|
|
|
| |
llvm-svn: 166744
|