| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 132259
|
|
|
|
| |
llvm-svn: 132258
|
|
|
|
| |
llvm-svn: 132249
|
|
|
|
|
|
| |
memcpy. (Spotted by looking at IR.)
llvm-svn: 132226
|
|
|
|
|
|
| |
literals to 1. This can significantly impact the size of the string data, and as far as I know, the alignment doesn't help performance. rdar://9078969 .
llvm-svn: 132223
|
|
|
|
| |
llvm-svn: 132219
|
|
|
|
|
|
|
|
| |
to be careful to emit landing pads that are always prepared to handle a
cleanup path. This is correct mostly because of the fix to the LLVM
inliner, r132200.
llvm-svn: 132209
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
parameter types to be ill-formed. However, it relies on the
completeness of method parameter types when producing metadata, e.g.,
for a protocol, leading IR generating to crash in such cases.
Since there's no real way to tighten down the semantics of Objective-C
here without breaking existing code, do something safe but lame:
suppress the generation of metadata when this happens.
Fixes <rdar://problem/9123036>.
llvm-svn: 132171
|
|
|
|
|
|
|
|
| |
rdar://problem/8139919 . This shouldn't make much of a difference at -O3, but should substantially reduce the number of generated memcpy's at -O0.
Originally r130717, but was backed out due to an ObjC regression.
llvm-svn: 132102
|
|
|
|
| |
llvm-svn: 132077
|
|
|
|
| |
llvm-svn: 132034
|
|
|
|
|
|
|
|
| |
type that turns one type into another. This is used as the basis to
implement __underlying_type properly - with TypeSourceInfo and proper
behavior in the face of templates.
llvm-svn: 132017
|
|
|
|
| |
llvm-svn: 131935
|
|
|
|
| |
llvm-svn: 131932
|
|
|
|
|
|
|
|
| |
llvm::Function of the right type.
PR9994.
llvm-svn: 131930
|
|
|
|
|
|
|
| |
code generator will do it. With this patch, clang compiles the example
in PR9794 to not have an alloca temporary.
llvm-svn: 131881
|
|
|
|
|
|
|
| |
generator will give it something sufficient. This is important because
the mid-level optimizer doesn't know what alignment is required otherwise.
llvm-svn: 131879
|
|
|
|
| |
llvm-svn: 131877
|
|
|
|
| |
llvm-svn: 131870
|
|
|
|
| |
llvm-svn: 131815
|
|
|
|
| |
llvm-svn: 131808
|
|
|
|
|
|
| |
and stop abusing the multi-level dereference isa<> used to allow.
llvm-svn: 131804
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Type::isUnsignedIntegerOrEnumerationType(), which are like
Type::isSignedIntegerType() and Type::isUnsignedIntegerType() but also
consider the underlying type of a C++0x scoped enumeration type.
Audited all callers to the existing functions, switching those that
need to also handle scoped enumeration types (e.g., those that deal
with constant values) over to the new functions. Fixes PR9923 /
<rdar://problem/9447851>.
llvm-svn: 131735
|
|
|
|
| |
llvm-svn: 131701
|
|
|
|
| |
llvm-svn: 131611
|
|
|
|
| |
llvm-svn: 131558
|
|
|
|
|
|
| |
<rdar://problem/8107317>
llvm-svn: 131504
|
|
|
|
| |
llvm-svn: 131499
|
|
|
|
|
|
|
| |
user specified string class via -fconstant-string-class option.
pr9914.
llvm-svn: 131496
|
|
|
|
|
|
| |
creating aggregate stores in common cases. This is more friendly to fast-isel.
llvm-svn: 131490
|
|
|
|
|
|
|
| |
optimization for abstract classes; there was a misunderstanding, and
it turns out that there are no kexts which rely on this.
llvm-svn: 131489
|
|
|
|
| |
llvm-svn: 131450
|
|
|
|
| |
llvm-svn: 131447
|
|
|
|
|
|
| |
Radar 9440721
llvm-svn: 131441
|
|
|
|
| |
llvm-svn: 131435
|
|
|
|
|
|
| |
reasons that honestly really, really need to be looked into.
llvm-svn: 131434
|
|
|
|
|
|
|
| |
optimization. Make sure to require a vtable when trying to get the address
of a VTT, otherwise we would never end up emitting the VTT.
llvm-svn: 131400
|
|
|
|
|
|
|
|
|
| |
operators; their semantics are guaranteed by the language.
If someone wants to argue that freestanding compiles shouldn't recognize
this, I might be convinceable.
llvm-svn: 131395
|
|
|
|
| |
llvm-svn: 131385
|
|
|
|
|
|
|
| |
It can be larger, it can be smaller, it can be signed, whatever. Handle
all the crazy cases with grace and spirit.
llvm-svn: 131378
|
|
|
|
|
|
| |
hasAggregateLLVMType.
llvm-svn: 131375
|
|
|
|
| |
llvm-svn: 131374
|
|
|
|
|
|
|
| |
types. Also, cache a translation of 'void' in CGM and provide a ptrdiff_t
alias. No functionality change.
llvm-svn: 131373
|
|
|
|
| |
llvm-svn: 131372
|
|
|
|
|
|
|
|
|
|
| |
that the destructor body is trivial and that all member variables also have either
trivial destructors or trivial destructor bodies, we don't need to initialize the
vtable pointers since no virtual member functions will be called on the destructor.
Fixes PR9181.
llvm-svn: 131368
|
|
|
|
|
|
|
|
|
| |
send if the receiver is null. Normally it's not worthwhile to check this,
but avoiding the null-initialization is nice, and this also avoids nasty
problems where the null-initialization is visible within the call because
we use an aliased result buffer. rdar://problem/9402992
llvm-svn: 131366
|
|
|
|
|
|
|
|
|
| |
out as "v-table" message sends and stop calling normal messages "legacy"
message sends.
Also, fix some comments to reveal the true state of affairs.
llvm-svn: 131335
|
|
|
|
|
|
| |
and to decrease the amount of effort in appending strings.
llvm-svn: 131323
|
|
|
|
| |
llvm-svn: 131321
|
|
|
|
|
|
|
| |
mangled to avoid doing it twice for platforms that use prefixes like
Darwin.
llvm-svn: 131311
|