| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
store/retrieve the most recent
redeclaration. That way we are sure that the full redeclarations chain is loaded.
When using chained PCHs, first declarations point to the most recent redeclarations in the same PCH.
To address this use a REDECLS_UPDATE_LATEST record block to keep track of which first declarations need
to point to a most recent redeclaration in another PCH.
llvm-svn: 110125
|
| |
|
|
|
|
|
|
|
|
| |
-Replace CurrentlyLoadingTypeOrDecl with a counting scheme (NumCurrentElementsDeserializing)
-Provide outside access to the mechanism by adding methods StartedDeserializing/FinishedDeserializing
to ExternalASTSource.
These are preparation for the next commit.
llvm-svn: 109856
|
| |
|
|
|
|
|
| |
This patch adds a Latest field to RedeclarableTemplateDecl's CommonBase
class which is used to store the latest redeclaration.
llvm-svn: 109755
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch refactors much of the common code in ClassTemplateDecl and
FunctionTemplateDecl into a common base class RedeclarableTemplateDecl
together with support functions in a template class RedeclarableTemplate.
The patch also includes similar refactoring for these classes' PCH
reader and writer implementations.
llvm-svn: 109754
|
| |
|
|
|
|
| |
-ast-print show the decls from the dependent PCH.
llvm-svn: 109524
|
| |
|
|
|
|
|
| |
- Stop reading in (and thus deserializing) every declaration in the TU when creating a dependent PCH.
- Switch the storage of a decl context's lexical declarations to a blob containing the IDs instead of a record. This is the only sane way of supporting update records later on.
llvm-svn: 109474
|
| |
|
|
| |
llvm-svn: 109396
|
| |
|
|
|
|
| |
way, reading a trivial 2-element chained file actually works.
llvm-svn: 109191
|
| |
|
|
|
|
|
| |
warning flag in clang. Little more to do
for a PCH issue. Radar 6507158.
llvm-svn: 109129
|
| |
|
|
| |
llvm-svn: 109123
|
| |
|
|
|
|
| |
write source locations to dependent files. WIP
llvm-svn: 109119
|
| |
|
|
| |
llvm-svn: 109113
|
| |
|
|
|
|
| |
think.
llvm-svn: 108959
|
| |
|
|
| |
llvm-svn: 108956
|
| |
|
|
|
|
|
|
|
|
|
| |
detail and introduce
FunctionTemplateDecl::findSpecialization.
Redeclarations of specializations will not cause the previous decl to be removed from the set,
the set will keep the canonical decl. findSpecialization will return the most recent redeclaration.
llvm-svn: 108834
|
| |
|
|
|
|
|
|
| |
read from PCH,
is determined by a isCanonicalDecl check.
llvm-svn: 108833
|
| |
|
|
|
|
| |
PCHReader::getDelsCursor() into its sole caller and remove it. This reduces the attack surface of multiple PCH files towards code outside the PCH implementation.
llvm-svn: 108763
|
| |
|
|
| |
llvm-svn: 108627
|
| |
|
|
|
|
| |
files. WIP
llvm-svn: 108537
|
| |
|
|
| |
llvm-svn: 108198
|
| |
|
|
|
|
| |
probably try and switch more of these if I can.
llvm-svn: 108085
|
| |
|
|
| |
llvm-svn: 108068
|
| |
|
|
|
|
|
|
| |
avoid the
possibility of adding an unitialized one into the folding set.
llvm-svn: 108016
|
| |
|
|
| |
llvm-svn: 108015
|
| |
|
|
| |
llvm-svn: 107884
|
| |
|
|
| |
llvm-svn: 107871
|
| |
|
|
|
|
|
|
| |
in recursive loading and the
declarations are fully initialized.
llvm-svn: 107783
|
| |
|
|
|
|
|
| |
uninitialized (which doesn't seem to be the case), by giving
them arbitrary initial values.
llvm-svn: 107679
|
| |
|
|
| |
llvm-svn: 107665
|
| |
|
|
|
|
| |
still initializing.
llvm-svn: 107663
|
| |
|
|
| |
llvm-svn: 107662
|
| |
|
|
|
|
| |
We can now use a PCH'ed <map>.
llvm-svn: 107617
|
| |
|
|
| |
llvm-svn: 107616
|
| |
|
|
|
|
| |
instantiated-from information.
llvm-svn: 107597
|
| |
|
|
| |
llvm-svn: 107594
|
| |
|
|
| |
llvm-svn: 107593
|
| |
|
|
|
|
|
|
| |
initializing so avoid
the invariant checks at NamespaceDecl::setAnonymousNamespace().
llvm-svn: 107566
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
declarations for implicit default constructors, copy constructors,
copy assignment operators, and destructors. On a "simple" translation
unit that includes a bunch of C++ standard library headers, we
generate relatively few of these implicit declarations now:
4/159 implicit default constructors created
18/236 implicit copy constructors created
70/241 implicit copy assignment operators created
0/173 implicit destructors created
And, on this translation unit, this optimization doesn't really
provide any benefit. I'll do some more performance measurements soon,
but this completes the implementation work for <rdar://problem/8151045>.
llvm-svn: 107551
|
| |
|
|
| |
llvm-svn: 107543
|
| |
|
|
| |
llvm-svn: 107542
|
| |
|
|
| |
llvm-svn: 107521
|
| |
|
|
| |
llvm-svn: 107510
|
| |
|
|
|
|
| |
<vector> header can be used correctly through PCH now.
llvm-svn: 107483
|
| |
|
|
| |
llvm-svn: 107477
|
| |
|
|
|
|
|
|
| |
ClassTemplatePartialSpecializationDecls.
Store/read also their template arguments because they may be initializing and not be able to provide them.
llvm-svn: 107476
|
| |
|
|
| |
llvm-svn: 107475
|
| |
|
|
|
|
| |
complicated to delay PCH reading the type of a TypeDecl.
llvm-svn: 107469
|
| |
|
|
|
|
| |
them for PCH reading.
llvm-svn: 107468
|
| |
|
|
| |
llvm-svn: 107268
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This commit 'introduces' a slightly different way to restore the state of the AST object.
It makes PCHDeclReader/PCHDeclWriter friends and gives them access to the private members of the object.
The rationale is to avoid using/modifying the AST interfaces for PCH read/write so that to:
-Avoid complications with objects that have side-effects during creation or when using some setters.
-Not 'pollute' the AST interface with methods only used by the PCH reader/writer
-Allow AST objects to be read-only.
llvm-svn: 107219
|