History log of /llvm-project-15.0.7/clang/lib/CodeGen/CGExprAgg.cpp (Results 451 – 475 of 476)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# c8317a44 23-Aug-2008 Daniel Dunbar <[email protected]>

Implement Obj-C ivar references to aggregates.

Implement Obj-C lvalue message sends (aggregate returns).

Update several places to emit more precise ErrorUnsupported warnings
for currently unimple

Implement Obj-C ivar references to aggregates.

Implement Obj-C lvalue message sends (aggregate returns).

Update several places to emit more precise ErrorUnsupported warnings
for currently unimplemented Obj-C features (main missing chunks are
property references, Obj-C exception handling, and the for ... in
syntax).

llvm-svn: 55234

show more ...


# 97db84ce 23-Aug-2008 Daniel Dunbar <[email protected]>

Trim CGObjCRuntime::GenerateMessageSend[Super]
- Returns an RValue.
- Reduced to only taking the CodeGenFunction, Expr, and Receiver.
- Becomes responsible for emitting the arguments.

Add CodeGen

Trim CGObjCRuntime::GenerateMessageSend[Super]
- Returns an RValue.
- Reduced to only taking the CodeGenFunction, Expr, and Receiver.
- Becomes responsible for emitting the arguments.

Add CodeGenFunction::EmitCallExprExt
- Takes optional extra arguments to insert at the head of the call.
- This allows the Obj-C runtimes to call into this and isolates the
argument and call instruction generation code to one place. Upshot
is that we now pass structures (more) correctly.

Also, fix one aspect of generating methods which take structure
arguments (for NeXT). This probably needs to be merged with the
SetFunctionAttributes code in CodeGenModule.cpp

llvm-svn: 55223

show more ...


# a7c8cf62 16-Aug-2008 Daniel Dunbar <[email protected]>

Change WarnUnsupported to ErrorUnsupported (in name and in practice).
- We are beyond the point where this shows up often and when it does
generating miscompiled files is bad.

llvm-svn: 54836


# ad319a73 11-Aug-2008 Daniel Dunbar <[email protected]>

More #include cleaning
- Remove internal uses of AST.h

llvm-svn: 54628


# c893a67f 08-Aug-2008 Chris Lattner <[email protected]>

update to make IRBuilder API change.

llvm-svn: 54548


# e8bdce44 06-Aug-2008 Daniel Dunbar <[email protected]>

Fix EmitNullInitializationToLValue for bitfield lvalues.
- PR2643

llvm-svn: 54397


# 7adf0760 04-Aug-2008 Chris Lattner <[email protected]>

Finally fix PR2189. This makes a fairly invasive but important change to
move getAsArrayType into ASTContext instead of being a method on type.
This is required because getAsArrayType(const AT), whe

Finally fix PR2189. This makes a fairly invasive but important change to
move getAsArrayType into ASTContext instead of being a method on type.
This is required because getAsArrayType(const AT), where AT is a typedef
for "int[10]" needs to return ArrayType(const int, 10).

Fixing this greatly simplifies getArrayDecayedType, which is a good sign.

llvm-svn: 54317

show more ...


# b39b1cd7 30-Jul-2008 Daniel Dunbar <[email protected]>

Fix implicit initialization of structures.

<rdar://problem/6113085>

llvm-svn: 54237


# 0f398c44 26-Jul-2008 Chris Lattner <[email protected]>

remove uses of QualType::getCanonicalType() from codegen for PR2189

llvm-svn: 54107


# b1d329da 24-Jun-2008 Chris Lattner <[email protected]>

"Support for Objective-C message sends which return structures. Also includes a small fix for constant string handling that should have been in the last patch (sorry!) and a hook for generating sele

"Support for Objective-C message sends which return structures. Also includes a small fix for constant string handling that should have been in the last patch (sorry!) and a hook for generating selectors (rest of this implementation to follow in the next patch)."

Patch by David Chisnall!

llvm-svn: 52681

show more ...


# 08e17118 17-Jun-2008 Ted Kremenek <[email protected]>

This patch is motivated by numerous strict-aliasing warnings when compiling
clang as a Release build.

The big change is that all AST nodes (subclasses of Stmt) whose children are
Expr* store their c

This patch is motivated by numerous strict-aliasing warnings when compiling
clang as a Release build.

The big change is that all AST nodes (subclasses of Stmt) whose children are
Expr* store their children as Stmt* or arrays of Stmt*. This is to remove
strict-aliasing warnings when using StmtIterator. None of the interfaces of any
of the classes have changed (except those with arg_iterators, see below), as the
accessor methods introduce the needed casts (via cast<>). While this extra
casting may seem cumbersome, it actually adds some important sanity checks
throughout the codebase, as clients using StmtIterator can potentially overwrite
children that are expected to be Expr* with Stmt* (that aren't Expr*). The casts
provide extra sanity checks that are operational in debug builds to catch
invariant violations such as these.

For classes that have arg_iterators (e.g., CallExpr), the definition of
arg_iterator has been replaced. Instead of it being Expr**, it is an actual
class (called ExprIterator) that wraps a Stmt**, and provides the necessary
operators for iteration. The nice thing about this class is that it also uses
cast<> to type-checking, which introduces extra sanity checks throughout the
codebase that are useful for debugging.

A few of the CodeGen functions that use arg_iterator (especially from
OverloadExpr) have been modified to take begin and end iterators instead of a
base Expr** and the number of arguments. This matches more with the abstraction
of iteration. This still needs to be cleaned up a little bit, as clients expect
that ExprIterator is a RandomAccessIterator (which we may or may not wish to
allow for efficiency of representation).

This is a fairly large patch. It passes the tests (except CodeGen/bitfield.c,
which was already broken) on both a Debug and Release build, but it should
obviously be reviewed.

llvm-svn: 52378

show more ...


# 327944b3 13-Jun-2008 Eli Friedman <[email protected]>

Basic support for volatile loads and stores. Stores the volatile
qualifier in the lvalue, and changes lvalue loads/stores to honor
the volatile flag. Places which need some further attention are m

Basic support for volatile loads and stores. Stores the volatile
qualifier in the lvalue, and changes lvalue loads/stores to honor
the volatile flag. Places which need some further attention are marked
with FIXMEs.

Patch by Cédric Venet.

llvm-svn: 52264

show more ...


Revision tags: llvmorg-2.3.0
# 21911e89 27-May-2008 Eli Friedman <[email protected]>

A few more cases for aggregate values.

llvm-svn: 51596


# df649f3d 26-May-2008 Eli Friedman <[email protected]>

Emit memmove, not memcpy, for structure copies; this is unfortunately
required for correctness in cases of copying a struct to itself or to
an overlapping struct (itself for cases like *a = *a, and

Emit memmove, not memcpy, for structure copies; this is unfortunately
required for correctness in cases of copying a struct to itself or to
an overlapping struct (itself for cases like *a = *a, and overlapping
is possible with unions).

Hopefully, this won't end up being a perf issue; LLVM *should* be able
to optimize memmove to memcpy in a lot of cases, and for small copies
the generated code *should* be mostly comparable. (In reality, LLVM
is currently horrible at optimizing memmove, but that's a bug, not a
fundamental issue.)

gcc currently generates wrong code; that's
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667.

llvm-svn: 51566

show more ...


# 5d30975e 22-May-2008 Dan Gohman <[email protected]>

Change uses of llvm::Type::isFirstClassType to use the new
llvm::Type::isSingleValueType. Currently these two functions have
the same behavior, but soon isFirstClassType will return true for
struct a

Change uses of llvm::Type::isFirstClassType to use the new
llvm::Type::isSingleValueType. Currently these two functions have
the same behavior, but soon isFirstClassType will return true for
struct and array types.

Clang may some day want to use of isFirstClassType for some of
these some day as an optimization, but it'll require some
consideration.

llvm-svn: 51446

show more ...


# 4b0e2a30 20-May-2008 Eli Friedman <[email protected]>

Implement codegen for comma operator for structs.

llvm-svn: 51304


# f23b6fa4 19-May-2008 Eli Friedman <[email protected]>

Fix the emission of expressions like char a[10] = "asdf"; previously,
they were causing bad code to be emitted. There are two fixes here: one
makes sure we emit a string that is long enough, and o

Fix the emission of expressions like char a[10] = "asdf"; previously,
they were causing bad code to be emitted. There are two fixes here: one
makes sure we emit a string that is long enough, and one makes sure we
properly handle string initialization in init lists.

llvm-svn: 51259

show more ...


# 6e313210 12-May-2008 Eli Friedman <[email protected]>

Don't try to take the address of a bitfield; fixes PR2310.

llvm-svn: 50966


# dbcc2ca6 06-May-2008 Chris Lattner <[email protected]>

simplify some builder calls.

llvm-svn: 50694


# 61705c1a 13-Apr-2008 Chris Lattner <[email protected]>

update to follow mainline llvm API change.

llvm-svn: 49607


# aa9c7aed 08-Apr-2008 Chris Lattner <[email protected]>

Add support for C++ default arguments, and rework Parse-Sema
interaction for function parameters, fixing PR2046.

Patch by Doug Gregor!

llvm-svn: 49369


# d36afd7d 06-Apr-2008 Gabor Greif <[email protected]>

tracking API changes arising from r49277

llvm-svn: 49279


# 579a05d7 04-Apr-2008 Chris Lattner <[email protected]>

Fix PR2049, updating Eli's patch that fixes to mainline. This produces incorrect
code, but the codegen doesn't crash. I'll file a bugzilla for the AST being wrong.

llvm-svn: 49226


# f3bc75af 04-Apr-2008 Chris Lattner <[email protected]>

Since isComplexType() no longer returns true for _Complex integers, the code
generator needs to call isAnyComplexType(). This fixes PR1960.

llvm-svn: 49220


# 3e593cdb 19-Mar-2008 Chris Lattner <[email protected]>

simplify the clang codegen by using the new Builder.CreateStructGEP method.

llvm-svn: 48534


1...<<11121314151617181920