History log of /llvm-project-15.0.7/clang/lib/CodeGen/CGExprComplex.cpp (Results 126 – 150 of 213)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# f30bc001 02-Sep-2011 Fariborz Jahanian <[email protected]>

blocks: Support capturing complex variable in block.
// rdar://10033896

llvm-svn: 139020


# 2192fe50 18-Jul-2011 Chris Lattner <[email protected]>

de-constify llvm::Type, patch by David Blaikie!

llvm-svn: 135370


# 7c454bb8 15-Jul-2011 John McCall <[email protected]>

Create a new expression node, SubstNonTypeTemplateParmExpr,
to represent a fully-substituted non-type template parameter.
This should improve source fidelity, as well as being generically
useful for

Create a new expression node, SubstNonTypeTemplateParmExpr,
to represent a fully-substituted non-type template parameter.
This should improve source fidelity, as well as being generically
useful for diagnostics and such.

llvm-svn: 135243

show more ...


# 4db5c3c8 07-Jul-2011 John McCall <[email protected]>

In ARC, reclaim all return values of retainable type, not just those
where we have an immediate need of a retained value.

As an exception, don't do this when the call is made as the immediate
operan

In ARC, reclaim all return values of retainable type, not just those
where we have an immediate need of a retained value.

As an exception, don't do this when the call is made as the immediate
operand of a __bridge retain. This is more in the way of a workaround
than an actual guarantee, so it's acceptable to be brittle here.

rdar://problem/9504800

llvm-svn: 134605

show more ...


# 5836852e 25-Jun-2011 Eli Friedman <[email protected]>

Cleanup cast IRGen a bit; no intended functionality change.

llvm-svn: 133864


# 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


Revision tags: llvmorg-2.9.0
# 20c0f02c 30-Mar-2011 Jay Foad <[email protected]>

Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
PHINode::Create() giving the (known or expected) number of operands.

llvm-svn: 128538


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

Remove the "conditional save" hashtables from IR generation.

llvm-svn: 125761


# 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


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


# 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


# 294c2db4 13-Jan-2011 John McCall <[email protected]>

Ensure an insertion point at the end of a statement-expression.
Fixes PR8967.

llvm-svn: 123360


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


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


# 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


# 4f29b49d 16-Nov-2010 John McCall <[email protected]>

Support compound complex operations as l-values in C++. Add a test
case based on CodeGen/volatile-1.c which tests the current C++
semantics, and note the many, many places we fall short of them.

ll

Support compound complex operations as l-values in C++. Add a test
case based on CodeGen/volatile-1.c which tests the current C++
semantics, and note the many, many places we fall short of them.

llvm-svn: 119402

show more ...


# 07bb1966 16-Nov-2010 John McCall <[email protected]>

Simplify some complex emission and implement correct semantics for
assignment to volatiles in C. This in effect reverts some of mjs's
work in and around r72572. Basically, the C++ standard is quite

Simplify some complex emission and implement correct semantics for
assignment to volatiles in C. This in effect reverts some of mjs's
work in and around r72572. Basically, the C++ standard is quite
clear, except that it lies about volatile behavior approximating
C's, whereas the C standard is almost actively misleading.

llvm-svn: 119344

show more ...


# fa8edb11 16-Nov-2010 John McCall <[email protected]>

Teach complex compound assignment IR-generation that the RHS of
a compound assignment is always already in the computation type.

llvm-svn: 119330


# 83fe49d1 14-Nov-2010 John McCall <[email protected]>

Always emit full loads from volatile complex l-values.
Return the result of a complex assignment with the original values,
not by performing a load from the l-value; this is the correct
semantics in

Always emit full loads from volatile complex l-values.
Return the result of a complex assignment with the original values,
not by performing a load from the l-value; this is the correct
semantics in C, although not in C++.

llvm-svn: 119037

show more ...


# d7646254 14-Nov-2010 John McCall <[email protected]>

Add a few more complex-related cast kinds that arise due to arbitrary
implicit conversions; the last batch was specific to promotions.
I think this is the full set we need. I do think dividing the

Add a few more complex-related cast kinds that arise due to arbitrary
implicit conversions; the last batch was specific to promotions.
I think this is the full set we need. I do think dividing the cast
kinds into floating and integral is probably a good idea.

Annotate a *lot* more C casts with useful cast kinds.

llvm-svn: 119036

show more ...


123456789