| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
committed after
its initial creation/deserialization and store the changes in a chained PCH.
The idea is that the AST entities call methods on the ASTMutationListener to give notifications
of changes; the PCHWriter implements the ASTMutationListener interface and stores the incremental changes
of the updated entity. WIP
llvm-svn: 117235
|
|
|
|
|
|
|
|
|
|
| |
This adds an option to set the _MSC_VER macro without
recompiling. This is very useful when testing compatibility
with the Windows SDK and c++stdlib headers.
-fmsc-version=<version> (defaults to VS2003 (1300))
llvm-svn: 116999
|
|
|
|
| |
llvm-svn: 116990
|
|
|
|
|
|
|
|
|
| |
inclusion directives, keeping track of every #include, #import,
etc. in the translation unit. We keep track of the source location and
kind of the inclusion, how the file name was spelled, and the
underlying file to which the inclusion resolved.
llvm-svn: 116952
|
|
|
|
|
|
|
|
|
| |
declaration block instead of trying to create another block.
The new block was messing with the assumption that after decls block comes the stmts block.
Fixes http://llvm.org/PR8406
llvm-svn: 116737
|
|
|
|
|
|
| |
QualifierInfos (rdar://8513756).
llvm-svn: 116598
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
iterate over them,
instead of deserializing the complete declaration context of the record.
Iterating over the fields of a record is very common (e.g to determine the layout), unfortunately we needlessly deserialize every declaration
that the declaration context of the record contains; this can be bad for large C++ classes that contain a lot of methods.
Fix this by allow deserialization of just the fields when we want to iterate over them.
Progress for rdar://7260160.
llvm-svn: 116507
|
|
|
|
|
|
|
| |
'super' as receiver of property or a setter/getter
methods. //rdar: //8525788
llvm-svn: 116483
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
following amusing sequence:
- AST writing schedules writing a type X* that it had never seen
before
- AST writing starts writing another declaration, ends up
deserializing X* from a prior AST file. Now we have two type IDs for
the same type!
- AST writer tries to write X*. It only has the lower-numbered ID
from the the prior AST file, so references to the higher-numbered ID
that was scheduled for writing go off into lalaland.
To fix this, keep the higher-numbered ID so we end up writing the type
twice. Since this issue occurs so rarely, and type records are
generally rather small, I deemed this better than the alternative: to
keep a separate mapping from the higher-numbered IDs to the
lower-numbered IDs, which we would end up having to check whenever we
want to deserialize any type.
Fixes <rdar://problem/8511624>, I think.
llvm-svn: 115647
|
|
|
|
|
|
| |
it into a chained PCH file.
llvm-svn: 115527
|
|
|
|
|
|
| |
the "detailed" preprocessing record.
llvm-svn: 115417
|
|
|
|
|
|
|
|
|
|
| |
auto f(int) -> int
from Daniel Wallin!
(With a few minor bug fixes from me).
llvm-svn: 115322
|
|
|
|
|
|
|
| |
file is somehow changed in a chained PCH file, make sure that we write
out the macro definition. Fixes part of <rdar://problem/8499034>.
llvm-svn: 115259
|
|
|
|
| |
llvm-svn: 114922
|
|
|
|
|
|
| |
them the correct IDs. Fixes a crash in XCode.
llvm-svn: 114913
|
|
|
|
| |
llvm-svn: 114575
|
|
|
|
| |
llvm-svn: 114014
|
|
|
|
| |
llvm-svn: 113185
|
|
|
|
| |
llvm-svn: 112820
|
|
|
|
|
|
| |
functionality changed.
llvm-svn: 112040
|
|
|
|
| |
llvm-svn: 112026
|
|
|
|
|
|
| |
the chain. This ought to finish C++ chained PCH support.
llvm-svn: 111986
|
|
|
|
|
|
| |
If someone wants to fix this some other way....
llvm-svn: 111905
|
|
|
|
| |
llvm-svn: 111882
|
|
|
|
|
|
| |
no tests for the chain yet.
llvm-svn: 111881
|
|
|
|
|
|
|
|
|
|
|
| |
"using an AST on-disk hash table for name lookup" commit.
When including a PCH and later re-emitting to another PCH, the name lookup tables of DeclContexts
may be incomplete, since we now lazily deserialize the visible decls of a particular name.
Fix the issue by iterating over the un-deserialized visible decls and completing the lookup tables
of DeclContexts before writing them out.
llvm-svn: 111698
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*Huge* improvement over the amount of deserializing that we do for C++ lookup.
e.g, if he have the Carbon header precompiled and include it on a file containing this:
int x;
these are the before/after stats:
BEFORE:
*** AST File Statistics:
578 stat cache hits
4 stat cache misses
548/30654 source location entries read (1.787695%)
15907/16501 types read (96.400223%)
53525/59955 declarations read (89.275291%)
33993/43525 identifiers read (78.099945%)
41516/51891 statements read (80.006165%)
77/5317 macros read (1.448185%)
0/6335 lexical declcontexts read (0.000000%)
1/5424 visible declcontexts read (0.018437%)
AFTER using the on-disk table:
*** AST File Statistics:
578 stat cache hits
4 stat cache misses
548/30654 source location entries read (1.787695%)
10/16501 types read (0.060602%)
9/59955 declarations read (0.015011%)
161/43525 identifiers read (0.369902%)
20/51891 statements read (0.038542%)
6/5317 macros read (0.112846%)
0/6335 lexical declcontexts read (0.000000%)
2/5424 visible declcontexts read (0.036873%)
There's only one issue affecting mostly the precompiled preambles which I will address soon.
llvm-svn: 111636
|
|
|
|
|
|
| |
lookup inside a DeclContext but don't use it yet.
llvm-svn: 111635
|
|
|
|
|
|
|
|
|
|
| |
more generic
MakeTypeID template function which accepts a type and a function object that returns a TypeIdx.
MakeTypeID is in PCHCommon.h so that it can be used by ASTReader too.
llvm-svn: 111634
|
|
|
|
|
|
|
|
| |
AddTypeRef there.
No functionality change.
llvm-svn: 111633
|
|
|
|
|
|
|
|
| |
emission of types there.
No functionality change.
llvm-svn: 111632
|
|
|
|
| |
llvm-svn: 111631
|
|
|
|
|
|
|
|
| |
as index + qualifiers.
Disambiguate and provide some type safety by using a new class TypeIdx for the "TypeID as index" semantics.
llvm-svn: 111630
|
|
|
|
|
|
|
|
| |
copies in PCHReader and PCHWriter.
No functionality change.
llvm-svn: 111629
|
|
|
|
| |
llvm-svn: 111478
|
|
|
|
| |
llvm-svn: 111475
|
|
|
|
| |
llvm-svn: 111474
|
|
|
|
| |
llvm-svn: 111472
|
|
|
|
| |
llvm-svn: 111467
|
|
|
|
| |
llvm-svn: 111466
|
|
llvm-svn: 111465
|