| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 193692
|
|
|
|
|
|
|
|
| |
adjustment when using -cxx-abi microsoft
Reviewed at http://llvm-reviews.chandlerc.com/D2026
llvm-svn: 193679
|
|
|
|
| |
llvm-svn: 193665
|
|
|
|
|
|
| |
!= 0
llvm-svn: 193661
|
|
|
|
| |
llvm-svn: 193640
|
|
|
|
|
|
|
|
|
| |
the previous argument's ending address to compute the type of the padding
argument.
No intended functionality change.
llvm-svn: 193638
|
|
|
|
|
|
| |
definition and declaration
llvm-svn: 193505
|
|
|
|
| |
llvm-svn: 193376
|
|
|
|
|
|
| |
class metadata for certain deployment targets. // rdar://14802916
llvm-svn: 193359
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
check using the ubsan runtime) and -fsanitize=local-bounds (for the middle-end
check which inserts traps).
Remove -fsanitize=local-bounds from -fsanitize=undefined. It does not produce
useful diagnostics and has false positives (PR17635), and is not a good
compromise position between UBSan's checks and ASan's checks.
Map -fbounds-checking to -fsanitize=local-bounds to restore Clang's historical
behavior for that flag.
llvm-svn: 193205
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a fixed version of r193161. In order to handle
void foo() __attribute__((alias("bar")));
void bar() {}
void zed() __attribute__((alias("foo")));
it is not enough to delay aliases to the end of the TU, we have to do two
passes over them to find if they are defined or not.
This can be implemented by producing alias as we go and just doing the second
pass at the end. This has the advantage that other parts of clang that were
expecting alias to be processed in order don't have to be changed.
This patch also handles cyclic aliases.
llvm-svn: 193188
|
|
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D1977
llvm-svn: 193176
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
undefined names. For example, with this patch we now reject"
This reverts commit r193161.
It broke
void foo() __attribute__((alias("bar")));
void bar() {}
void zed() __attribute__((alias("foo")));
Looks like we have to fix pr17639 first :-(
llvm-svn: 193162
|
|
|
|
|
|
|
|
|
|
|
|
| |
names. For example, with this patch we now reject
void f1(void) __attribute__((alias("g1")));
This patch is implemented in CodeGen. It is quiet a bit simpler and more
compatible with gcc than implementing it in Sema. The downside is that the
errors only fire during -emit-llvm.
llvm-svn: 193161
|
|
|
|
| |
llvm-svn: 193116
|
|
|
|
|
|
|
|
|
| |
This uses function prefix data to store function type information at the
function pointer.
Differential Revision: http://llvm-reviews.chandlerc.com/D1338
llvm-svn: 193058
|
|
|
|
| |
llvm-svn: 192971
|
|
|
|
|
|
| |
These are uncommon and this is better than miscompiling.
llvm-svn: 192923
|
|
|
|
|
|
|
|
| |
class. The instruction class includes the signed saturating doubling
multiply-add long, signed saturating doubling multiply-subtract long, and
the signed saturating doubling multiply long instructions.
llvm-svn: 192909
|
|
|
|
|
|
| |
Every other function in Redeclarable.h was using Decl instead of Declaration.
llvm-svn: 192900
|
|
|
|
| |
llvm-svn: 192875
|
|
|
|
|
|
| |
function, not the context of the context.
llvm-svn: 192862
|
|
|
|
| |
llvm-svn: 192845
|
|
|
|
| |
llvm-svn: 192844
|
|
|
|
|
|
| |
Patch by Katya Romanova.
llvm-svn: 192832
|
|
|
|
|
|
|
|
| |
destructors in the presence of virtual bases
Reviewed at http://llvm-reviews.chandlerc.com/D1939
llvm-svn: 192822
|
|
|
|
| |
llvm-svn: 192807
|
|
|
|
|
|
| |
value and unsigned saturating accumulate of signed value instructions.
llvm-svn: 192801
|
|
|
|
| |
llvm-svn: 192736
|
|
|
|
|
|
| |
scalar signed saturating negate instructions.
llvm-svn: 192734
|
|
|
|
|
|
|
|
|
| |
If a class is using the unspecified inheritance model for member
pointers and later we find the class is defined to use single
inheritance, zero out the vbptr offset field of the member pointer when
it is formed.
llvm-svn: 192664
|
|
|
|
| |
llvm-svn: 192597
|
|
|
|
| |
llvm-svn: 192570
|
|
|
|
|
|
|
|
| |
Calling convention attributes can add sugar to methods that we have to
look through. This fixes an assertion failure in the provided test
case.
llvm-svn: 192496
|
|
|
|
| |
llvm-svn: 192494
|
|
|
|
| |
llvm-svn: 192473
|
|
|
|
|
|
| |
Incorrect handling of 'double' and 'long long int'
llvm-svn: 192436
|
|
|
|
|
|
| |
vget_lane, vset_lane, vcopy_lane, vcreate, vdup_n, vdup_lane, vmov_n.
llvm-svn: 192411
|
|
|
|
|
|
| |
No functionality differences.
llvm-svn: 192390
|
|
|
|
|
|
|
|
|
|
|
|
| |
SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).
llvm-svn: 192362
|
|
|
|
|
|
|
|
|
| |
class SIMD(lselem). "
This reverts commit r192351. The LLVM side broke the build and the Clang tests
will inevitably fail without it.
llvm-svn: 192356
|
|
|
|
|
|
|
|
|
| |
This reverts commit r192300.
The change itself looks correct, but it found issues on how we handle aliases
in llvm.
llvm-svn: 192353
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SIMD(lselem).
Including following 14 instructions:
4 ld1 insts: load multiple 1-element structure to sequential 1/2/3/4 registers.
ld2/ld3/ld4: load multiple N-element structure to sequential N registers (N=2,3,4).
4 st1 insts: store multiple 1-element structure from sequential 1/2/3/4 registers.
st2/st3/st4: store multiple N-element structure from sequential N registers (N = 2,3,4).
E.g. ld1(3 registers version) will load 32-bit elements {A, B, C, D, E, F} sequentially into the three 64-bit vectors list {BA, DC, FE}.
E.g. ld3 will load 32-bit elements {A, B, C, D, E, F} into the three 64-bit vectors list {DA, EB, FC}.
llvm-svn: 192351
|
|
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D1867
llvm-svn: 192312
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch we produce alias for cases like
template<typename T>
struct foobar {
foobar() {
}
};
template struct foobar<void>;
It is safe to use aliases to weak symbols, as long and the alias itself is also
weak.
llvm-svn: 192300
|
|
|
|
|
|
| |
ItaniumVTableBuilder and clang-format code around
llvm-svn: 192288
|
|
|
|
|
|
| |
simple thunks when using -cxx-abi microsoft" with relaxed assertions
llvm-svn: 192285
|
|
|
|
|
|
| |
reciprocal exponent, and reciprocal square root estimate instructions.
llvm-svn: 192243
|
|
|
|
|
|
| |
convert instructions.
llvm-svn: 192232
|