History log of /llvm-project-15.0.7/clang/lib/CodeGen/CGExprAgg.cpp (Results 226 – 250 of 476)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 31168b07 15-Jun-2011 John McCall <[email protected]>

Automatic Reference Counting.

Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.

Compiler implementation c

Automatic Reference Counting.

Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.

Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.

llvm-svn: 133103

show more ...


# f479f1b7 09-May-2011 Alexis Hunt <[email protected]>

Rename "hasTrivialConstructor" to "hasTrivialDefaultConstructor" and
modify the semantics slightly to accomodate default constructors (I
hope).

llvm-svn: 131087


# 52a8cca5 29-Apr-2011 Fariborz Jahanian <[email protected]>

removes a meaningless comment.

llvm-svn: 130550


# 99514b91 29-Apr-2011 Fariborz Jahanian <[email protected]>

block variables on lhs need be ir-gen'ed after the
rhs when its 'forwarding' pointer may be modified
in rhs evaluation as result of call to Block_copy.
// rdar://9309454

llvm-svn: 130545


# 03535265 28-Apr-2011 Argyrios Kyrtzidis <[email protected]>

Cut down unnecessary zero'ing when value-initializing arrays of C++ objects.

-C++ objects with user-declared constructor don't need zero'ing.
-We can zero-initialize arrays of C++ objects in "bulk"

Cut down unnecessary zero'ing when value-initializing arrays of C++ objects.

-C++ objects with user-declared constructor don't need zero'ing.
-We can zero-initialize arrays of C++ objects in "bulk" now, in which case don't zero-initialize each object again.

llvm-svn: 130453

show more ...


# 9d3c5040 28-Apr-2011 Argyrios Kyrtzidis <[email protected]>

Get the base element type even in multidimensional arrays.

llvm-svn: 130427


# e07425a5 28-Apr-2011 Argyrios Kyrtzidis <[email protected]>

When value-initializing the elements of an array not not included in the initializer make sure
that a non-trivial C++ constructor gets called.

Fixes rdar://9347552 & http://llvm.org/PR9801

llvm-svn

When value-initializing the elements of an array not not included in the initializer make sure
that a non-trivial C++ constructor gets called.

Fixes rdar://9347552 & http://llvm.org/PR9801

llvm-svn: 130421

show more ...


# bb2c2400 24-Apr-2011 Ken Dyck <[email protected]>

Convert size and alignment variables to CharUnits in EmitAggregateCopy(). No
change in functionality intended.

llvm-svn: 130113


# 239a3357 24-Apr-2011 Ken Dyck <[email protected]>

Convert type size and alignment to CharUnits in CheckAggExprForMemSetUse().
No change in functionality intended.

llvm-svn: 130112


# df94cb7d 24-Apr-2011 Ken Dyck <[email protected]>

Convert the return type of GetNumNonZeroBytesInInit() to CharUnits. No
change in functionality intended.

llvm-svn: 130111


# 3b4bd9a1 24-Apr-2011 Ken Dyck <[email protected]>

Eliminate some literal 8s by converting size variables in EmitGCMove() and
EmitFinalDestCopy() to CharUnits. No change in functionality intended.

llvm-svn: 130110


# a8094505 24-Apr-2011 Ken Dyck <[email protected]>

Replace calls to ASTContext::getTypeInfo() with calls to
ASTContext::getTypeSize() when only the size part is used. No change in
functionality intended.

llvm-svn: 130109


# b2ed28ea 21-Apr-2011 Argyrios Kyrtzidis <[email protected]>

For

double data[20000000] = {0};

we would blow out the memory by creating 20M Exprs to fill out the initializer.

To fix this, if the initializer list initializes an array with more elements than
t

For

double data[20000000] = {0};

we would blow out the memory by creating 20M Exprs to fill out the initializer.

To fix this, if the initializer list initializes an array with more elements than
there are initializers in the list, have InitListExpr store a single 'ArrayFiller' expression
that specifies an expression to be used for value initialization of the rest of the elements.

Fixes rdar://9275920.

llvm-svn: 129896

show more ...


# 91147596 15-Apr-2011 Peter Collingbourne <[email protected]>

C1X: implement generic selections

As an extension, generic selection support has been added for all
supported languages. The syntax is the same as for C1X.

llvm-svn: 129554


# 58989b71 12-Apr-2011 John McCall <[email protected]>

We can't emit an aggregate cast as its sub-expression in general just
because the result is ignored. The particular example here is with
property l-values, but there could be all sorts of lovely cas

We can't emit an aggregate cast as its sub-expression in general just
because the result is ignored. The particular example here is with
property l-values, but there could be all sorts of lovely casts that this
isn't safe for. Sink the check into the one case that seems to actually
be capable of honoring this.

llvm-svn: 129397

show more ...


# 2979fe01 12-Apr-2011 John McCall <[email protected]>

After some discussion with Doug, we decided that it made a lot more sense
for __unknown_anytype resolution to destructively modify the AST. So that's
what it does now, which significantly simplifies

After some discussion with Doug, we decided that it made a lot more sense
for __unknown_anytype resolution to destructively modify the AST. So that's
what it does now, which significantly simplifies some of the implementation.
Normal member calls work pretty cleanly now, and I added support for
propagating unknown-ness through &.

llvm-svn: 129331

show more ...


# 2d2e8707 11-Apr-2011 John McCall <[email protected]>

More __unknown_anytype work.

llvm-svn: 129269


# 8a01a751 11-Apr-2011 Anders Carlsson <[email protected]>

Remove CK_DynamicToNull.

llvm-svn: 129265


# c6020066 10-Apr-2011 Anders Carlsson <[email protected]>

As a first step towards fixing PR9641, add a CK_DynamicToNull cast kind which
represents a dynamic cast where we know that the result is always null.

For example:

struct A {
virtual ~A();
};
stru

As a first step towards fixing PR9641, add a CK_DynamicToNull cast kind which
represents a dynamic cast where we know that the result is always null.

For example:

struct A {
virtual ~A();
};
struct B final : A { };
struct C { };

bool f(B* b) {
return dynamic_cast<C*>(b);
}

llvm-svn: 129256

show more ...


# 31996343 07-Apr-2011 John McCall <[email protected]>

Basic, untested implementation for an "unknown any" type requested by LLDB.
The idea is that you can create a VarDecl with an unknown type, or a
FunctionDecl with an unknown return type, and it will

Basic, untested implementation for an "unknown any" type requested by LLDB.
The idea is that you can create a VarDecl with an unknown type, or a
FunctionDecl with an unknown return type, and it will still be valid to
access that object as long as you explicitly cast it at every use. I'm
still going back and forth about how I want to test this effectively, but
I wanted to go ahead and provide a skeletal implementation for the LLDB
folks' benefit and because it also improves some diagnostic goodness for
placeholder expressions.

llvm-svn: 129065

show more ...


Revision tags: llvmorg-2.9.0
# 7a26ba4d 30-Mar-2011 Fariborz Jahanian <[email protected]>

Fix IRGen issues related to using property-dot syntax
for prperty reference types. // rdar://9208606.

llvm-svn: 128551


Revision tags: llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2, llvmorg-2.9.0-rc1
# c07a0c7e 17-Feb-2011 John McCall <[email protected]>

Change the representation of GNU ?: expressions to use a different expression
class and to bind the shared value using OpaqueValueExpr. This fixes an
unnoticed problem with deserialization of these

Change the representation of GNU ?: expressions to use a different expression
class and to bind the shared value using OpaqueValueExpr. This fixes an
unnoticed problem with deserialization of these expressions where the
deserialized form would lose the vital pointer-equality trait; or rather,
it fixes it because this patch also does the right thing for deserializing
OVEs.

Change OVEs to not be a "temporary object" in the sense that copy elision is
permitted.

This new representation is not totally unawkward to work with, but I think
that's really part and parcel with the semantics we're modelling here. In
particular, it's much easier to fix things like the copy elision bug and to
make the CFG look right.

I've tried to update the analyzer to deal with this in at least some
obvious cases, and I think we get a much better CFG out, but the printing
of OpaqueValueExprs probably needs some work.

llvm-svn: 125744

show more ...


# 1bf5846a 16-Feb-2011 John McCall <[email protected]>

Save a copy expression for non-trivial copy constructions of catch variables.

llvm-svn: 125661


# ad7c5c16 08-Feb-2011 John McCall <[email protected]>

Reorganize CodeGen{Function,Module} to eliminate the unfortunate
Block{Function,Module} base class. Minor other refactorings.

Fixed a few address-space bugs while I was there.

llvm-svn: 125085


# ce1de617 26-Jan-2011 John McCall <[email protected]>

Better framework for conditional cleanups; untested as yet.
I'm separately committing this because it incidentally changes some
block orderings and minor IR issues, like using a phi instead of
an un

Better framework for conditional cleanups; untested as yet.
I'm separately committing this because it incidentally changes some
block orderings and minor IR issues, like using a phi instead of
an unnecessary alloca.

llvm-svn: 124277

show more ...


12345678910>>...20