History log of /llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp (Results 976 – 1000 of 1023)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# bf3c22e5 12-Nov-2008 Daniel Dunbar <daniel@zuster.org>

Handle ?: in EmitBranchOnBoolExpr.

llvm-svn: 59129


# d9537734 12-Nov-2008 Chris Lattner <sabre@nondot.org>

Handle Unary ! in EmitBranchOnBoolExpr, so that we can efficiently
codegen stuff like "if (!(X && Y))"

llvm-svn: 59115


# cd439299 12-Nov-2008 Chris Lattner <sabre@nondot.org>

Move EmitBranchOnBoolExpr and ConstantFoldsToSimpleInteger to
CodeGenFunction.cpp. Change VisitConditionalOperator to use
constant fold instead of codegen'ing a constant conditional.

Change ForStmt

Move EmitBranchOnBoolExpr and ConstantFoldsToSimpleInteger to
CodeGenFunction.cpp. Change VisitConditionalOperator to use
constant fold instead of codegen'ing a constant conditional.

Change ForStmt to use EmitBranchOnBoolExpr, this shrinks
expr.c very slightly to 40239 lines.

llvm-svn: 59113

show more ...


# 5c7e3935 11-Nov-2008 Daniel Dunbar <daniel@zuster.org>

Rework IRgen invariant w.r.t. current insert point.
- EmitStmt is no longer required to finish with a current insertion
point defined (i.e. it does not need to make dummy
blocks). Instead, it

Rework IRgen invariant w.r.t. current insert point.
- EmitStmt is no longer required to finish with a current insertion
point defined (i.e. it does not need to make dummy
blocks). Instead, it can clear the insertion point in the builder
which indicates that the current insertion point is unreachable.
- CodeGenFunction provides HaveInsertPoint and EnsureInsertPoint
which respectively test if there is an insert point and ensure an
insertion point exists (by making a dummy block).
- Clearly mark functions in CodeGenFunction which can be called with
no insertion point defined. Currently this is a limited set, and
EmitStmt simply EnsureInsertPoint()s before emitting subsequent IR.

Remove EmitDummyBlock, which is no longer needed. Clients who haven't
already cleared the insertion point (typically via EmitBranch) can do
so by hand.

Remove isDummyBlock, which has effectively been renamed to
HaveInsertPoint.

The main thrust of this change is that we no longer have create dummy
blocks just to destroy them a short time later in EmitBlock in the
common case that there is no unreachable code following something like
a goto.

Additionally, this means that we are not using the hokey condition in
isDummyBlock that a block without a name is a dummy block. Guess how
well that works when we never emit block names!

llvm-svn: 59089

show more ...


# fab3f936 11-Nov-2008 Daniel Dunbar <daniel@zuster.org>

Emit debug region end in unified return block.

llvm-svn: 59081


# 5b1964b5 11-Nov-2008 Chris Lattner <sabre@nondot.org>

short circuit && and || when possible. This substantially reduces
the size of the -O0 output on some cases. For example, on expr.c from
176.gcc, it shrinks the .ll file from 43164 to 42835 lines, a

short circuit && and || when possible. This substantially reduces
the size of the -O0 output on some cases. For example, on expr.c from
176.gcc, it shrinks the .ll file from 43164 to 42835 lines, and removed
references to two external symbols.

llvm-svn: 59034

show more ...


# 05e629ae 11-Nov-2008 Daniel Dunbar <daniel@zuster.org>

Remove CodeGenFunction::StartBlock.
- Was confusing and only used in one small part of the code.

llvm-svn: 59020


# 75283ff3 11-Nov-2008 Daniel Dunbar <daniel@zuster.org>

Centralize basic block creation in CodeGenFunction::createBasicBlock.
- No functionality change.

llvm-svn: 59017


Revision tags: llvmorg-2.4.0
# 13abd7e9 04-Nov-2008 Anders Carlsson <andersca@mac.com>

Implement lowering of va_arg in clang directly. (This is 32-bit X86 only for now).

llvm-svn: 58681


# 5b06d9f2 28-Oct-2008 Daniel Dunbar <daniel@zuster.org>

Don't run the verifier as part of IRgen, this is now down (per module)
in the driver (this means we no longer run the verifier per function, however).

llvm-svn: 58307


# 354d2785 18-Oct-2008 Daniel Dunbar <daniel@zuster.org>

Debug info bug fix, function start wasn't getting generated correctly
for Obj-C methods.

llvm-svn: 57769


# b9fd902f 17-Oct-2008 Daniel Dunbar <daniel@zuster.org>

Change CGDebugInfo::setLocation to just ignore invalid locations. This
simplifies clients.

Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.

llvm-svn: 57684


# 274ff375 27-Sep-2008 Daniel Dunbar <daniel@zuster.org>

Simplify code to emit the unified return block and move it to the end
of the function.

llvm-svn: 56752


# d9d1f5f5 17-Sep-2008 Daniel Dunbar <daniel@zuster.org>

Print current function on verification failures.

llvm-svn: 56291


# 9396a898 11-Sep-2008 Anders Carlsson <andersca@mac.com>

Make sure to store the exception in the catch parameter.

llvm-svn: 56102


# 613855c8 09-Sep-2008 Daniel Dunbar <daniel@zuster.org>

Move ABI specific code for functions / calls to CGCall.cpp:
- Factor out EmitFunction{Pro,Epi}log

llvm-svn: 56031


# bc915f40 09-Sep-2008 Daniel Dunbar <daniel@zuster.org>

Factor CodeGenFunction::StartFunction out of GenerateCode and
StartObjCMethod.

llvm-svn: 56030


# 54bb1933 09-Sep-2008 Daniel Dunbar <daniel@zuster.org>

Use a unified return block.
- For the time being this means our emitted code is somewhat worse,
especially for aggregates. This will be fixed.

llvm-svn: 56013


# f2cf6d16 04-Sep-2008 Daniel Dunbar <daniel@zuster.org>

Avoid superfluous errors regarding variable-length arrays (casts).

llvm-svn: 55759


# 2e744e8a 30-Aug-2008 Anders Carlsson <andersca@mac.com>

Stub out CodeGenFunction::EmitObjCForCollectionStmt.

Add CodeGenFunction::EmitMemSetToZero and make AggExprEmitter::EmitAggregateClear use it.

llvm-svn: 55573


# 89654eef 26-Aug-2008 Daniel Dunbar <daniel@zuster.org>

Objective-C @synthesize support.
- Only supports simple assignment and atomic semantics are ignored.
- Not quite usable yet because the methods do not actually get added
to the class metadata.

Objective-C @synthesize support.
- Only supports simple assignment and atomic semantics are ignored.
- Not quite usable yet because the methods do not actually get added
to the class metadata.
- Added ObjCPropertyDecl::getSetterKind (one of Assign, Copy, Retain).
- Rearrange CodeGenFunction so synthesis can reuse function prolog /
epilog code.

llvm-svn: 55365

show more ...


# 3d421e19 25-Aug-2008 Eli Friedman <eli.friedman@gmail.com>

Do typechecking and codegen for K&R-style function declarations
correctly. Not a regression, but made more obvious by my recent fix
which made function type compatibility checking a bit more stric

Do typechecking and codegen for K&R-style function declarations
correctly. Not a regression, but made more obvious by my recent fix
which made function type compatibility checking a bit more strict.

llvm-svn: 55339

show more ...


# a7c8cf62 16-Aug-2008 Daniel Dunbar <daniel@zuster.org>

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


# 56fdb6ae 11-Aug-2008 Daniel Dunbar <daniel@zuster.org>

More #include cleaning
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried

More #include cleaning
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.

llvm-svn: 54632

show more ...


# 6e8aa537 11-Aug-2008 Daniel Dunbar <daniel@zuster.org>

More #include cleaning
- Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h
- Moved Sema::getCurMethodDecl() out of line (dependent on
ObjCMethodDecl via dyn_cast).

llvm-svn: 54629


1...<<3132333435363738394041