| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 85560
|
| |
|
|
| |
llvm-svn: 85453
|
| |
|
|
|
|
|
|
| |
using the new LLVM support for this. This is temporarily hiding
behind horrible and ugly #ifdefs until the time when the optimizer
is stable (hopefully a week or so). Until then, lets make it "opt in" :)
llvm-svn: 85446
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qualified reference to a declaration that is not a non-static data
member or non-static member function, e.g.,
namespace N { int i; }
int j = N::i;
Instead, extend DeclRefExpr to optionally store the qualifier. Most
clients won't see or care about the difference (since
QualifierDeclRefExpr inherited DeclRefExpr). However, this reduces the
number of top-level expression types that clients need to cope with,
brings the implementation of DeclRefExpr into line with MemberExpr,
and simplifies and unifies our handling of declaration references.
Extended DeclRefExpr to (optionally) store explicitly-specified
template arguments. This occurs when naming a declaration via a
template-id (which will be stored in a TemplateIdRefExpr) that,
following template argument deduction and (possibly) overload
resolution, is replaced with a DeclRefExpr that refers to a template
specialization but maintains the template arguments as written.
llvm-svn: 84962
|
| |
|
|
|
|
| |
both scalar and aggregates.
llvm-svn: 84910
|
| |
|
|
| |
llvm-svn: 84771
|
| |
|
|
|
|
|
| |
generate the debug information for the first parameter to the block
invoke functions. WIP.
llvm-svn: 84737
|
| |
|
|
|
|
| |
as argument to a function call. Removes a FIXME.
llvm-svn: 84694
|
| |
|
|
| |
llvm-svn: 84456
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
1. CGF now has fewer bytes of state (one pointer instead of a vector).
2. The generated code is determinstic, instead of getting labels in
'map order' based on pointer addresses.
3. Clang now emits one 'indirect goto switch' for each function, instead
of one for each indirect goto. This fixes an M*N = N^2 IR size issue
when there are lots of address-taken labels and lots of indirect gotos.
4. This also makes the default cause do something useful, reducing the
size of the jump table needed (by one).
llvm-svn: 83952
|
| |
|
|
|
|
| |
class offsets. Fix the code to handle virtual bases as well.
llvm-svn: 83426
|
| |
|
|
| |
llvm-svn: 83271
|
| |
|
|
|
|
| |
used by CGExprConstant.
llvm-svn: 83263
|
| |
|
|
| |
llvm-svn: 83041
|
| |
|
|
| |
llvm-svn: 82910
|
| |
|
|
|
|
|
|
| |
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.
llvm-svn: 82705
|
| |
|
|
|
|
| |
holds the number of elements to construct, to be used when implementing new[].
llvm-svn: 82602
|
| |
|
|
|
|
| |
bitfields).
llvm-svn: 81867
|
| |
|
|
| |
llvm-svn: 81759
|
| |
|
|
| |
llvm-svn: 81738
|
| |
|
|
|
|
| |
NullCheckValue argument (currently unused).
llvm-svn: 81606
|
| |
|
|
|
|
| |
where the variable is stored.
llvm-svn: 81599
|
| |
|
|
| |
llvm-svn: 81585
|
| |
|
|
| |
llvm-svn: 81485
|
| |
|
|
|
|
| |
be called, generate implicit child expressions that call them.
llvm-svn: 81383
|
| |
|
|
| |
llvm-svn: 81346
|
| |
|
|
| |
llvm-svn: 81315
|
| |
|
|
|
|
| |
offsets better for thunk refinements. Cleanups. WIP.
llvm-svn: 81067
|
| |
|
|
|
|
| |
vtables. Add thunk generation. WIP.
llvm-svn: 81014
|
| |
|
|
|
|
| |
API for copying GC'able aggregates (Next runtime only).
llvm-svn: 80607
|
| |
|
|
| |
llvm-svn: 80178
|
| |
|
|
|
|
|
| |
but not yet necessarily perfectly consistent with gcc. Also addressed
Doug and John's comments.
llvm-svn: 80137
|
| |
|
|
| |
llvm-svn: 80066
|
| |
|
|
|
|
|
|
| |
not yet
necessarily perfectly consistent with gcc.
llvm-svn: 80064
|
| |
|
|
| |
llvm-svn: 79921
|
| |
|
|
|
|
| |
a copy assignment operator function.
llvm-svn: 79681
|
| |
|
|
|
|
|
| |
when synthesizing a copy constructor. Arrays's base element
may have a trivial or non-trivial copy constructor.
llvm-svn: 79653
|
| |
|
|
| |
llvm-svn: 79565
|
| |
|
|
|
|
|
|
| |
"ObjCImplctSetterGetterRefExpr".
A field rename and more comments.
llvm-svn: 79537
|
| |
|
|
| |
llvm-svn: 79464
|
| |
|
|
| |
llvm-svn: 79373
|
| |
|
|
| |
llvm-svn: 79372
|
| |
|
|
| |
llvm-svn: 79370
|
| |
|
|
|
|
|
|
| |
Removed an unnecessary loop to get to setters incoming
argument. Added DoxyGen comments. Still more work
to do in this area (WIP).
llvm-svn: 79365
|
| |
|
|
|
|
|
|
| |
one is not provided by user. 2) More complete
emission of ctor prologue when it has no initializer
list or when it is synthesized.
llvm-svn: 79269
|
| |
|
|
| |
llvm-svn: 79205
|
| |
|
|
|
|
| |
temporaries from being destroyed when they're bound to a reference variable.
llvm-svn: 79179
|
| |
|
|
| |
llvm-svn: 79156
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
consistent model for handling size expressions for VLAs.
The model is essentially as follows: VLA types own their associated
expression. In some cases, we need to create multiple VLA types to
represent a given VLA (for canonical types, or qualifiers on array types,
or type merging). If we need to create multiple types based off of
the same VLA declaration, we use the new refcounting functionality so they can
all own the expression. The VLASizeMap in CodeGenFunction then uses the size
expression to identify the group of VLA types based off of the same original
declaration.
I'm not particularly attached to the VLA types owning the expression,
but we're stuck with at least until someone comes up with a way
to walk the VLA expressions for a declaration.
I did the parallel fix in ASTContext for DependentSizedArrayType, but I
haven't really looked closely at it, so there might still be issues
there.
I'll clean up the code duplication in ASTContext in a followup commit.
llvm-svn: 79071
|
| |
|
|
|
|
| |
primaries. WIP.
llvm-svn: 78950
|