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