- Nov 12, 2008
-
-
Daniel Dunbar authored
- 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
-
- Nov 11, 2008
-
-
Daniel Dunbar authored
invariants. llvm-svn: 59085
-
Daniel Dunbar authored
llvm-svn: 59081
-
Anton Korobeynikov authored
Patch by Ilya Okonsky! llvm-svn: 59080
-
Ted Kremenek authored
- Added support for ObjCForCollectionStmt - Fixed bug where expression values would be always set to uninitialized when loops were involved llvm-svn: 59076
-
Ted Kremenek authored
llvm-svn: 59075
-
Chris Lattner authored
llvm-svn: 59061
-
Sebastian Redl authored
Introduce a single AST node SizeOfAlignOfExpr for all sizeof and alignof expressions, both of values and types. llvm-svn: 59057
-
Ted Kremenek authored
llvm-svn: 59053
-
Ted Kremenek authored
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_7_section_2.html#//apple_ref/doc/uid/TP30001163-CH18-SW3 Need to modify GRExprEngine, LiveVariables, and UninitializedValues to understand this construct. llvm-svn: 59049
-
Sebastian Redl authored
llvm-svn: 59042
-
Daniel Dunbar authored
- Emits an unconditional branch, with extra logic to avoid generating spurious branches out of dummy blocks. llvm-svn: 59037
-
Daniel Dunbar authored
llvm-svn: 59036
-
Chris Lattner authored
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
-
Chris Lattner authored
condition is a constant. This shrinks -O0 codegen by quite a bit on some cases. llvm-svn: 59033
-
Chris Lattner authored
llvm-svn: 59032
-
Chris Lattner authored
llvm-svn: 59027
-
Daniel Dunbar authored
"dummy" blocks (blocks just used to make sure we have a place to dump code to). llvm-svn: 59022
-
Daniel Dunbar authored
- Was confusing and only used in one small part of the code. llvm-svn: 59020
-
Daniel Dunbar authored
- No functionality change. llvm-svn: 59017
-
Zhongxing Xu authored
llvm-svn: 59015
-
Daniel Dunbar authored
llvm-svn: 59013
-
- Nov 10, 2008
-
-
Douglas Gregor authored
llvm-svn: 59000
-
Douglas Gregor authored
llvm-svn: 58990
-
Douglas Gregor authored
llvm-svn: 58989
-
Douglas Gregor authored
llvm-svn: 58988
-
Douglas Gregor authored
llvm-svn: 58987
-
Douglas Gregor authored
Some cleanups to the declaration/checking of overloaded operators in C++. Thanks to Sebastian for the review llvm-svn: 58986
-
Zhongxing Xu authored
llvm-svn: 58985
-
Zhongxing Xu authored
Implement RegionStoreManager::RemoveDeadBindings(). This prunes several false warning caused by removal of symbolic constraints. Currently we just mark all symbols live. Further optimization for dead binding removal needed. llvm-svn: 58982
-
Chris Lattner authored
speeds up the compiler by ~8% at -emit-llvm -O0. llvm-svn: 58977
-
Chris Lattner authored
1. emit proper debug info for forward decls of structs. 2. emit DW_TAG_member nodes around members of a field like llvm-gcc does. This slows down debug info generation, but is required for correctness. llvm-svn: 58973
-
Chris Lattner authored
using MachineModuleInfo. This runs at about the same speed as the old code, but fixes a bunch of bugs and is simpler and shorter. llvm-svn: 58971
-
Zhongxing Xu authored
Print integer value instead of raw pointer. This is a hack to be fixed by migrating the output in analyzer to llvm::raw_ostream. llvm-svn: 58965
-
Chris Lattner authored
llvm-svn: 58956
-
Argyrios Kyrtzidis authored
Introduce ScopedDecl::getLexicalDeclContext() which is different from ScopedDecl::getDeclContext() when there are nested-names. e.g.: namespace A { void f(); // SemanticDC (getDeclContext) == LexicalDC (getLexicalDeclContext) == 'namespace A' } void A::f(); // SemanticDC == namespace 'A' // LexicalDC == global namespace llvm-svn: 58948
-
- Nov 09, 2008
-
-
Argyrios Kyrtzidis authored
When a tag has nested-name ('struct foo::bar'), use not 'CurContext' but the context of the nested-name ('foo::'). llvm-svn: 58945
-
Argyrios Kyrtzidis authored
-Use more of the non nested-name code path. -Also use the ActOnTagStruct code path. llvm-svn: 58944
-
Anders Carlsson authored
llvm-svn: 58940
-
- Nov 08, 2008
-
-
Argyrios Kyrtzidis authored
llvm-svn: 58916
-