| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Store all selectors in the selector hash table instead of only those from the method pool.
llvm-svn: 110158
|
|
|
|
|
|
|
|
|
|
| |
declarations that we saw when creating the precompiled preamble, and
provide those declarations in addition to the declarations parsed in
the main source file when traversing top-level declarations. This
makes the use of precompiled preambles a pure optimization, rather
than changing the semantics of the parsed translation unit.
llvm-svn: 110131
|
|
|
|
| |
llvm-svn: 110126
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 110123
|
|
|
|
| |
llvm-svn: 110122
|
|
|
|
| |
llvm-svn: 110116
|
|
|
|
|
|
| |
it while generating precompiled preambles. No functionality change.
llvm-svn: 110108
|
|
|
|
|
|
| |
analysis) that doesn't prune CFG edges.
llvm-svn: 110087
|
|
|
|
| |
llvm-svn: 110078
|
|
|
|
|
|
|
|
| |
creating the preamble and "replay" them when reusing the
preamble. Also, fix a thinko in the copying of the preamble when
building the precompiled preamble.
llvm-svn: 110061
|
|
|
|
|
|
| |
this version holds the entire declaration chain. This is a much saner solution than trying to merge the info from all elements, and makes redeclarations work properly. Expand the declarations test case to cover more compliated cases.
llvm-svn: 110052
|
|
|
|
|
|
| |
for them that will deserialize them when needed.
llvm-svn: 110031
|
|
|
|
|
|
| |
Gray.
llvm-svn: 109994
|
|
|
|
|
|
|
| |
the files in the precompiled preamble have changed since it was build,
force the preamble to be rebuilt.
llvm-svn: 109937
|
|
|
|
|
|
| |
environment variable is set.
llvm-svn: 109890
|
|
|
|
| |
llvm-svn: 109867
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
| |
PCHReader and PCHWriter are initialized to correctly pick up all initializer. On the upside, this means that there is far less repetition in the dependent PCH now.
llvm-svn: 109823
|
|
|
|
|
|
| |
functionality change.
llvm-svn: 109797
|
|
|
|
| |
llvm-svn: 109785
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CodeGenModule::MayDeferGeneration into a new function,
DeclIsRequiredFunctionOrFileScopedVar.
This is essentially a CodeGen predicate that is also needed by the PCH mechanism to determine whether a decl
needs to be deserialized during PCH loading for codegen purposes.
Since this logic is shared by CodeGen and the PCH mechanism, move it to the ASTContext,
thus CodeGenModule's GetLinkageForFunction/GetLinkageForVariable and the GVALinkage enum is moved out of CodeGen.
This fixes current (and avoids future) codegen-from-PCH bugs.
llvm-svn: 109784
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 109680
|
|
|
|
| |
llvm-svn: 109675
|
|
|
|
|
|
| |
PCHs; tests for this to follow.
llvm-svn: 109554
|
|
|
|
| |
llvm-svn: 109550
|
|
|
|
|
|
|
|
|
|
|
|
| |
CodeGenModule::MayDeferGeneration into a new function,
DeclIsRequiredFunctionOrFileScopedVar.
This function is part of the public CodeGen interface since it's essentially a CodeGen predicate that is also
needed by the PCH mechanism to determine whether a decl needs to be deserialized during PCH loading for codegen purposes.
This fixes current (and avoids future) codegen-from-PCH bugs.
llvm-svn: 109546
|
|
|
|
|
|
| |
-ast-print show the decls from the dependent PCH.
llvm-svn: 109524
|
|
|
|
| |
llvm-svn: 109505
|
|
|
|
|
|
|
|
| |
constructor/destructor.
Fixes http://llvm.org/PR7692
llvm-svn: 109501
|
|
|
|
|
|
| |
unbreaks using PTH with Boost (<rdar://problem/8227989>).
llvm-svn: 109484
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of the usual consistency checks used to determine when a precompiled
header is incompatible with the translation unit it's being loaded
into.
Enable this option when loading a precompiled preamble, because the
preamble loader will be performing all of this checking itself. Enable
the preamble-based test now that it's working.
This option is also useful for debugging Clang's PCH
(<rdar://problem/7532213>).
llvm-svn: 109475
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
reparsing an ASTUnit. When saving a preamble, create a buffer larger
than the actual file we're working with but fill everything from the
end of the preamble to the end of the file with spaces (so the lexer
will quickly skip them). When we load the file, create a buffer of the
same size, filling it with the file and then spaces. Then, instruct
the lexer to start lexing after the preamble, therefore continuing the
parse from the spot where the preamble left off.
It's now possible to perform a simple preamble build + parse (+
reparse) with ASTUnit. However, one has to disable a bunch of checking
in the PCH reader to do so. That part isn't committed; it will likely
be handled with some other kind of flag (e.g., -fno-validate-pch).
As part of this, fix some issues with null termination of the memory
buffers created for the preamble; we were trying to explicitly
NULL-terminate them, even though they were also getting implicitly
NULL terminated, leading to excess warnings about NULL characters in
source files.
llvm-svn: 109445
|
|
|
|
|
|
| |
to deleting it.
llvm-svn: 109441
|
|
|
|
| |
llvm-svn: 109396
|
|
|
|
|
|
|
| |
worked for C anyway. Also kills the -cc1 options -parse-noop and
-parse-print-callbacks.
llvm-svn: 109392
|
|
|
|
| |
llvm-svn: 109375
|
|
|
|
| |
llvm-svn: 109366
|
|
|
|
| |
llvm-svn: 109357
|
|
|
|
|
|
|
| |
precompiled preamble. This will suppress the -pedantic "no newline at
end of file" warning.
llvm-svn: 109301
|
|
|
|
|
|
|
|
| |
appropriately-padded main file buffer (that has spaces in the extra
"reserved" space) and thread that buffer through to the parsing
function. This still does nothing.
llvm-svn: 109299
|
|
|
|
|
|
|
|
|
|
|
|
| |
that preamble (the preamble text, preamble file, reserved main file
size). Check these details when we try to rebuild the precompiled
preamble, and when nothing has changed, re-use the precompiled
preamble.
This code is still very much a WIP, and can't even properly be tested
because we have no way to use the precompiled preamble yet. "Trust me"
llvm-svn: 109294
|
|
|
|
| |
llvm-svn: 109292
|
|
|
|
|
|
| |
Finishes off radar 6507158.
llvm-svn: 109256
|
|
|
|
| |
llvm-svn: 109208
|
|
|
|
|
|
|
| |
ASTUnit/CXTranslationUnit. We can't actually use this preamble yet,
however.
llvm-svn: 109202
|
|
|
|
|
|
| |
way, reading a trivial 2-element chained file actually works.
llvm-svn: 109191
|