| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
what it is meant for.
llvm-svn: 166734
|
| |
|
|
|
|
| |
layout meta-data work. wip.
llvm-svn: 166717
|
| |
|
|
| |
llvm-svn: 166703
|
| |
|
|
| |
llvm-svn: 166684
|
| |
|
|
|
|
|
|
| |
variables when using a gnueabihf or aapcs-vfp target.
Tested by me and Wei-Ren Chen.
llvm-svn: 166679
|
| |
|
|
|
|
| |
and are generated by Clang (global initializers/destructors, thunks) . Fixes PR13942.
llvm-svn: 166676
|
| |
|
|
|
|
| |
CodeGen side.
llvm-svn: 166661
|
| |
|
|
|
|
|
|
| |
correct IR type.
Reported in the thread "devirtualisation appears to crash clang on covariant functions on ARM" on cfe-dev.
llvm-svn: 166651
|
| |
|
|
| |
llvm-svn: 166561
|
| |
|
|
|
|
|
|
| |
Many of our tests specify triples that are not built into clang.
In this commit we allow clang to fail loading the triple if we are only
using clang to emit llvm ir.
llvm-svn: 166543
|
| |
|
|
|
|
| |
the x86_fastcallcc calling convention.
llvm-svn: 166538
|
| |
|
|
| |
llvm-svn: 166537
|
| |
|
|
|
|
|
|
|
| |
and use it to initialize the TargetTransformInfo analysis pass.
We need the TTI information for the loop vectorizer.
rdar://12464901
llvm-svn: 166532
|
| |
|
|
| |
llvm-svn: 166497
|
| |
|
|
|
|
| |
regression.
llvm-svn: 166461
|
| |
|
|
| |
llvm-svn: 166377
|
| |
|
|
|
|
|
|
|
| |
initialized by a reference constant expression.
Our odr-use modeling still needs work here: we don't yet implement the 'set of
potential results of an expression' DR.
llvm-svn: 166361
|
| |
|
|
|
|
|
|
| |
- We create two TargetLoweringInfo instances for different pass managers, and
they weren't consistent (the one for codegen didn't have the right info). I'm
not sure this mattered anywhere in practice.
llvm-svn: 166299
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
constructors.
When I first moved regparm support to TargetInfo.cpp I tried to isolate it
in classifyArgumentTypeWithReg, but it is actually a lot easier to flip the
code around and check for regparm at the end of the decision tree.
Without this refactoring classifyArgumentTypeWithReg would have to duplicate
the logic about when to use non-byval indirect arguments.
llvm-svn: 166266
|
| |
|
|
| |
llvm-svn: 166263
|
| |
|
|
| |
llvm-svn: 166240
|
| |
|
|
|
|
|
|
|
|
| |
are no known current users of column info. Robustify and fix up
a few tests in the process. Reduces the size of debug information
by a small amount.
Part of PR14106
llvm-svn: 166236
|
| |
|
|
|
|
|
| |
Nadav's llvm change r165665 caused problems with an LTO bootstrap of clang,
so I'm reverting it for now, along with follow-on patches like this one.
llvm-svn: 166164
|
| |
|
|
|
|
| |
debug info.
llvm-svn: 166109
|
| |
|
|
|
|
|
|
|
| |
has ivars that require destruction, but none that require anything
except zero-initialization. This is common in ARC and (when true
throughout a class hierarchy) permits the elimination of an
unnecessary message-send during allocation.
llvm-svn: 166088
|
| |
|
|
|
|
| |
No functionality change.
llvm-svn: 166087
|
| |
|
|
|
|
|
|
|
|
|
| |
combination of a load+objc_release; this is generally better
for tools that try to track why values are retained and
released. Also use objc_storeStrong when copying a block
(again, only at -O0), which requires us to do a preliminary
store of null in order to compensate for objc_storeStrong's
assign semantics.
llvm-svn: 166085
|
| |
|
|
| |
llvm-svn: 166080
|
| |
|
|
|
|
|
|
| |
This is consistent/interoperable with GCC 4.7 (& __cxa_deleted_function isn't
present in 4.4 - not sure when it got added, but you'll need something with
that function available for this to work).
llvm-svn: 166069
|