| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Because PNaCl bitcode must be target-independent, it uses some
different bitcode representations from other targets (e.g. byval and
sret for structures). This means that without additional type
information, it cannot meet some native ABI requirements for some
targets (e.g. passing structures containing unions by value on
x86-64). To allow generation of code which uses the correct native
ABIs, we also support triples such as x86_64-nacl, which uses
target-dependent IR (as opposed to le32-nacl, which uses byval and
sret).
To allow interoperation between the two types of code, this patch adds
a calling convention attribute to be used in code compiled with the
target-dependent triple, which will generate code using the le32-style
bitcode. This calling convention does not need to be explicitly
supported in the backend because it determines bitcode representation
rather than native conventions (the backend just needs to undersand
how to handle byval and sret for the Native Client OS).
This patch implements __attribute__((pnaclcall)) to generate calls in
bitcode according to the le32 bitcode conventions, an attribute which
is accepted by any Native Client target, but issues a warning
otherwise.
llvm-svn: 166065
|
|
|
|
|
|
|
|
| |
We generalize r166040 to handle ABI alignment issues for all types.
rdar://12439123
llvm-svn: 166052
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We expand varargs in clang and the call site is handled in the back end, it is
hard to match exactly how illegal vectors are handled in the backend. Therefore,
we legalize the illegal vector types in clang:
if (Size <= 32), legalize to i32.
if (Size == 64), legalize to v2i32.
if (Size == 128), legalize to v4i32.
if (Size > 128), use indirect.
rdar://12439123
llvm-svn: 166043
|
|
|
|
|
|
|
|
|
|
| |
We create an aligned temporary space and copy the content over from ap.cur to
the temporary space. This is necessary if the natural alignment of the type is
greater than the ABI alignment.
rdar://12439123
llvm-svn: 166040
|
|
|
|
|
|
|
|
| |
don't try the normal GetOrCreateLLVM. The latter could drop the weak
atrtibute on the second reference, if there is no explicit declaration
of the aliasee.
llvm-svn: 166032
|
|
|
|
|
|
| |
metadata.
llvm-svn: 166023
|
|
|
|
|
|
|
|
|
|
|
| |
if (CGM.getModuleDebugInfo())
DebugInfo = CGM.getModuleDebugInfo()
into a call:
maybeInitializeDebugInfo();
This is a simplification for a possible future fix of PR13942.
llvm-svn: 166019
|
|
|
|
|
|
| |
simplify the code a bit. No functionality change.
llvm-svn: 166010
|
|
|
|
| |
llvm-svn: 165988
|
|
|
|
|
|
| |
See PR14013.
llvm-svn: 165962
|
|
|
|
|
|
| |
own class named AttrBuilder. No functionality change.
llvm-svn: 165961
|
|
|
|
|
|
| |
clang part: for FunctionPass we need to run asan at a different point, otherwise it will run before inlining
llvm-svn: 165937
|
|
|
|
| |
llvm-svn: 165925
|
|
|
|
|
|
|
|
| |
Convert the uses of the Attributes class over to the new format. The
Attributes::get method call now takes an LLVM context so that the attributes
object can be uniquified and stored.
llvm-svn: 165918
|
|
|
|
|
|
| |
fails to return a value, to make debugging this issue easier.
llvm-svn: 165914
|
|
|
|
| |
llvm-svn: 165900
|
|
|
|
| |
llvm-svn: 165888
|
|
|
|
|
|
|
| |
Eli discovered that __noop's sema behavior also needs some love. I filed
PR14081 for that and intend to improve it.
llvm-svn: 165886
|
|
|
|
| |
llvm-svn: 165885
|
|
|
|
|
|
| |
Patch by Jeremiah Zanin.
llvm-svn: 165849
|
|
|
|
|
|
|
| |
from a floating-point type where the source value is not in the range of
representable values of the destination type.
llvm-svn: 165843
|