History log of /llvm-project-15.0.7/clang/lib/CodeGen/CGExprAgg.cpp (Results 151 – 175 of 476)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# e30752c9 09-Oct-2012 Richard Smith <[email protected]>

-fcatch-undefined-behavior: emit calls to the runtime library whenever one of the checks fails.

llvm-svn: 165536


# 1ca66919 30-Sep-2012 Benjamin Kramer <[email protected]>

CodeGen: Copy tail padding when we're not dealing with a trivial copy assign or move assign operator.

This fixes a regression from r162254, the optimizer has problems reasoning
about the smaller mem

CodeGen: Copy tail padding when we're not dealing with a trivial copy assign or move assign operator.

This fixes a regression from r162254, the optimizer has problems reasoning
about the smaller memcpy as it's often not safe to widen a store but making it
smaller is.

llvm-svn: 164917

show more ...


# 22695fce 28-Sep-2012 Dan Gohman <[email protected]>

Add basic support for adding !tbaa.struct metadata on llvm.memcpy calls for
struct assignment.

llvm-svn: 164853


# 4d1458ed 08-Sep-2012 Richard Smith <[email protected]>

-fcatch-undefined-behavior: Factor emission of the creation of, and branch to,
the trap BB out of the individual checks and into a common function, to prepare
for making this code call into a runtime

-fcatch-undefined-behavior: Factor emission of the creation of, and branch to,
the trap BB out of the individual checks and into a common function, to prepare
for making this code call into a runtime library. Rename the existing EmitCheck
to EmitTypeCheck to clarify it and to move it out of the way of the new
EmitCheck.

llvm-svn: 163451

show more ...


# 34866c77 31-Aug-2012 Eli Friedman <[email protected]>

Change the representation of builtin functions in the AST
(__builtin_* etc.) so that it isn't possible to take their address.
Specifically, introduce a new type to represent a reference to a builtin

Change the representation of builtin functions in the AST
(__builtin_* etc.) so that it isn't possible to take their address.
Specifically, introduce a new type to represent a reference to a builtin
function, and a new cast kind to convert it to a function pointer in the
operand of a call. Fixes PR13195.

llvm-svn: 162962

show more ...


# 69d0d262 24-Aug-2012 Richard Smith <[email protected]>

New -fcatch-undefined-behavior features:
* when checking that a pointer or reference refers to appropriate storage for a type, also check the alignment and perform a null check
* check that referen

New -fcatch-undefined-behavior features:
* when checking that a pointer or reference refers to appropriate storage for a type, also check the alignment and perform a null check
* check that references are bound to appropriate storage
* check that 'this' has appropriate storage in member accesses and member function calls

llvm-svn: 162523

show more ...


# f1249929 21-Aug-2012 John McCall <[email protected]>

When performing a trivial copy of a C++ type, we must be careful not
to overwrite objects that might have been allocated into the type's
tail padding. This patch is missing some potential optimizati

When performing a trivial copy of a C++ type, we must be careful not
to overwrite objects that might have been allocated into the type's
tail padding. This patch is missing some potential optimizations where
the destination is provably a complete object, but it's necessary for
correctness.

Patch by Jonathan Sauer.

llvm-svn: 162254

show more ...


# 4e8ca4fa 02-Jul-2012 John McCall <[email protected]>

Significantly simplify CGExprAgg's logic about ignored results:
if we want to ignore a result, the Dest will be null. Otherwise,
we must copy into it. This means we need to ensure a slot when
loadi

Significantly simplify CGExprAgg's logic about ignored results:
if we want to ignore a result, the Dest will be null. Otherwise,
we must copy into it. This means we need to ensure a slot when
loading from a volatile l-value.

With all that in place, fix a bug with chained assignments into
__block variables of aggregate type where we were losing insight into
the actual source of the value during the second assignment.

llvm-svn: 159630

show more ...


# be302454 15-Jun-2012 James Dennett <[email protected]>

Documentation cleanup:
* Escaped Objective-C @keywords in Doxygen comments;
* Documented more accurate \params;
* Exposed some more summaries using \brief.

llvm-svn: 158559


# 40ed2973 06-Jun-2012 David Blaikie <[email protected]>

Revert Decl's iterators back to pointer value_type rather than reference value_type

In addition, I've made the pointer and reference typedef 'void' rather than T*
just so they can't get misused. I w

Revert Decl's iterators back to pointer value_type rather than reference value_type

In addition, I've made the pointer and reference typedef 'void' rather than T*
just so they can't get misused. I would've omitted them entirely but
std::distance likes them to be there even if it doesn't use them.

This rolls back r155808 and r155869.

Review by Doug Gregor incorporating feedback from Chandler Carruth.

llvm-svn: 158104

show more ...


Revision tags: llvmorg-3.1.0, llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2
# 2d7c57ec 30-Apr-2012 David Blaikie <[email protected]>

Remove the ref/value inconsistency in filter_decl_iterator.

filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
making it difficult to generalize this filtering behavior in

Remove the ref/value inconsistency in filter_decl_iterator.

filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
making it difficult to generalize this filtering behavior into a reusable
library of any kind.

This change errs on the side of value, making op-> return T* and op* return
T&.

(reviewed by Richard Smith)

llvm-svn: 155808

show more ...


Revision tags: llvmorg-3.1.0-rc1
# 1e303eef 17-Apr-2012 Chad Rosier <[email protected]>

Fix case where the alignment is overaligned, per Eli's suggestion.
rdar://11220251

llvm-svn: 154893


# a750d46c 17-Apr-2012 Chad Rosier <[email protected]>

Make sure EmitMoveFromReturnSlot is passing the correct alignment to
EmitFinalDestCopy (and thus pass EmitAggregateCopy the correct alignment).
rdar://11220251

llvm-svn: 154883


# 7f1ff600 16-Apr-2012 Eli Friedman <[email protected]>

Propagate alignment on lvalues through EmitLValueForField. PR12395.

llvm-svn: 154789


# 9ec1e48b 15-Apr-2012 Richard Smith <[email protected]>

PR12226: don't generate wrong code if a braced string literal is used to
initialize an array of unsigned char. Outside C++11 mode, this bug was benign,
and just resulted in us emitting a constant whi

PR12226: don't generate wrong code if a braced string literal is used to
initialize an array of unsigned char. Outside C++11 mode, this bug was benign,
and just resulted in us emitting a constant which was double the required
length, padded with 0s. In C++11, it resulted in us generating an array whose
first element was something like i8 ptrtoint ([n x i8]* @str to i8).

llvm-svn: 154756

show more ...


# 615ed1a3 29-Mar-2012 Chad Rosier <[email protected]>

Revert r153613 as it's causing large compile-time regressions on the nightly testers.

llvm-svn: 153660


# 1a0877f9 28-Mar-2012 John McCall <[email protected]>

When we can't prove that the target of an aggregate copy is
a complete object, the memcpy needs to use the data size of
the structure instead of its sizeof() value. Fixes PR12204.

llvm-svn: 153613


# bbafb8a7 11-Mar-2012 David Blaikie <[email protected]>

Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).

The member variable is always "LangOpts" and the member function is always "getLangOpts".

Reviewed by Chris La

Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).

The member variable is always "LangOpts" and the member function is always "getLangOpts".

Reviewed by Chris Lattner

llvm-svn: 152536

show more ...


# 113bee05 10-Mar-2012 John McCall <[email protected]>

Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to
track whether the referenced declaration comes from an enclosing
local context. I'm amenable to suggestions about the exact meaning
of t

Remove BlockDeclRefExpr and introduce a bit on DeclRefExpr to
track whether the referenced declaration comes from an enclosing
local context. I'm amenable to suggestions about the exact meaning
of this bit.

llvm-svn: 152491

show more ...


# 71335059 10-Mar-2012 John McCall <[email protected]>

Unify the BlockDeclRefExpr and DeclRefExpr paths so that
we correctly emit loads of BlockDeclRefExprs even when they
don't qualify as ODR-uses. I think I'm adequately convinced
that BlockDeclRefExpr

Unify the BlockDeclRefExpr and DeclRefExpr paths so that
we correctly emit loads of BlockDeclRefExprs even when they
don't qualify as ODR-uses. I think I'm adequately convinced
that BlockDeclRefExpr can die.

llvm-svn: 152479

show more ...


# 576cbd03 29-Feb-2012 Eli Friedman <[email protected]>

Make sure list-initialization of arrays works correctly in explicit type conversions. PR12121.

llvm-svn: 151674


# f2e0a307 25-Feb-2012 Sebastian Redl <[email protected]>

Fix crashers on unexpected std::initializer_list layouts. Found by inspection.

llvm-svn: 151456


# cb3785e4 24-Feb-2012 Eli Friedman <[email protected]>

Fix a stupid mistake in r151133. Reported to me by Joerg Sonnenberger.

llvm-svn: 151407


# 91f5ae50 23-Feb-2012 Eli Friedman <[email protected]>

Try to handle qualifiers more consistently for array InitListExprs. Fixes <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.

(I've chosen to keep the qualifiers, but it isn't

Try to handle qualifiers more consistently for array InitListExprs. Fixes <rdar://problem/10907510>, and makes the ASTs a bit more self-consistent.

(I've chosen to keep the qualifiers, but it isn't a strong preference; if anyone prefers removing them, please yell.)

llvm-svn: 151229

show more ...


# 91d5bb1e 22-Feb-2012 Eli Friedman <[email protected]>

Make sure null initialization in arrays works correctly with ARC types. <rdar://problem/10907547>.

llvm-svn: 151133


12345678910>>...20