| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
| |
pass in the correct alignment when known.
The test includes a FIXME for a related case involving calls; it's a bit more complicated to fix because the RValue class doesn't keep track of alignment.
<rdar://problem/10463337>
llvm-svn: 145862
|
| |
|
|
|
|
| |
change.)
llvm-svn: 145753
|
| |
|
|
|
|
| |
few places over to it.
llvm-svn: 145747
|
| |
|
|
|
|
| |
review comment.
llvm-svn: 145741
|
| |
|
|
|
|
| |
I'll be introducing uses of the specified alignment soon.
llvm-svn: 145736
|
| |
|
|
|
|
|
|
| |
__import_module__ std.vector;
in the AST.
llvm-svn: 145725
|
| |
|
|
| |
llvm-svn: 145715
|
| |
|
|
|
|
|
|
|
|
|
|
| |
mutable member and a constant initializer. We'd previously promoted such
variables to global constants, resulting in nasal demons if the mutable member
was modified.
This is only a temporary fix. The subtle interplay between isConstantInitializer
and CGExprConstant is very bug-prone; there are some other issues in this area
which I will be addressing in subsequent, more major reworking of this code.
llvm-svn: 145654
|
| |
|
|
|
|
| |
use byval so we're sure the backend does the right thing. Fixes va_arg with illegal vectors and an obscure ABI mismatch with __m64 vectors.
llvm-svn: 145652
|
| |
|
|
|
|
| |
old dispatch mechanism when I introduced the new one.
llvm-svn: 145609
|
| |
|
|
|
|
| |
the arguments is an AVX vector.
llvm-svn: 145574
|
| |
|
|
|
|
|
|
|
| |
library, since modules cut across all of the libraries. Rename
serialization::Module to serialization::ModuleFile to side-step the
annoying naming conflict. Prune a bunch of ModuleMap.h includes that
are no longer needed (most files only needed the Module type).
llvm-svn: 145538
|
| |
|
|
| |
llvm-svn: 145531
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The new metadata are method @encode strings with additional data.
1. Each Objective-C object is marked with its class name and protocol names.
The same is done for property @encode already.
2. Each block object is marked with its function prototype's @encoding. For
example, a method parameter that is a block object that itself returns void
and takes an int would look like:
@?<v@?i>
These new method @encode strings are stored in a single array pointed to by structs protocol_t and objc_protocol_ext.
Patch provided by Greg Parker!
llvm-svn: 145469
|
| |
|
|
|
|
|
|
| |
for the structure type.
rdar://10499337
llvm-svn: 145461
|
| |
|
|
| |
llvm-svn: 145399
|
| |
|
|
|
|
|
|
| |
attribute. This prevents the stack slot allocator from coming along and using a
stack which it thinks is available but isn't.
<rdar://problem/10492556>
llvm-svn: 145332
|
| |
|
|
|
|
|
|
| |
when they are greater than 128 bits. This was incorrectly coercing things like long3 into a double2.
Add test case.
llvm-svn: 145312
|
| |
|
|
| |
llvm-svn: 145227
|
| |
|
|
| |
llvm-svn: 145211
|
| |
|
|
| |
llvm-svn: 145209
|
| |
|
|
|
|
|
|
|
|
|
| |
generic pushDestroy function.
This would reduce the number of useful declarations in
CGTemporaries.cpp to one. Since CodeGenFunction::EmitCXXTemporary
does not deserve its own file, move it to CGCleanup.cpp and delete
CGTemporaries.cpp.
llvm-svn: 145202
|
| |
|
|
| |
llvm-svn: 145189
|
| |
|
|
|
|
| |
This supports single-element initializer lists for references according to DR1288, as well as creating temporaries and binding to them for other initializer lists.
llvm-svn: 145186
|
| |
|
|
|
|
| |
appear in non-constant initializers in C++.
llvm-svn: 145087
|
| |
|
|
|
|
| |
LangOpts.AddressSanitizer instead of CodeGenOpts.AddressSanitizer
llvm-svn: 145054
|
| |
|
|
| |
llvm-svn: 145040
|
| |
|
|
|
|
| |
Fixes PR4777.
llvm-svn: 145015
|
| |
|
|
| |
llvm-svn: 144972
|
| |
|
|
|
|
| |
Use isEmptyRecord for arguments on x86-32; there are structs of size 0 which don't count as empty.
llvm-svn: 144971
|
| |
|
|
|
|
| |
Fixes <rdar://problem/10463281>.
llvm-svn: 144966
|
| |
|
|
|
|
| |
structures containing an SSE vector.
llvm-svn: 144963
|
| |
|
|
|
|
| |
struct layout tests.
llvm-svn: 144961
|
| |
|
|
|
|
| |
type for a function returning a struct containing only a pointer. Handle the edge case of a struct containing only a float or double plus some dead padding instead of asserting.
llvm-svn: 144960
|
| |
|
|
|
|
| |
tests.
llvm-svn: 144944
|
| |
|
|
|
|
| |
parsing or false to abort parsing.
llvm-svn: 144943
|
| |
|
|
|
|
| |
Fixes rdar://10433202
llvm-svn: 144938
|
| |
|
|
|
|
| |
and base-to-derived casts, and add proper handling of temporaries.
llvm-svn: 144926
|
| |
|
|
| |
llvm-svn: 144800
|
| |
|
|
| |
llvm-svn: 144789
|
| |
|
|
|
|
| |
lvalues. PR11376.
llvm-svn: 144745
|
| |
|
|
| |
llvm-svn: 144612
|
| |
|
|
| |
llvm-svn: 144548
|
| |
|
|
|
|
|
|
| |
or MemberExpr which refers to it. As a side-effect, MemberExprs which refer to
static member functions and static data members are now emitted as constant
expressions.
llvm-svn: 144468
|
| |
|
|
|
|
| |
loads to later be moved/combined in the optimizer. Fixes <rdar://problem/6027699>
llvm-svn: 144318
|
| |
|
|
|
|
| |
Johannes Obermayr.
llvm-svn: 144310
|
| |
|
|
|
|
|
|
|
|
| |
need to provide a 'dominating IP' which is guaranteed to
dominate the (de)activation point but which cannot be avoided
along any execution path from the (de)activation point to
the push-point of the cleanup. Using the entry block is
bad mojo.
llvm-svn: 144276
|
| |
|
|
|
|
|
|
|
|
|
|
| |
a previously-inactive cleanup, not only do we need a
flag variable, but we should also force the cleanup to
query the flag variable. However, we only need to do
this when we're activating in a context that's
conditionally executed; otherwise, we may safely
assume that the cleanup is dominated by the activation
point.
llvm-svn: 144271
|
| |
|
|
|
|
|
|
|
|
|
|
| |
full-expression. Naturally they're inactive before we enter
the block literal expression. This restores the intended
behavior that blocks belong to their enclosing scope.
There's a useful -O0 / compile-time optimization that we're
missing here with activating cleanups following straight-line
code from their inactive beginnings.
llvm-svn: 144268
|
| |
|
|
|
|
|
| |
literal types, as well as derived-to-base casts for lvalues and
derived-to-virtual-base casts.
llvm-svn: 144265
|