- Apr 22, 2009
-
-
Douglas Gregor authored
This optimization improves performance on the Carbon-prefixed "Hello, World!" example by 57%. For reference, we're now about 2.25x faster than GCC PCH. We're also pulling in far less of the PCH file: *** PCH Statistics: 411/20693 types read (1.986179%) 2553/59230 declarations read (4.310316%) 1093/44646 identifiers read (2.448148%) 1/32954 statements read (0.003035%) 21/6187 macros read (0.339421%) llvm-svn: 69755
-
Ted Kremenek authored
llvm-svn: 69754
-
Steve Naroff authored
llvm-svn: 69753
-
Chris Lattner authored
llvm-svn: 69752
-
Ted Kremenek authored
some refactoring I did recently to StoreManager. StoreManager::CastRegion: Handle casts to void* by stripping TypedViewRegions. llvm-svn: 69751
-
Chris Lattner authored
llvm-svn: 69750
-
Dan Gohman authored
practical benefit in the case of ScalarEvolution, and it's otherwise a nuisance. llvm-svn: 69749
-
Mike Stump authored
llvm-svn: 69748
-
Chris Lattner authored
llvm-svn: 69747
-
Mike Stump authored
r56595 timeframe, but left undone. Radar 6812711 llvm-svn: 69745
-
Douglas Gregor authored
name lookup of structures declared within other structures. llvm-svn: 69744
-
Evan Cheng authored
This fixes a very subtle bug. vr defined by an implicit_def is allowed overlap with any register since it doesn't actually modify anything. However, if it's used as a two-address use, its live range can be extended and it can be spilled. The spiller must take care not to emit a reload for the vn number that's defined by the implicit_def. This is both a correctness and performance issue. llvm-svn: 69743
-
-
rdar://problem/6777209Ted Kremenek authored
Fix: <rdar://problem/6777209> false Dereference of null pointer in loop: pointer increment/decrement preserves non-nullness When the StoreManager doesn't reason well about pointer-arithmetic, propagate the non-nullness constraint on a pointer value when performing pointer arithmetic uisng ++/--. llvm-svn: 69741
-
Ted Kremenek authored
llvm-svn: 69740
-
Douglas Gregor authored
unit into the PCH file, since we won't be performing name lookup into it anyway. Reduces the size of the Carbon.h PCH file by ~200k. llvm-svn: 69739
-
Chris Lattner authored
mark exactly the blocks which have references that are "live through". This fixes a rejects valid: rdar://6808730 - [sema] [blocks] block rejected at global scope llvm-svn: 69738
-
Douglas Gregor authored
identifiers from a precompiled header. This patch changes the primary name lookup method for entities within a precompiled header. Previously, we would load all of the names of declarations at translation unit scope into a large DenseMap (inside the TranslationUnitDecl's DeclContext), and then perform a special "last resort" lookup into this DeclContext when we knew there was a PCH file (see Sema::LookupName). Now, when we see an identifier named for the first time, we load all of the declarations with that name that are visible from the translation unit into the IdentifierInfo's chain of declarations. Thus, the explicit "look into the translation unit's DeclContext" code is gone, and Sema effectively uses the same IdentifierInfo-based name lookup mechanism whether we are using a PCH file or not. This approach should help PCH scale with the size of the input program rather than the size of the PCH file. The "Hello, World!" application with Carbon.h as a PCH file now loads 20% of the identifiers in the PCH file rather than 85% of the identifiers. 90% of the 20% of identifiers loaded are actually loaded when we deserialize the preprocessor state. The next step is to make the preprocessor load macros lazily, which should drastically reduce the number of types, declarations, and identifiers loaded for "Hello, World". llvm-svn: 69737
-
Chris Lattner authored
llvm-svn: 69731
-
- Apr 21, 2009
-
-
Ted Kremenek authored
into StoreManager::CastRegion. Both methods were practically identical, and this is core logic that is common to all StoreManagers since it defines the basic invariants of the abstract memory model. llvm-svn: 69730
-
Chris Lattner authored
llvm-svn: 69729
-
Daniel Dunbar authored
@implementation that closes a @class delcaration. - I don't know how to make a test case for this, but this strengthens the invariants that hold internally. The functionality change here is the edit to SemaDeclObjC.cpp. llvm-svn: 69728
-
Daniel Dunbar authored
llvm-svn: 69727
-
Daniel Dunbar authored
llvm-svn: 69721
-
Chris Lattner authored
llvm-svn: 69720
-
Ted Kremenek authored
pieces. llvm-svn: 69719
-
Fariborz Jahanian authored
llvm-svn: 69710
-
Dan Gohman authored
type to truncate to should be the number of bits of the value that are preserved, not the number that are clobbered with sign-extension. This fixes regressions in ldecod. llvm-svn: 69704
-
Ted Kremenek authored
llvm-svn: 69703
-
Ted Kremenek authored
the build). llvm-svn: 69702
-
Chris Lattner authored
in non-fragile abi mode. rdar://6811884 llvm-svn: 69701
-
Mikhail Glushenkov authored
Should now work when building with objdir != srcdir and when llvm-gcc is not available. Thanks to Duncan Sands for testing and advice! llvm-svn: 69700
-
Douglas Gregor authored
llvm-svn: 69699
-
Daniel Dunbar authored
llvm-svn: 69697
-
Fariborz Jahanian authored
llvm-svn: 69695
-
Ted Kremenek authored
llvm-svn: 69694
-
Ted Kremenek authored
llvm-svn: 69688
-
Chris Lattner authored
in cases like this: typedef struct { short instance; char name[0]; } ATTR_LIST_ENTRY2; void test() { ATTR_LIST_ENTRY2 X = (ATTR_LIST_ENTRY2) { .instance = 7, }; } While it is safe to emit them, it is pretty silly. llvm-svn: 69687
-
Ted Kremenek authored
layered regions. llvm-svn: 69686
-
Devang Patel authored
llvm-svn: 69684
-