History log of /llvm-project-15.0.7/clang/lib/CodeGen/CGExpr.cpp (Results 801 – 825 of 1262)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# dd68bd0a 14-Feb-2011 Chris Lattner <[email protected]>

revert my ConstantVector patch, it seems to have made the llvm-gcc
builders unhappy.

llvm-svn: 125505


# 2d9a7672 14-Feb-2011 Chris Lattner <[email protected]>

update for ConstantVector::get API change.

llvm-svn: 125488


# 3968cd0f 11-Feb-2011 Rafael Espindola <[email protected]>

For consistency, use llvm::raw_ostream in the rest of the mangle api.

llvm-svn: 125360


# 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


# 351762cd 07-Feb-2011 John McCall <[email protected]>

A few more tweaks to the blocks AST representation:
- BlockDeclRefExprs always store VarDecls
- BDREs no longer store copy expressions
- BlockDecls now store a list of captured varia

A few more tweaks to the blocks AST representation:
- BlockDeclRefExprs always store VarDecls
- BDREs no longer store copy expressions
- BlockDecls now store a list of captured variables, information about
how they're captured, and a copy expression if necessary

With that in hand, change IR generation to use the captures data in
blocks instead of walking the block independently.

Additionally, optimize block layout by emitting fields in descending
alignment order, with a heuristic for filling in words when alignment
of the end of the block header is insufficient for the most aligned
field.

llvm-svn: 125005

show more ...


# f3a8860e 03-Feb-2011 John McCall <[email protected]>

More capturing of 'this': implicit member expressions. Getting that
right for anonymous struct/union members led to me discovering some
seemingly broken code in that area of Sema, which I fixed, pa

More capturing of 'this': implicit member expressions. Getting that
right for anonymous struct/union members led to me discovering some
seemingly broken code in that area of Sema, which I fixed, partly by
changing the representation of member pointer constants so that
IndirectFieldDecls aren't expanded. This led to assorted cleanups with
member pointers in CodeGen, and while I was doing that I saw some random
other things to clean up.

llvm-svn: 124785

show more ...


# 21d3fca9 27-Jan-2011 Douglas Gregor <[email protected]>

When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only
non-class prvalues actually require the realization of a
temporary. For everything else, we already have an lvalue (or class
prvalue

When producing IR for a lvalue-to-rvalue cast *as an lvalue*, only
non-class prvalues actually require the realization of a
temporary. For everything else, we already have an lvalue (or class
prvalue) in the subexpression.

Note: we're missing some move elision in this case. I'll tackle that next.
llvm-svn: 124453

show more ...


# 2f2fa728 26-Jan-2011 Fariborz Jahanian <[email protected]>

Fixes an IRgen bug where __block variable is
referenced in the block-literal initializer
of that variable. // rdar://8893785

llvm-svn: 124332


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

Un-nest the meat of this function.

llvm-svn: 124310


# 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 ...


# 9c399a29 22-Jan-2011 Douglas Gregor <[email protected]>

Send code generation for xvalues down the same path as lvalues

llvm-svn: 124023


# 705ba07e 19-Jan-2011 Ken Dyck <[email protected]>

Replace calls to getTypeSize() and getTypeAlign() with their 'InChars'
counterparts where char units are needed.

llvm-svn: 123805


# 8dfa5f17 18-Jan-2011 Jeffrey Yasskin <[email protected]>

Fix warnings found by gcc-4.6, from -Wunused-but-set-variable and
-Wint-to-pointer-cast.

llvm-svn: 123719


# 5d413781 06-Dec-2010 John McCall <[email protected]>

Rename CXXExprWithTemporaries -> ExprWithCleanups; there's no theoretical
reason this is limited to C++, and it's certainly not limited to temporaries.

llvm-svn: 120996


# d0a30016 06-Dec-2010 John McCall <[email protected]>

__block variables require us to evaluate the RHS of an assignment before
the LHS, or else the pointer might be invalid. This is kindof dumb, but
go ahead and make sure we're doing that for l-value s

__block variables require us to evaluate the RHS of an assignment before
the LHS, or else the pointer might be invalid. This is kindof dumb, but
go ahead and make sure we're doing that for l-value scalar assignment,
which fixes a miscompile of obj-c++.dg/block-seq.mm.

Leave a FIXME for how to solve this problem for agg __blocks.

llvm-svn: 120992

show more ...


# a2342eb8 05-Dec-2010 John McCall <[email protected]>

Fix a bug in the emission of __real/__imag l-values on scalar operands.
Fix a bug in the emission of complex compound assignment l-values.
Introduce a method to emit an expression whose value isn't r

Fix a bug in the emission of __real/__imag l-values on scalar operands.
Fix a bug in the emission of complex compound assignment l-values.
Introduce a method to emit an expression whose value isn't relevant.
Make that method evaluate its operand as an l-value if it is one.
Fixes our volatile compliance in C++.

llvm-svn: 120931

show more ...


# d583da04 04-Dec-2010 Francois Pichet <[email protected]>

More anonymous struct/union redesign. This one deals with anonymous field used in a constructor initializer list:

struct X {
X() : au_i1(123) {}
union {
int au_i1;
float au_f1;
};
};

More anonymous struct/union redesign. This one deals with anonymous field used in a constructor initializer list:

struct X {
X() : au_i1(123) {}
union {
int au_i1;
float au_f1;
};
};

clang will now deal with au_i1 explicitly as an IndirectFieldDecl.

llvm-svn: 120900

show more ...


# e26a872b 04-Dec-2010 John McCall <[email protected]>

Remove some defensive calls to EmitLoadOfPropertyRefLValue that shouldn't
be required, and then fix up some missing loads on overloaded-operator
paths which that exposed.

llvm-svn: 120896


# 34376a68 04-Dec-2010 John McCall <[email protected]>

Although we currently have explicit lvalue-to-rvalue conversions, they're
not actually frequently used, because ImpCastExprToType only creates a node
if the types differ. So explicitly create an ICE

Although we currently have explicit lvalue-to-rvalue conversions, they're
not actually frequently used, because ImpCastExprToType only creates a node
if the types differ. So explicitly create an ICE in the lvalue-to-rvalue
conversion code in DefaultFunctionArrayLvalueConversion() as well as several
other new places, and consistently deal with the consequences throughout the
compiler.

In addition, introduce a new cast kind for loading an ObjCProperty l-value,
and make sure we emit those nodes whenever an ObjCProperty l-value appears
that's not on the LHS of an assignment operator.

This breaks a couple of rewriter tests, which I've x-failed until future
development occurs on the rewriter.

Ted Kremenek kindly contributed the analyzer workarounds in this patch.

llvm-svn: 120890

show more ...


# 0692a32a 04-Dec-2010 John McCall <[email protected]>

Test case for the l-value base only being evaluated once.

Also, move the l-value emission code into CGObjC.cpp and teach it, for
completeness, to store away self for a super send.

Also, inline the

Test case for the l-value base only being evaluated once.

Also, move the l-value emission code into CGObjC.cpp and teach it, for
completeness, to store away self for a super send.

Also, inline the super cases for property gets and sets and make them
use the correct result type for implicit getter/setter calls.

llvm-svn: 120887

show more ...


# f3eb96fc 04-Dec-2010 John McCall <[email protected]>

Kill the KVC l-value kind and calculate the base expression when emitting
the l-value.

llvm-svn: 120884


# b7bd14fa 02-Dec-2010 John McCall <[email protected]>

Simplify the ASTs by consolidating ObjCImplicitGetterSetterExpr and ObjCPropertyRefExpr
into the latter.

llvm-svn: 120643


# f3735e01 01-Dec-2010 John McCall <[email protected]>

Restore the lvalue-to-rvalue conversion patch with a minimal fix.

llvm-svn: 120555


# 4f22c9de 30-Nov-2010 John McCall <[email protected]>

L-value to r-value conversion is not ready for prime-time.

llvm-svn: 120433


# 824fd1dc 30-Nov-2010 John McCall <[email protected]>

Introduce an r-value to l-value cast kind. I'm not promising anything
about the reliability of this yet.

llvm-svn: 120422


1...<<31323334353637383940>>...51