ef8225444452a1486bd721f3285301fe84643b00 |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for rebase to r212749. This also fixes a small issue with arm_neon.h not being generated always. Includes a cherry-pick of: r213450 - fixes mac-specific header issue r213126 - removes a default -Bsymbolic on Android Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/include/clang/Serialization/ASTReader.h
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/include/clang/Serialization/ASTReader.h
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/include/clang/Serialization/ASTReader.h
|
9b6711873cbba149dd50cedcfdf31f9dd254df50 |
|
18-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ modules: don't lose track of a 'namespace std' that is imported from a module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3c40a28aa3dde7c5f7e1520c32e7515eda830fef |
|
18-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Basic ODR checking for C++ modules: If we have multiple definitions of the same entity from different modules, we nominate the first definition which we see as being the canonical definition. If we load a declaration from a different definition and we can't find a corresponding declaration in the canonical definition, issue a diagnostic. This is insufficient to prevent things from going horribly wrong in all cases -- we might be in the middle of emitting IR for a function when we trigger some deserialization and discover that it refers to an incoherent piece of the AST, by which point it's probably too late to bail out -- but we'll at least produce a diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
d692a84e18fb48e6442bee83364f1d301f5b8404 |
|
16-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ modules: merging for enumerations and enumerators with multiple definitions (eg through template instantiations in multiple modules). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b60fae50d38a0291e1c5731b2fb22849d26ca342 |
|
09-Sep-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ modules: if a class is defined in multiple modules (for instance, because it is an implicit instantiation of a class template specialization), pick the first-loaded definition to be the canonical definition, and merge all other definitions into it. This is still rather incomplete -- we need to extend every form of declaration that can appear within a CXXRecordDecl to be redeclarable if it came from an AST file (this includes fields, enumerators, ...). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c2d775714f79af977672e4f1dbc16ee9e02d1dea |
|
30-Aug-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Don't eagerly load all conversion operators when loading a class declaration from a PCH/module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c1cef0892e049fcd31084f02d1efdd9985d4dfa4 |
|
10-Aug-2013 |
Enea Zaffanella <zaffanella@cs.unipr.it> |
Added source locs for angled parentheses in class/var template partial specs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ac32d9044b9c1e7492cef929a322d23ce899d276 |
|
07-Aug-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR9992: Serialize and deserialize the token sequence for a function template in -fdelayed-template-parsing mode. Patch by Will Wilson! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1888b910a5512262228e785cc9caf90296c06a45 |
|
02-Aug-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
When merging redeclaration chains across modules, if a declaration is visible in one module but is only declared as a friend in another module, keep it visible in the result of the merge. This is incomplete on two axes: 1) Our handling of local extern declarations is basically broken (we put them in the wrong decl context, and don't find them in redeclaration lookup, unless they've previously been declared), and this results in them making friends visible after a merge. 2) Eventually we'll need to mark that this has happened, and more carefully check whether a declaration should be visible if it was only visible in some of the modules in which it was declared. Fortunately it's rare for the identifier namespace of a declaration to change along its redeclaration chain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
afb90df95223a2b48f22a3d950328d1d915691f5 |
|
31-Jul-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix read of uninitialized enum value in test, caught by UBSan. No functionality change, other than removal of undefined behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6b9240e058bf3451685df73fc8ce181b3046e92b |
|
05-Jul-2013 |
Craig Topper <craig.topper@gmail.com> |
Use SmallVectorImpl& for function arguments instead of SmallVector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3b7deda7137e62810a810ce25b062927a9fc7c71 |
|
24-May-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] If we hit a failure while loading a PCH/module, abort parsing instead of trying to continue in an invalid state. Also don't let libclang create a PCH with such an error. Fixes rdar://13953768 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
7247c88d1e41514a41085f83ebf03dd5220e054a |
|
15-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Use only explicit bool conversion operator The most common (non-buggy) case are where such objects are used as return expressions in bool-returning functions or as boolean function arguments. In those cases I've used (& added if necessary) a named function to provide the equivalent (or sometimes negative, depending on convenient wording) test. DiagnosticBuilder kept its implicit conversion operator owing to the prevalent use of it in return statements. One bug was found in ExprConstant.cpp involving a comparison of two PointerUnions (PointerUnion did not previously have an operator==, so instead both operands were converted to bool & then compared). A test is included in test/SemaCXX/constant-expression-cxx1y.cpp for the fix (adding operator== to PointerUnion in LLVM). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f9ba851c9b5db8ea30846215e737702a1cc2c194 |
|
09-May-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Remove the ASTReaderListener::ReadHeaderFileInfo callback. This made sense in pre-module era, before merging of HeaderFileInfos was introduced. Final part of rdar://13840148. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
bdfdb1da9763b3d0966eb61e9fa0fa7804f9eb9b |
|
06-May-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Modify ASTReaderListener to allow visiting the input files of an AST file. We can pass such an input-file-visiting ASTReaderListener to ASTReader::readASTFileControlBlock. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
aeeacf725c9e0ddd64ea9764bd008e5b6873ce51 |
|
03-May-2013 |
John McCall <rjmccall@apple.com> |
Move parsing of identifiers in MS-style inline assembly into the actual parser and support arbitrary id-expressions. We're actually basically set up to do arbitrary expressions here if we wanted to. Assembly operands permit things like A::x to be written regardless of language mode, which forces us to embellish the evaluation context logic somewhat. The logic here under template instantiation is incorrect; we need to preserve the fact that an expression was unevaluated. Of course, template instantiation in general is fishy here because we have no way of delaying semantic analysis in the MC parser. It's all just fishy. I've also fixed the serialization of MS asm statements. This commit depends on an LLVM commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0532df02a72a32a6042e961b71989db73d0d0a22 |
|
26-Apr-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Modules] Fix an issue where the reconstructed redeclaration chain was incomplete, missing the definition from a module. -Make sure that a deserialized external decl gets added to the TU scope. -When associating an identifier with a set of decls, use the most recent local ones, if they exist, otherwise associating decls from modules (that came after a local one) will lead to an incomplete reconstructed re-declaration chain. rdar://13712705 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
87f9d81d0ab806dcf6ca50a0c068dcb2ba7f51b3 |
|
18-Apr-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Modules] Use global index to improve typo correction performance Typo correction for an unqualified name needs to walk through all of the identifier tables of all modules. When we have a global index, just walk its identifier table only. rdar://13425732 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c544ba09695e300f31355af342258bd57619e737 |
|
27-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/13509689> Introduce -module-file-info option that provides information about a particular module file. This option can be useful for end users who want to know why they ended up with a ton of different variants of the "std" module in their module cache. This problem should go away over time, as we reduce the need for module variants, but it will never go away entirely. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
52151fd57eaf40603fa8f1cd34dcb4ad5f7701b3 |
|
27-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] Before marking the module imported macros as ambiguous, check if this is a case where the system macro uses a not identical definition compared to a macro from the clang headers. For example (these come from different modules): \#define LONG_MAX __LONG_MAX__ (clang's limits.h) \#define LONG_MAX 0x7fffffffffffffffL (system's limits.h) in which case don't mark them ambiguous to avoid the "ambiguous macro expansion" warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
89b8f06ed79ddca7f8f8064525781eb3434ac166 |
|
27-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/modules] Remove HiddenName::MacroUndef git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
d560ce3b66325ff22cd3aca23c6de3143bd74d24 |
|
27-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Preprocessor] Remove PPMutationListener. It's not used anymore. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178106 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
9317ab94bb68122ba6fc728eb73c1308fb913cd1 |
|
22-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] De/Serialize MacroInfos separately than MacroDirectives. -Serialize the macro directives history into its own section -Get rid of the macro updates section -When de/serializing an identifier from a module, associate only one macro per submodule that defined+exported it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
906d66acc5cf2679453e10a4f0a67feedd765b21 |
|
20-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/12368093> Extend module maps with a 'conflict' declaration, and warn when a newly-imported module conflicts with an already-imported module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
677e15ffee2ecc9c1c8f46fd77cab4b5afb59640 |
|
19-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/13363214> Eliminate race condition between module rebuild and the global module index. The global module index was querying the file manager for each of the module files it knows about at load time, to prune out any out-of-date information. The file manager would then cache the results of the stat() falls used to find that module file. Later, the same translation unit could end up trying to import one of the module files that had previously been ignored by the module cache, but after some other Clang instance rebuilt the module file to bring it up-to-date. The stale stat() results in the file manager would trigger a second rebuild of the already-up-to-date module, causing failures down the line. The global module index now lazily resolves its module file references to actual AST reader module files only after the module file has been loaded, eliminating the stat-caching race. Moreover, the AST reader can communicate to its caller that a module file is missing (rather than simply being out-of-date), allowing us to simplify the module-loading logic and allowing the compiler to recover if a dependent module file ends up getting deleted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1c1508b37bc2a9419b2e22beef9e788eb74203f4 |
|
04-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] In HeaderFileInfoTrait::EqualKey(), use FileManager::getFile() to compare two filenames, instead of llvm::sys::fs::equivalent(). llvm::sys::fs::equivalent() does 2 stat calls every time it's called. Use FileManager::getFile() to take advantage of the stat caching that FileManager is providing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8504b7b8102a52b2a16231d459fb3cfab4784c38 |
|
01-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Enhance InputFile to also include whether the file is out-of-date. Previously we would return null for an out-of-date file. This inhibited ASTReader::ReadSLocEntry from creating a FileID to recover gracefully in such a case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dc84cd5efdd3430efb22546b4ac656aa0540b210 |
|
20-Feb-2013 |
David Blaikie <dblaikie@gmail.com> |
Include llvm::Optional in clang/Basic/LLVM.h Post-commit CR feedback from Jordan Rose regarding r175594. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
9818a1d443e97677dd3422305de9cc2b1fb2a8c1 |
|
20-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[preprocessor] Split the MacroInfo class into two separate concepts, MacroInfo class for the data specific to a macro definition (e.g. what the tokens are), and MacroDirective class which encapsulates the changes to the "macro namespace" (e.g. the location where the macro name became active, the location where it was undefined, etc.) (A MacroDirective always points to a MacroInfo object.) Usually a macro definition (MacroInfo) is where a macro name becomes active (MacroDirective) but splitting the concepts allows us to better model the effect of modules to the macro namespace (also as a bonus it allows better modeling of push_macro/pop_macro #pragmas). Modules can have their own macro history, separate from the local (current translation unit) macro history; MacroDirectives will be used to model the macro history (changes to macro namespace). For example, if "@import A;" imports macro FOO, there will be a new local MacroDirective created to indicate that "FOO" became active at the import location. Module "A" itself will contain another MacroDirective in its macro history (at the point of the definition of FOO) and both MacroDirectives will point to the same MacroInfo object. Introducing the separation of macro concepts is the first part towards better modeling of module macros. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
aa945900d5438984bdcaac85c4f54868292231f4 |
|
18-Feb-2013 |
Douglas Gregor <dgregor@apple.com> |
Ensure that the identifier chains have the most recent declaration after module deserialization. This commit introduces a set of related changes to ensure that the declaration that shows up in the identifier chain after deserializing declarations with a given identifier is, in fact, the most recent declaration. The primary change involves waiting until after we deserialize and wire up redeclaration chains before updating the identifier chains. There is a minor optimization in here to avoid recursively deserializing names as part of looking to see whether top-level declarations for a given name exist. A related change that became suddenly more urgent is to property record a merged declaration when an entity first declared in the current translation unit is later deserialized from a module (that had not been loaded at the time of the original declaration). Since we key off the canonical declaration (which is parsed, not from an AST file) for emitted redeclarations, we simply record this as a merged declaration during AST writing and let the readers merge them. Re-fixes <rdar://problem/13189985>, presumably for good this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
7640b02a561fd2b2c58a227b262b0c1ba93622ae |
|
16-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Deserializing the DeclContext of a template parameter is not safe until recursive loading is finished. Otherwise we may end up with a template trying to deserialize a template parameter that is in the process of getting loaded. rdar://13135282 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3646c68676c3c46a026b23d52188ef6e0d856178 |
|
07-Feb-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Simplify FindExternalVisibleDeclsByName by making it return a bool indicating if it found any decls, rather than returning a list of found decls. This removes a returning-ArrayRef-to-deleted-storage bug from MultiplexExternalSemaSource (in code not exercised by any of the clang binaries), reduces the work required in the found-no-decls case with PCH, and importantly removes the need for DeclContext::lookup to be reentrant. No functionality change intended! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5ebcb20b0331a6e64c213f0bb5f4bed9a9e8eb34 |
|
01-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
For ModuleLoader::makeModuleVisible() also pass the source location where the module import occurred. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
cd0655b17249c4c4908ca91462657f62285017e6 |
|
01-Feb-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Add a new -Wundefined-inline warning for inline functions which are used but not defined. Fixes PR14993! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
995e26b0523ac8e3b6199a509b871b81fa5df6ee |
|
31-Jan-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Remove elements from Sema.UndefinedInternals as functions are defined. Also filter the elements before emitting them into a PCH. No user-visible functionality change, except that PCH files may be smaller? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174034 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
95fb36ebddcbdcd6b801c5d3d2d85dac315b4127 |
|
28-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Add some more ASTReader statistics for global method pool lookups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
01a41140cd8ec9475ed0c33384310fbdd3b6de11 |
|
26-Jan-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Preserve Sema::UndefinedInternals across PCH boundaries. Fixes -Wundefined-internal warnings with PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1a49d97d762570027863e9209af81d445e4f1502 |
|
25-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Implement the reader of the global module index and wire it into the AST reader. The global module index tracks all of the identifiers known to a set of module files. Lookup of those identifiers looks first in the global module index, which returns the set of module files in which that identifier can be found. The AST reader only needs to look into those module files and any module files not known to the global index (e.g., because they were (re)built after the global index), reducing the number of on-disk hash tables to visit. For an example source I'm looking at, we go from 237844 total identifier lookups into on-disk hash tables down to 126817. Unfortunately, this does not translate into a performance advantage. At best, it's a wash once the global module index has been built, but that's ignore the cost of building the global module index (which is itself fairly large). Profiles show that the global module index code is far less efficient than it should be; optimizing it might give enough of an advantage to justify its continued inclusion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f575d6e7c3b887ea4c5394d2c7e322c7a929a57e |
|
25-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Rename the -cc1 option "-generate-module-index" to "-fmodules-global-index" and expand its behavior to include both the use and generation of the global module index. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e169807aaea2464cbe68305f013ec7b41625af30 |
|
25-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Track the number of lookups and hits into the on-disk hash tables for identifiers within the AST file reader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
9ec55f24b8f848bb37a9971100cf2fca379d5572 |
|
22-Jan-2013 |
Tim Northover <Tim.Northover@arm.com> |
Switch to APFloat constructor taking fltSemantics. This change also makes the serialisation store the required semantics, fixing an issue where PPC128 was always assumed when re-reading a 128-bit value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8222b8951da749d4f086d7b39de5ff0221297509 |
|
21-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Revert r173056; it breaks one of the CodeGen-with-PCH tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c44cc015a8525e9b7d81a1f1cc1b6e827cfe6762 |
|
21-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
When loading an identifier from an AST file solely for the purpose of forming the identifier, e.g., as part of a selector or a declaration name, don't actually deserialize any information about the identifier. Instead, simply mark it "out-of-date" and we'll load the the information on demand. 2% speedup on the modules testcase I'm looking at; should also help PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5a04f9fc2b000da98fd903c8156034304bdadb2f |
|
21-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Introduce a fast path for the ASTReader's name lookup within a DeclContext. When the DeclContext is of a kind that can only be defined once and never updated, we limit the search to the module file that conatins the lookup table. Provides a 15% speedup in one modules-heavy source file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
99a5af0088b6340540912921cd0008ac75051a33 |
|
20-Jan-2013 |
Chris Lattner <sabre@nondot.org> |
convert some more stuff over to use new cursor APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dc1088f6201c3fb8f3f97f54c343f7d163fbec06 |
|
19-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] Revert r172843, it caused a module to fail building. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f953276b6165dc7e8f4679cce4d0e7c649cd4232 |
|
18-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] Re-apply r172620 and r172629, now with 100% less infinite loops! Makes sure that a deserialized macro is only added to the preprocessor macro definitions only once. Unfortunately I couldn't get a reduced test case. rdar://13016031 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
d3b036efdf0bf4ec216c701183a4b990cd041cd6 |
|
18-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Revert Clang r172620 and r172629, which caused a hang when building complicated modules (<rdar://problem/13038265>). Unfortunately, this un-fixes <rdar://problem/13016031>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
7f69b1ab4f63ded511dddd7fb7e1cd8860757016 |
|
16-Jan-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Modules] Change how macro [re]definitions are de/serialized. Previously we would serialize the macro redefinitions as a list, part of the identifier, and try to chain them together across modules individually without having the info that they were already chained at definition time. Change this by serializing the macro redefinition chain and then try to synthesize the chain parts across modules. This allows us to correctly pinpoint when 2 different definitions are ambiguous because they came from unrelated modules. Fixes bogus "ambiguous expansion of macro" warning when a macro in a PCH is redefined without undef'ing it first. rdar://13016031 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f |
|
12-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove useless 'llvm::' qualifier from names like StringRef and others that are brought into 'clang' namespace by clang/Basic/LLVM.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ca2ab45341c448284cf93770018c717810575f86 |
|
12-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Provide Decl::getOwningModule(), which determines the (sub)module in which a particular declaration resides. Use this information to customize the "definition of 'blah' must be imported from another module" diagnostic with the module the user actually has to import. Additionally, recover by importing that module, so we don't complain about other names in that module. Still TODO: coming up with decent Fix-Its for these cases, and expand this recovery approach for other name lookup failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5ea6ef490547917426d5e2ed14c9f36521bbeacf |
|
11-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Truth in advertising: LocallyScopedExternalDecls actually only contains external declarations with C language linkage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
30a2e16f6c27f888dd11eba6bbbae1e980078fcb |
|
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort #include lines for all files under include/... This is a simpler sort, entirely automatic with the help of llvm/utils/sort_includes.py -- no manual edits here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6c3254316de2d0d554b19702f4b10117ae46b77b |
|
30-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
When we're emitting a diagnostic with a source location in an imported module, provide a module import stack similar to what we would get for an include stack, e.g., In module 'DependsOnModule' imported from build-fail-notes.m:4: In module 'Module' imported from DependsOnModule.framework/Headers/DependsOnModule.h:1: Inputs/Module.framework/Headers/Module.h:15:12: note: previous definition is here @interface Module <rdar://problem/12696425> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
2a82ca255b0f99f6201a75ed52b91fc024f6e9cf |
|
28-Nov-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce ASTUnresolvedSet, an UnresolvedSet-like class, whose contents are allocated using the allocator associated with an ASTContext. Use this inside CXXRecordDecl::DefinitionData instead of an UnresolvedSet to avoid a potential memory leak. rdar://12761275 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
958bcaf3d4e0c1ae46de3e84e7c2a7638c3c5286 |
|
15-Nov-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] Setup the import location of a module file and use it as the include location of the main file of an imported module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
9e60371ba07faa2f173ab614ceaad0332518c8dc |
|
07-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
Tease out the routine that reads the control block of an AST file from the validation of an AST file against a specific set of options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4182ed686283b72736b287cbe28583cb641f8934 |
|
31-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Remove the stat cache from the PCH file. The stat cache became essentially useless ever since we started validating all file entries in the PCH. But the motivating reason for removing it now is that it also affected correctness in this situation: -You have a header without include guards (using "#pragma once" or #import) -When creating the PCH: -The same header is referenced in an #include with different filename cases. -In the PCH, of course, we record only one file entry for the header file -But we cache in the PCH file the stat info for both filename cases -Then the source files are updated and the header file is updated in a way that its size and modification time are the same but its inode changes -When using the PCH: -We validate the headers, we check that header file and we create a file entry with its current inode -There's another #include with a filename with different case than the previously created file entry -In order to get its stat info we go through the cached stat info of the PCH and we receive the old inode -because of the different inodes, we think they are different files so we go ahead and include its contents. Removing the stat cache will potentially break clients that are attempting to use the stat cache as a way of avoiding having the actual input files available. If that use case is important, patches are welcome to bring it back in a way that will actually work correctly (i.e., emit a PCH that is self-contained, coping with literal strings, line/column computations, etc.). This fixes rdar://5502805 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167172 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
848bc3a5db57fb267e2b2541cb55e71dba4bf228 |
|
30-Oct-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
getOriginalSourceFileName and getOriginalSourceFile can return a StringRef. MaybeAddSystemRootToFilename doesn't need to return anything, it modifies its argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0ca6e27138e2fe12e03284d4d820182702141a7d |
|
25-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove the old predefines-buffer diffing code completely. It's been replaced by the more efficient, cleaner preprocessor-option version that occurs earlier in PCH validation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8769924c97ecf2af88f7f3aa6754d381b30d1c5f |
|
25-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
The the preprocessor option validator to compute suggested predefines. We're not quite ready to cut over to these suggested predefines yet, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166648 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4c0c7e86645dfa1719d17d70e009ab49347aba62 |
|
25-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Teach the PCH validator to check the preprocessor options, especially the macros that are #define'd or #undef'd on the command line. This checking happens much earlier than the current macro-definition checking and is far cleaner, because it does a direct comparison rather than a diff of the predefines buffers. Moreover, it allows us to use the result of this check to skip over PCH files within a directory that have non-matching -D's or -U's on the command line. Finally, it improves the diagnostics a bit for mismatches, fixing <rdar://problem/8612222>. The old predefines-buffer diff'ing will go away in a subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a71a7d8a1ce4474e7bdb680658fb58b6caf391d3 |
|
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
(De-)serialize the preprocessor options, including macros defined, -include'd files, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
bbf38319edd4eddc55ec273934e990d7e84991de |
|
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
(De-)serialize header search options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1b2c3c0884e917ae5d59edde7d93b2af33c6a1b6 |
|
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
(De-)serialize the file system options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5f3d8224af99ad0d9107601c0c31b74693371cc1 |
|
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Serialize DiagnosticOptions to the AST file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166572 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
27ffa6caf965ef20fdef5ae23b81cdc3d05e7afb |
|
23-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
If the precompiled header named by "-include" is actually a directory, check each of the files within that directory to determine if any of them is an AST file that matches the language and target options. If so, the first matching AST file is loaded. This fixes a longstanding discrepency with GCC's precompiled header implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
38295beb73db5f90bfcf31625fb81dbc3b96290a |
|
23-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Allow clients of the AST reader to specify what kinds of AST load failures they know how to tolerate, e.g., out-of-date input files or configuration/version mismatches. Suppress the corresponding diagnostics if the client can handle it. No clients actually use this functionality, yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8b53d141ee5a91da92c4196ed7ad4142e1009d6f |
|
23-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Collapse ASTReader::ReadSLocEntryRecord() into its only caller, ReadSLocEntry(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4825fd7fbb3fe87cdf8da9bccc1361fac45bdf2d |
|
23-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Distinguish the various kinds of AST file loading failures: file corruption, compiler version mismatch, target/language configuration mismatch, out-of-date AST file. No functionality change yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a930dc9b46572cb6e5bb54f3d724e8fe23a6b66e |
|
22-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the redundancy between source-file information in the source manager block and input-file information in the control block. The source manager entries now point back into the control block. Input files are now lazily deserialized (if validation is disabled). Reduces Cocoa's PCH by the ~70k I added when I introduced the redundancy in r166251. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166429 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
745e6f168d0276c15fb72f3d90e3d93d60282b1b |
|
19-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Move the set of files to be validated in an AST file into the control block, so the input files are validated early on, before we've committed to loading the AST file. This (accidentally) fixed a but wherein the main file used to generate the AST file would *not* be validated by the existing validation logic. At the moment, this leads to some duplication of filenames between the source manager block and input-file blocks, as well as validation logic. This will be handled via an upcoming patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
69e160869dc10567a878601e98987079ad984c64 |
|
18-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Move OriginalDir from ASTReader to ModuleFile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
caed060d38f404c3a7650dbd236c25ec356bc5a3 |
|
18-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Move the "RelocatablePCH" bit from the ASTReader to the module file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
11407b89c9d7ce8bc31869b0a7aae06add49e3dc |
|
18-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Move information about the "original file" from the ASTReader into the module files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1d9d9898ce2b338314161d92f39561a09a2a8b6f |
|
18-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Start factoring the on-disk records for an AST file into a control block, which stores information about how the AST file to generated, from the AST block, which stores the actual serialized AST. The information in the control block should be enough to determine whether the AST file is up-to-date and compatible with the current translation unit, and reading it should not cause any side effects that aren't easy to undo. That way, we can back out from an attempt to read an incompatible or out-of-date AST file. Note that there is still more factoring to do. In particular, information about the source files used to generate the AST file (along with their time stamps, sizes, etc.) still resides in the source manager block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166166 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
57016dda61498294120b1a881d9e6606337b29d9 |
|
17-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Serialize TargetOptions into an AST file, and make sure that we keep target options around so they can be accessed at any point (rather than keeping them transient). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
54c8a40ed658676b1f3f983728feae488c501477 |
|
12-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Track which particular submodule #undef's a macro, so that the actual #undef only occurs if that submodule is imported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3ab50fe3fc8311fb68c4f5eb97e9bb3d0041bf1a |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce a simple "hint" scheme to eliminate the quadratic behavior associated with deserializing macro history for an identifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e9652bf15246d6e08e953b52cdb7812ddb8a43e0 |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Make the deserialization of PendingMacroIDs deterministic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6c6c54a59a6e7dbe63ff6a9bbab76f6e0c7c8462 |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Deserialize macro history when we deserialize an identifier that has macro history. When deserializing macro history, we arrange history such that the macros that have definitions (that haven't been #undef'd) and are visible come at the beginning of the list, which is what the preprocessor and other clients of Preprocessor::getMacroInfo() expect. If additional macro definitions become visible later, they'll be moved toward the front of the list. Note that it's possible to have ambiguities, but we don't diagnose them yet. There is a partially-implemented design decision here that, if a particular identifier has been defined or #undef'd within the translation unit, that definition (or #undef) hides any macro definitions that come from imported modules. There's still a little work to do to ensure that the right #undef'ing happens. Additionally, we'll need to scope the update records for #undefs, so they only kick in when the submodule containing that update record becomes visible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
62288edde26ff4af9fc079c979a0e1bdc577ce9d |
|
10-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When indexing a module file, for the ppIncludedFile callback give an invalid location if the location points to the synthetic buffer for the module input. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165592 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a8235d6c4093cd38dcf742909651f867de62e55b |
|
10-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Rework the (de-)serialization of macros, as stored in MacroInfo*. Instead of simply dumping an offset into the current file, give each macro definition a proper ID with all of the standard modules-remapping facilities. Additionally, when a macro is modified in a subsequent AST file (e.g., #undef'ing a macro loaded from another module or from a precompiled header), provide a macro update record rather than rewriting the entire macro definition. This gives us greater consistency with the way we handle declarations, and ties together macro definitions much more cleanly. Note that we're still not actually deserializing macro history (we never were), but it's far easy to do properly now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ce12d2f8863588d408897602089d17c4d3c3d0e5 |
|
09-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Make the order of visitation of the pending bodies in the AST reader deterministic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165515 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5456b0fe40714a78cd0ba7c1a5b7dc34eda385af |
|
09-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
When we load a function or method body from an AST file, we check whether that function/method already has a body (loaded from some other AST file), as introduced in r165137. Delay this check until after the redeclaration chains have been wired up. While I'm here, make the loading of method bodies lazy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3021475d7ab05424d8a56829011cf0563562a6d6 |
|
03-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove ASTReader::needPendingInstantiation(), introduced in r164993, which is neither correct nor necessary. The use of this routine was eliminated by r165137. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165139 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e5fa3c26919c0fa9817fbbb967f1a418e2fd3140 |
|
03-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Revert most of the functionality in r165001. Instead, make sure that the ASTReader doesn't attach a body to a function that is already defined elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
2093e0bc4e436b1b2791d5423fb3274dd37231b8 |
|
02-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When indexing an AST file, only deserialize the file level declarations of the current primary module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165046 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
632dcc92f60ab7f806a89c5bca3a0951763a9219 |
|
02-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When indexing an AST file, only deserialize the preprocessing record entities of the current primary module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
38c3bb40c2cef630c236f3f455ea98999990b8ee |
|
02-Oct-2012 |
Axel Naumann <Axel.Naumann@cern.ch> |
Only those InterestingDecls that got added to the AST should be passed to the ASTConsumer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
39d26c3e499470cd80a3e6f26f11ac681cd9712c |
|
02-Oct-2012 |
Axel Naumann <Axel.Naumann@cern.ch> |
Merge pending instantiations instead of overwriting existing ones. Check whether a pending instantiation needs to be instantiated (or whether an instantiation already exists). Verify the size of the PendingInstantiations record (was only checking size of existing PendingInstantiations). Migrate Obj-C++ part of redecl-merge into separate test, now that this is growing. templates.mm: test that CodeGen has seen exactly one definition of template instantiations. redecl-merge.m: use "@" specifier for expected-diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f56faa01936b9cf909623d7f06e3c2569ca4a78e |
|
15-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1824d54df85a462ada812dadda18130f951d40f3 |
|
13-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg is not what most people want -- it starts a new paragraph). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
bed28ac1d1463adca3ecf24fca5c30646fa9dbb2 |
|
23-Jul-2012 |
Sylvestre Ledru <sylvestre@debian.org> |
Fix a typo (the the => the) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
16ae9de07730832945204877d752db7f1c070962 |
|
22-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: making \param docs match the code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
260611a32535c851237926bfcf78869b13c07d5b |
|
20-Jun-2012 |
John McCall <rjmccall@apple.com> |
Restructure how the driver communicates information about the target Objective-C runtime down to the frontend: break this down into a single target runtime kind and version, and compute all the relevant information from that. This makes it relatively painless to add support for new runtimes to the compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z, available at the driver level as a better and more general alternative to -fgnu-runtime and -fnext-runtime. This new concept of an Objective-C runtime also encompasses what we were previously separating out as the "Objective-C ABI", so fragile vs. non-fragile runtimes are now really modelled as different kinds of runtime, paving the way for better overall differentiation. As a sort of special case, continue to accept the -cc1 flag -fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak. I won't go so far as to say "no functionality change", even ignoring the new driver flag, but subtle changes in driver semantics are almost certainly not intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
aa0cd85838f2a024e589ea4e8c2094130065af21 |
|
20-Jun-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Structured comment parsing, first step. * Retain comments in the AST * Serialize/deserialize comments * Find comments attached to a certain Decl * Expose raw comment text and SourceRange via libclang git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a7b7d1a7394394d33c18f7dda400a9a12cae2c78 |
|
15-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: fix erroneous uses of \arg. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
12dcc64eebf7aaffb71392fba74fcb69f35d3b2e |
|
04-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Use DenseMap instead of std::map to keep track of SwitchCases. Part of rdar://11353109. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b88acb018a0d5e897ce291da2664edfd7bd58f5c |
|
04-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Really, pinky swear, fix for PR12689 rdar://11353109 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b346d2f419ec7d7ce6b20780d518490338efa7de |
|
16-Apr-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Implement the all_lookups_iterator for PCH as a follow-up to r153970. This includes a patch from Matthias Kleine with a regression testcase! Adds a new iterator 'data_iterator' to OnDiskHashTable which doesn't try to reconstruct the external_key from the internal_key, which is useful for traits that don't store enough information to do that mapping in their key. Also deletes the 'item_iterator' from OnDiskHashTable as dead code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b1758c662524e18d65d260188fdcbbdee6a9316b |
|
15-Apr-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Use forward declarations for ASTDeclContextNameLookupTable and add a missing delete. It would be nice to use OwningPtr here, but DeclContextInfo is stored in a DenseMap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
643586fe4fcd42b0978efd3566832ab4dce50367 |
|
22-Mar-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] When we are replacing a decl in a chained PCH that is also a DeclContext, make sure to fully load its external lexical and visible declarations before re-writing it. rdar://10914192 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
bef35c91b594f66216f4aab303b71a6c5ab7abcf |
|
07-Mar-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Mark a PCH file with a flag to indicate if the serialized AST had compiler errors or not. -Control whether ASTReader should reject such a PCH by a boolean flag at ASTReader's creation time. By default, such a PCH file will be rejected with an error when trying to load it. [libclang] Allow clang_saveTranslationUnit to create a PCH file even if compiler errors occurred. -Have libclang API calls accept a PCH that had compiler errors. The general idea is that we want libclang to stay functional even if a PCH had a compiler error. rdar://10976363. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152192 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
44d2dbdce49d1fca3826d543ba875bb82f759091 |
|
09-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix ASTReader::FinishedDeserializing(). We were passing a decl to the consumer after all pending deserializations were finished but this was not enough; due to processing by the consumer we may end up into yet another deserialization process but the way FinishedDeserializing() was setup we would not ensure that everything was fully deserialized before returning to the consumer. Separate ASTReader::FinishedDeserializing() into two semantic actions. The first is ensuring that a deserialization process ends up will fully deserialized decls/types even if the process is started by the consumer. The second is pushing "interesting" decls to the consumer; we make sure that we don't re-enter this section recursively be checking a variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6f42b62b6194f53bcbc349f5d17388e1936535d7 |
|
05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import OwningPtr<> into clang namespace git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
cff9f26ce0ed76d555cd33b3dca84dd5cdf376af |
|
27-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Reimplement (de-)serialization of Objective-C categories to eliminate the direct serialization of the linked-list structure. Instead, use a scheme similar to how we handle redeclarations, with redeclaration lists on the side. This addresses several issues: - In cases involving mixing and matching of many categories across many modules, the linked-list structure would not be consistent across different modules, and categories would get lost. - If a module is loaded after the class definition and its other categories have already been loaded, we wouldn't see any categories in the newly-loaded module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8efca6bb688d32fd7c0d91b504ef3307f97ee66a |
|
25-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce a generation number for selector lookups in the global method pool, so that we don't perform the same lookups into the same PCH/module file repeatedly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5ac4b6917aa34fae6da64036539023a6155a3d48 |
|
25-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Rework the external Sema source's ReadMethodPool() so that it doesn't return pre-built lists. Instead, it feeds the methods it deserializes to Sema so that Sema can unique them, which keeps the chains shorter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
057df20b3107cef764052d271c89b8591b98b3ce |
|
18-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Optimize unqualified/global name lookup in modules by introducing a generational scheme for identifiers that avoids searching the hash tables of a given module more than once for a given identifier. Previously, loading any new module invalidated all of the previous lookup results for all identifiers, causing us to perform the lookups repeatedly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148412 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
2171bf1caba4d4b9eeb6a91efac4300b41f38b07 |
|
15-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Completely re-implement (de-)serialization of redeclaration chains, again. The prior implementation was very linked-list oriented, and the list-splicing logic was both fairly convoluted (when loading from multiple modules) and failed to preserve a reasonable ordering for the redeclaration chains. This new implementation uses a simpler strategy, where we store the ordered redeclaration chains in an array-like structure (indexed based on the first declaration), and use that ordering to add individual deserialized declarations to the end of the existing chain. That way, the chain mimics the ordering from its modules, and a bug somewhere is far less likely to result in a broken linked list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b6b60c1521a2e65f60e93c5fd56c103cf027df63 |
|
05-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
When we deserialize a declaration from a module file, allocate extra storage for the global declaration ID. Declarations that are parsed (rather than deserialized) are unaffected, so the number of declarations that pay this cost tends to be relatively small (since relatively few declarations are ever deserialized). This replaces a largish DenseMap within the AST reader. It's not strictly a win in terms of memory use---not every declaration was added to that DenseMap in the first place---but it's cleaner to have this information available for every deserialized declaration, so that future clients can rely on it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dba9361891ab147b6ea658c1834bc1d660f5226b |
|
01-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement declaration merging for Objective-C protocols across multiple, disjoint modules. There is far too much duplicating with the ObjCInterfaceDecl case here, which I'll eliminate shortly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c3cfd2ab3338d47861ece597212f21b972ebe727 |
|
22-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Serialize the AST reader's mapping from canonical declarations to the set of (previously-canonical) declaration IDs to the module file, so that future AST reader instances that load the module know which declarations are merged. This is important in the fairly tricky case where a declaration of an entity, e.g., @class X; occurs before the import of a module that also declares that entity. We merge the declarations, and record the fact that the declaration of X loaded from the module was merged into the (now canonical) declaration of X that we parsed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
cce54aa6a40e4c39b25532336e17ce40f0a7e087 |
|
22-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
If we end up merging an Objective-C class with an existing Objective-C class that comes from a different module file, make sure that we load all of the pending declarations for the original declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0f75323264b93a318ac9007eb5ec5b233c444068 |
|
22-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When deserializing an Objective-C class, check whether we have another declaration of that same class that either came from some other module or occurred in the translation unit loading the module. In this case, we need to merge the two redeclaration chains immediately so that all such declarations have the same canonical declaration in the resulting AST (even though they don't in the module files we've imported). Focusing on Objective-C classes until I'm happy with the design, then I'll both (1) extend this notion to other kinds of declarations, and (2) optimize away this extra checking when we're not dealing with modules. For now, doing this checking for PCH files/preambles gives us better testing coverage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a126651270acf17c434f60f86a3ab3687f87813a |
|
19-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the first->last redeclaration map from the AST file format. It's no longer being used, now that we have a new implementation of redeclaration chains. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146905 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
21cf08b7e0c03266f37f436c2afd8521c643b31a |
|
19-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove ASTReader's PendingForwardRefs, which is now handled by the (more general) fix-up of definition data pointers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
fc529f7fcafe7da0b8a32621e13685891e8ce52a |
|
19-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Once we have fully deserialized a redeclaration chain for something with a definition pointer (e.g., C++ and Objective-C classes), zip through the redeclaration chain to make sure that all of the declarations point to the definition data. As part of this, realized again why the first redeclaration of an entity in a file is important, and brought back that idea. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146886 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a1be278c4f3a234ff61f04018d26c6beecde1654 |
|
18-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Completely re-implement (de-)serialization of declaration chains. The previous implementation relied heavily on the declaration chain being stored as a (circular) linked list on disk, as it is in memory. However, when deserializing from multiple modules, the different chains could get mixed up, leading to broken declaration chains. The new solution keeps track of the first and last declarations in the chain for each module file. When we load a declaration, we search all of the module files for redeclarations of that declaration, then splice together all of the lists into a coherent whole (along with any redeclarations that were actually parsed). As a drive-by fix, (de-)serialize the redeclaration chains of TypedefNameDecls, which had somehow gotten missed previously. Add a test of this serialization. This new scheme creates a redeclaration table that is fairly large in the PCH file (on the order of 400k for Cocoa.h's 12MB PCH file). The table is mmap'd in and searched via a binary search, but it's still quite large. A future tweak will eliminate entries for declarations that have no redeclarations anywhere, and should drastically reduce the size of this table. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
917078386b9b5113f33c093e296e10927b00b37e |
|
17-Dec-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Don't deserialize bodies of interesting decls while iterating over them because more interesting decls can be added during body deserialization. Should fix msvc build tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146824 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
2e5c15be82f362611c5928ce853d0685ff98c766 |
|
15-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Move the definition-specific data of ObjCInterfaceDecl into a separately-allocated DefinitionData structure, which we manage the same way as CXXRecordDecl::DefinitionData. This prepares the way for making ObjCInterfaceDecls redeclarable, to more accurately model forward declarations of Objective-C classes and eliminate the mutation of ObjCInterfaceDecl that causes us serious trouble in the AST reader. Note that ObjCInterfaceDecl's accessors are fairly robust against being applied to forward declarations, because Clang (and Sema in particular) doesn't perform RequireCompleteType/hasDefinition() checks everywhere it has to. Each of these overly-robust cases is marked with a FIXME, which we can tackle over time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
55988680ece66b8e505ee136b35e74fcb1173aee |
|
05-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When writing a module file, keep track of the set of (sub)modules that it imports, establishing dependencies at the (sub)module granularity. This is not a user-visible change (yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8bc27822fc867d43399d4474bccbb58b7b7c7ad7 |
|
03-Dec-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Make sure that the SourceExpr of a OpaqueValueExpr is always initialized when deserialized, fixing random crashes in libclang. Also simplifies how OpaqueValueExprs are [de]serialized. The reader/writer automatically retains pointer equality of sub-statements (when a statement node is referenced in multiple nodes), so no need to manually handle it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f6137e4d15cb6bbd10547267babfc699c1945873 |
|
03-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for precompiled headers, preambles, and serialized "main" files that import modules. When loading any of these kinds of AST files, we make the modules that were imported visible into the translation unit that loaded the PCH file or preamble. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
af13bfc3b40aa4a46f4e71d200ecfb10f45297fc |
|
02-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement (de-)serialization of the set of exported modules in a module map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1329264ce0922b3cec8c8c599108f082105fa0e1 |
|
02-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement name hiding for macro definitions within modules, such that only the macro definitions from visible (sub)modules will actually be visible. This provides the same behavior for macros that r145640 provided for declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ecc2c090e7146c029dd9ee9a5a2fd66b275c01c0 |
|
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement name hiding for declarations deserialized from a non-visible module. When that module becomes visible, so do those declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5e35693721364673f8196e4f5a370f56b92e6053 |
|
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of name visibility into modules. For a given (sub)module, all of the names may be hidden, just the macro names may be exposed (for example, after the preprocessor has seen the import of the module but the parser has not), or all of the names may be exposed. Importing a module makes its names, and the names in any of its non-explicit submodules, visible to name lookup (transitively). This commit only introduces the notion of name visible and marks modules and submodules as visible when they are imported. The actual name-hiding logic in the AST reader will follow (along with test cases). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
26ced127b7d443fcf3472463c9f39c2376bd9d70 |
|
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch the ID numbers used for submodule IDs in the AST reader over to a standard global/local scheme, so that submodule definitions will eventually be able to refer to submodules in other top-level modules. We'll need this functionality soonish. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1a4761edca58c6b559de825b9abfb66f7f1ba94a |
|
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Promote ModuleMap::Module to a namespace-scope class in the Basic library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the annoying naming conflict. Prune a bunch of ModuleMap.h includes that are no longer needed (most files only needed the Module type). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8d39c3ddfc17d9e768a17eb0ce9f11c33bf9d50a |
|
01-Dec-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] In ASTReader::FinishedDeserializing, after we do PassInterestingDeclsToConsumer we may end up having added more pending stuff to do, so go in a loop until everything is cleared out. This fixes the error in rdar://10278815 which has a certain David Lynch-esque quality.. error: unknown type name 'BOOL'; did you mean 'BOOL'? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
392ed2b717d86ebdd202cb9bb58d18d8b3b4cd87 |
|
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement (de-)serialization of the description of a module and its submodules. This information will eventually be used for name hiding when dealing with submodules. For now, we only use it to ensure that the module "key" returned when loading a module will always be a module (rather than occasionally being a FileEntry). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5a174990e84b33b20761f2fde51169400dd87f2e |
|
14-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Load the chained objc categories only after recursive loading is finished otherwise we may crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ba243b59a1074e0962f6abfa3bb9aa984eac1245 |
|
09-Nov-2011 |
David Blaikie <dblaikie@gmail.com> |
Fixing 80 col violations (& removing any trailing whitespace on files I was touching anyway) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144171 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dfb332d0081c6641d1dbae6a2aeff757c99cc740 |
|
03-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Add infrastructure to be able to only deserialize decls in a file region and use it for clang_getCursor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143605 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ef23b6001e8d9715246ca23bd8c3a6887d7844cb |
|
31-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Now that we store the location of a decl outside its record make sure that we keep track of locations of replaced decls as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
9d128d04578c62675eeb0cce83066052f9c19c9a |
|
31-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] For ASTReader's FileDeclIDs also associate the Module that the local DeclIDs came from. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
10f3df54486385e6497c9e5f229ff816e5a6c511 |
|
29-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Keep track of file-level declarations that are contained by files. Introduce a FILE_SORTED_DECLS [de]serialization record that contains a file sorted array of file-level DeclIDs in a PCH/Module. The rationale is to allow "targeted" deserialization of decls inside a range of a source file. Cocoa PCH increased by 0.8% Difference of creation time for Cocoa PCH is below the noise level. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
9d31fa75bc05fe4cb903a7701550f22cfb73ea8b |
|
27-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Pull the location out of the serialized declarations and put it in the array of decl bit offsets. This allows us to easily get at the location of a decl without deserializing it. It increases size of Cocoa PCH by only 0.2%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143123 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
eee242ff426bf79149f221798966e58688383c1e |
|
27-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Make the loading of information attached to an IdentifierInfo from an AST file more lazy, so that we don't eagerly load that information for all known identifiers each time a new AST file is loaded. The eager reloading made some sense in the context of precompiled headers, since very few identifiers were defined before PCH load time. With modules, however, a huge amount of code can get parsed before we see an @import, so laziness becomes important here. The approach taken to make this information lazy is fairly simple: when we load a new AST file, we mark all of the existing identifiers as being out-of-date. Whenever we want to access information that may come from an AST (e.g., whether the identifier has a macro definition, or what top-level declarations have that name), we check the out-of-date bit and, if it's set, ask the AST reader to update the IdentifierInfo from the AST files. The update is a merge, and we now take care to merge declarations before/after imports with declarations from multiple imports. The results of this optimization are fairly dramatic. On a small application that brings in 14 non-trivial modules, this takes modules from being > 3x slower than a "perfect" PCH file down to 30% slower for a full rebuild. A partial rebuild (where the PCH file or modules can be re-used) is down to 7% slower. Making the PCH file just a little imperfect (e.g., adding two smallish modules used by a bunch of .m files that aren't in the PCH file) tips the scales in favor of the modules approach, with 24% faster partial rebuilds. This is just a first step; the lazy scheme could possibly be improved by adding versioning, so we don't search into modules we already searched. Moreover, we'll need similar lazy schemes for all of the other lookup data structures, such as DeclContexts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f226ff9fe8c8db6c5b74a61ce649eda1491c3502 |
|
25-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] When visiting preprocessed entities, make it possible to avoid deserializing preprocessed entities that are #included in the range that we are interested. This is useful when we are interested in preprocessed entities of a specific file, e.g when we are annotating tokens. There is also an optimization where we cache the last result of PreprocessingRecord::getPreprocessedEntitiesInRange and we re-use it if there is a call with the same range as before. rdar://10313365 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
d6471f7c1921c7802804ce3ff6fe9768310f72b9 |
|
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename Diagnostic to DiagnosticsEngine as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
290ad8c8eb1546692b20c4095ee441023f2f1005 |
|
21-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Merge ASTReader::LoadPreprocessedEntity with ReadPreprocessedEntity and don't store the ID for each preprocessed entity. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a68c4aff8cd3aada697ad36dc6582d0e09b4b0d2 |
|
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] The range map for SLoc offsets is a reversed one, not negated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
92ddef1bf843e1e18c040d69f48a6bf0bc7c776a |
|
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
In libclang, when visiting preprocessed entities in a source range, use PreprocessingRecord's getPreprocessedEntitiesInRange. Also remove all the stuff that were added in ASTUnit that are unnecessary now that we do a binary search for preprocessed entities and deserialize only what is necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140063 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
2dbaca748bc3eb6539f417bd8354c930bdf88fa4 |
|
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce PreprocessingRecord::getPreprocessedEntitiesInRange() which will do a binary search and return a pair of iterators for preprocessed entities in the given source range. Source ranges of preprocessed entities are stored twice currently in the PCH/Module file but this will be fixed in a subsequent commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a64ccefdf0ea4e03ec88805d71b0af74950c7472 |
|
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Rename SourceLocation::getFileLocWithOffset -> getLocWithOffset. It already works (and is useful with) macro locs as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5a4374812c56aa60672e291b07e14d3696bbb5a6 |
|
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make ASTReader/ASTWriter friends of SourceLocation. They already depend on internal knowledge of SourceLocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1f6d22550161fffbe82ea9a8a143b2c1247f5f3c |
|
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Const-ify some methods in ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e24692b30adbe8144597678a0e3354912e99c747 |
|
15-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Overhaul how preprocessed entities are [de]serialized. -Use an array of offsets for all preprocessed entities -Get rid of the separate array of offsets for just macro definitions; for references to macro definitions use an index inside the preprocessed entities array. -Deserialize each preprocessed entity lazily, at first request; not in bulk. Paves the way for binary searching of preprocessed entities that will offer efficiency and will simplify things on the libclang side a lot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139809 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
712f2fcb70ae2eb0cb684d565e7d2cb76881006b |
|
10-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
In the ASTReader, replace the never-NULL Preprocessor pointer with a Preprocessor reference. Simplify some code along the way, so there is no separate "initialize the preprocessor" step. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
359427794704666ff7a5a933ace11c5256fa3af7 |
|
09-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
In ASTReader, replace the never-NULL ASTContext pointer with an ASTContext reference. Remove all of the extra checking and logic that was used to cope with a NULL ASTContext. No effective functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f8a1e51c48761ee1d7803c3fa35ac94f42ebb55e |
|
02-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Always construct an ASTReader with a non-NULL ASTContext and Preprocessor, eliminating the constructor that was used by ASTUnit (which didn't provide an ASTContext or Prepreprocessor). Ensuring that both objects are non-NULL will simplify module loading (but none of that is done yet). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3e3cd93b2fd9644e970c389e715c13883faf68b6 |
|
01-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach ASTContext and Preprocessor to hold on to references to the same LangOptions, rather than making distinct copies of LangOptions. Granted, LangOptions doesn't actually get modified, but this will eventually make it easier to construct ASTContext and Preprocessor before we know all of the LangOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e6b8d68a927368b06ac06cc9ac9e7f60aa966d5f |
|
01-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support importing of ObjC categories from modules. The initial incentive was to fix a crash when PCH chaining categories to an interface, but the fix was done in the "modules way" that I hear is popular with the kids these days. Each module stores the local chain of categories and we combine them when the interface is loaded. We also warn if non-dependent modules introduce duplicate named categories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f249bf3b9f8bd3af711ffe9de411fc435871a4f6 |
|
25-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Preload source location entries as soon as we've loaded a particular AST file, rather than waiting until we finish loading the top-level AST file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c69a292f9f7bee2a7359df18d1db501d8717f0b2 |
|
25-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Move file validation in the ASTReader from "top of chain" validation to "when loading a particular module" validation, since it was only validating local information anyway. This shouldn't change anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
98339b96a8089a6da715487e432c5abfca0ca0df |
|
25-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Factor the Module and ModuleManager classes out into separate headers and .cpp files, since ASTReader.cpp was getting way too large. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
d10a381d92a60d4f4c126c4e81045c8ad4636a0b |
|
25-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch ASTReader::GetHeaderFileInfo() from a walk over the module chain to a proper search. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3d15ab8d0822637ff5e39594c4f34172241cad2e |
|
25-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Use the module manager's search facility to look for methods with a given selector, rather than walking the chain backwards. Teach its visitor how to merge multiple result sets into a single result set, combining the results of selector lookup in several different modules into a single result set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c266de97e269c3747ffc2d122fe53185b541cb37 |
|
24-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Don't force the complete deserialization of the visible-declarations table when serializing an AST file. This was a holdover from the days before chained PCH, and is a complete waste of time and storage now. It's a good thing it's useless, because I have no idea how I would have implemented MaterializeVisibleDecls efficiently in the presence of modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
851c75a279bb4441bc6802d0258ceb4ab64738d4 |
|
24-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a depth-first search of modules into the module manager, which supports both pre-order and post-order traversal via a visitor mechanism. Use this depth-first search with a post-order traversal to give predictable ordering semantics when walking all of the lexical declarations in the translation unit. Eventually, module imports will occur in the source code rather than at the beginning, and we'll have to revisit this walk. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0d95f77ba180aee35b74f3bf9f8543477f3af543 |
|
24-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
In the AST reader, switch name lookup within a DeclContect over to the module DAG-based lookup scheme. This required some reshuffling, so that each module stores its own mapping from DeclContexts to their lexical and visible sets for those DeclContexts (rather than one big "chain"). Overall, this allows simple qualified name lookup into the translation unit to gather results from multiple modules, with the lookup results in module B shadowing the lookup results in module A when B imports A. Walking all of the lexical declarations in a module DAG is still a mess; we'll end up walking the loaded module list backwards, which works fine for chained PCH but doesn't make sense in a DAG. I'll tackle this issue as a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
211f6e894895f552e0a98421b2f6e931ca4a8c11 |
|
20-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a module visitation function that starts at the top-level modules (those that no other module depends on) and performs a search over all of the modules, visiting a new module only when all of the modules that depend on it have already been visited. The visitor can abort the search for all modules that a module depends on, which allows us to minimize the number of lookups necessary when performing a search. Switch identifier lookup from a linear walk over the set of modules to this module visitation operation. The behavior is the same for simple PCH and chained PCH, but provides the proper search order for modules. Verified with printf debugging, since we don't have enough in place to actually test this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dcf3c0f648edac4d4da1b05840e21ed23b9ca37e |
|
19-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove another unused function from ModuleManager. We have no notion of a 'last' module any more git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a3a0cf07fea63c020b0a261cb765ffdb5af991e6 |
|
19-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove unused function ModuleManager::exportLookup() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
fac4ece118d43e43e625c6d2b9a98905b1372d51 |
|
19-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach ModuleManager::addModule() to check whether a particular module has already been loaded before allocating a new Module structure. If the module has already been loaded (uniquing based on file name), then just return the existing module rather than trying to load it again. This allows us to load a DAG of modules. Introduce a simple test case that forms a diamond-shaped module graph, and illustrates that a source file importing the bottom of the diamond can see declarations in all four of the modules that make up the diamond. Note that this version moves the file-opening logic into the module manager, rather than splitting it between the module manager and the AST reader. More importantly, it properly handles the weird-but-possibly-useful case of loading an AST file from "-". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
870d1fee3c5027efe7fd23d6935952bc1f419f99 |
|
18-Aug-2011 |
Chad Rosier <mcrosier@apple.com> |
Temporarily revert r137925 to appease buildbots. Original commit message: Teach ModuleManager::addModule() to check whether a particular module has already been loaded before allocating a new Module structure. If the module has already been loaded (uniquing based on file name), then just return the existing module rather than trying to load it again. This allows us to load a DAG of modules. Introduce a simple test case that forms a diamond-shaped module graph, and illustrates that a source file importing the bottom of the diamond can see declarations in all four of the modules that make up the diamond. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a4c189f4356f24d984aac781d7762b8c55082b7e |
|
18-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach ModuleManager::addModule() to check whether a particular module has already been loaded before allocating a new Module structure. If the module has already been loaded (uniquing based on file name), then just return the existing module rather than trying to load it again. This allows us to load a DAG of modules. Introduce a simple test case that forms a diamond-shaped module graph, and illustrates that a source file importing the bottom of the diamond can see declarations in all four of the modules that make up the diamond. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
10bc00fd45824f9b5cd139d63af8b0f6d28aadda |
|
18-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Keep track of which modules have been loaded directly (e.g., via -import-module) vs. loaded because some other module depends on them. As part of doing this, pass down the module that caused a module to be loaded directly, rather than assuming that we're loading a chain. Finally, write out all of the directly-loaded modules when serializing an AST file (using the new IMPORTS record), so that an AST file can depend on more than one other AST file, all of which will be loaded when that AST file is loaded. This allows us to form and load a tree of modules, but we can't yet load a DAG of modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137923 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e95b9198b8b70ce0219cfb89483b41102e02dbf5 |
|
17-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
In the AST file format, eliminate the CHAINED_METADATA record. Instead, all AST files have a normal METADATA record that has the same form regardless of whether we refer to a chained PCH or any other kind of AST file. Introduce the IMPORTS record, which describes all of the AST files that are imported by this AST file, and how (as a module, a PCH file, etc.). Currently, we emit at most one entry to this record, to support chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6bf2b9fbd3e3adc38d4712de79aeaa81d651aa08 |
|
12-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
In the serialized AST format, make the translation unit a "predefined" declaration that never actually gets serialized. Instead, serialize the various kinds of update records (lexical decls, visible decls, the addition of an anonymous namespace) for the translation unit, even if we're not chaining. This way, we won't have to deal with multiple loaded translation unit declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
272b6bc6a6c8fc04f951ad850df68c44d137f513 |
|
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce local -> global mapping for preprocessed entity IDs. This is the last of the ID/offset/index mappings that I know of. Unfortunately, the "gap" method of testing doesn't work here due to the way the preprocessing record performs iteration. We'll do more testing once multi-AST loading is possible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3b2257ca054aa0b7d0150a294f184e9349cda433 |
|
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove the unset, unused return value of ASTReader::ReadMacroRecord(). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
fb2d9e092f19cfcdd11ebd5ceac40456c090c7db |
|
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement the local -> global remapping for macro definition IDs in the detailed preprocessing record. Tested with the standard "gaps" method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e92b8a1dbba150e213c4980710fcb59ec5c5c570 |
|
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Don't introduce a local -> global mapping for CXXBaseSpecifiers. The IDs will never cross module boundaries, since they're tied to the CXXDefinitionData, so just use a local mapping throughout. Eliminate the global -> local tables and supporting data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b18b1fd33f958264630fbae2602c81275bae8c9a |
|
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce local -> global selector ID mapping into the AST reader. Tested with the usual "gaps" method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6ec60e00eeaaed78d98c85ce962d6f328094ca14 |
|
03-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a local-to-global remapping for identifiers in the AST reader, and fix up the one (!) place where we were improperly mapping a local ID to a global ID. Tested via the usual "gaps" trick. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
43fd9388d374f29e908e611a686c6137553efa79 |
|
03-Aug-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Fix a few typos git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136792 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
496c709a6f08f5c502b6f592ddd9ed40f953a5e5 |
|
03-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the local -> global declaration ID mapping into the AST reader, to allow AST files to be loaded with their declarations remapped to different ID numbers. Fix a number of places where we were either failing to map local declaration IDs into global declaration IDs or where interpreting the local declaration IDs within the wrong module. I've tested this via the usual "random gaps" method. It works well except for the preamble tests, because our handling of the precompiled preamble requires declaration and preprocessed entity to be stable when parsing code and then loading that back into memory. This property will hold in general, but my randomized testing naturally breaks this property to get more coverage. In the future, I expect that the precompiled preamble logic won't need this property. I am very unhappy with the current handling of the translation unit, which is a rather egregious hack. We're going to have to do something very different here for loading multiple AST files, because we don't want to have to cope with merging two translation units. Likely, we'll just handle translation units entirely via "update" records, and predefine a single, fixed declaration ID for the translation unit. That will come later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e36050111e2bdb7efc014af9dd7f0009b492ac36 |
|
02-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Change the hashing function for DeclContext lookup within an AST file by eliminating the type ID from constructor, destructor, and conversion function names. There are several reasons for this change: - A given type (say, int*) isn't guaranteed to have a single, unique type ID within a chain of PCH files. Hence, we could end up hashing based on the wrong type ID, causing name lookup to fail. - The mapping from types back to type IDs required one DenseMap entry for every type that was ever deserialized, which was an unacceptable cost to support just the name lookup of constructors, destructors, and conversion functions. Plus, this mapping could never actually work with chained or multiple PCH, based on the first bullet. Once we have eliminated the type from the hash function, these problems go away, as does my horrible "reverse type remap" hack, which was doomed from the start (see bullet #1 above) and far too complicated. However, note that removing the type from the hash function means that all constructors, destructors, and conversion functions have the same hash key, so I've updated the caller to double-check that the declarations found have the appropriate name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c24a1eef40207457692a1ad597cefdd0dc8fa149 |
|
02-Aug-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Following up the earlier refactoring/cleanup work by fixing up how we manage the virtual files the ASTReader has to handle. Specifically, this occurs when the reader is reading AST files that were created in memory and not written to disk. For example, when a user creates a chained PCH using command line flags. These virtual files are stored in MemoryBuffers in ChainIncludeSource.cpp, and then read back in by the ASTReader. This patch moves the management of these buffers into the ModuleManager, so that it becomes the authority on where these buffers are located. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a119da0761cb6b85f53857eaee50f6ad8c5ea0a0 |
|
02-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement a proper local -> global type ID remapping scheme in the AST reader. This scheme permits an AST file to be loaded with its type IDs shifted anywhere in the type ID space. At present, the type indices are still allocated in the same boring way they always have been, just by adding up the number of types in each PCH file within the chain. However, I've done testing with this patch by randomly sliding the base indices at load time, to ensure that remapping is occurring as expected. I may eventually formalize this in some testing flag, but loading multiple (non-chained) AST files at once will eventually exercise the same code. There is one known problem with this patch, which involves name lookup of operator names (e.g., "x.operator int*()") in cases where multiple PCH files in the chain. The hash function itself depends on having a stable type ID, which doesn't happen with chained PCH and *certainly* doesn't happen when sliding type IDs around. We'll need another approach. I'll tackle that next. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8df5c9b5d65beec807e4e77dae2813dd193f77dd |
|
02-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Add a debugging dump for Module (also emitted as part of the AST reader statistics), to show the local-to-global mappings. The only such mapping we have (at least, for now) is for source location offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
2e09163890b51aa8766564780154531451a3cf0b |
|
29-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Renamed Loaded member to ImportedBy, as it's easier to read. Added another set to represent the modules a module imports. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
9827a8049a793f23c62ade8f24f0c66c2dbf6741 |
|
29-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
In the ASTReader, replace the continuous range maps whose value types were (Module*, Offset) with equivalent maps whose value type is just a Module*. The offsets have moved into corresponding "Base" fields within the Module itself, where they will also be helpful for local->global translation (eventually). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1e849b6f43a6aded51466978d826e938859130db |
|
29-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Move the base type ID from the ASTReader's global type map into the Module itself, which makes more sense. This pattern to be repeated several more times. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b4ae29ced808ae77914754a9e966513aa26b580b |
|
29-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Some documentation fixes so that we are explicit about which iteration order is source-order. Also, removing unused NextInSource field of Module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
86c67d8802a9e0887c31c850188991465ac3c1bd |
|
29-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the local-global mapping for preprocessed entities, and use it appropriately. Also, patch up a place where we were failing to map local macro definition IDs into global macro definition IDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e144c70d07bf7af6c0337000ac4c4e805fc6d842 |
|
29-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use local-to-global mapping appropriately for macro definitions in the ASTReader git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
2d2689ab787c6d54cb985c28ff3f16370bc01b0f |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use the local -> global mapping functions for selectors more consistently in the ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
95eab176f51beed44a9bc14c0dcdd37844b23740 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the ASTReader to perform local and global mapping of identifier IDs properly, although the mapping itself is still trivial. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6e4a3f5c59664af13e02e9bb58c2810b830e3b96 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Make the deserialization of Sema::PendingInstantiations lazy. At this point, ASTReader::InitializeSema() has very little interesting work, *except* issues stemming from preloaded declarations. That's something we'll still need to cope with. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136378 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f2abb52acbba25ad93a1ecdc24d994b9694803a1 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Promote the deserialized PendingInstantiations vector from being a Module member to being an ASTReader member; we want it to be centralized for lazy deserialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dfe6543e12eca5c79421378b7fa6b3e8fc403e63 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Lazily deserialize Sema::VTableUses. Plus, fix the utterly and completely broken deserialization mapping code we had for VTableUses, which would have broken horribly as soon as our local-to-global ID mapping became interesting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136371 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
31e37b2d7b4815fdea6a35d49f33005562f0d494 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Make Sema::WeakUndeclaredIdentifiers lazily deserialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8a22e27af58776b9bd9e51b913514fbfa4d4fa84 |
|
28-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Add missing documentation onto new member variable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136365 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1afb661bc5444462a246cefa0effa61ef25fab29 |
|
28-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Switch the ModuleManager over to using a FileManager and FileEntry* as part of its lookup instead of the filename. This is a more correct unique identifier, as symlinks can be handled by the FileManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5b9dc7caaef0469babc45dd8e713727a136ce517 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Make Sema::ReferencedSelectors lazily deserialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8451ec7e709baf777bec07dc70653e0c523dd120 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Move a Module's ReferencedSelectorsData into the ASTReader itself, so that it accumulates referenced selectors from each of the modules/PCH files as they are loaded. No actual functionality change, yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ec12ce2f6da44bfc9048772327a3924498099d60 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Make Sema::LocallyScopedExternalDecls lazily deserialized. In theory, we could turn this into an on-disk hash table so we don't load the whole thing the first time we need it. However, it tends to be very, very small (i.e., empty) for most precompiled headers, so it isn't all that interesting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b4dc485a2b38ea98ba7da01596fd0e8438120346 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
AST serialization support for the Framework in IndexHeaderMapHeader fields of HeaderFileInfo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136332 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a126f17ca83b985300c1f65cee647bea108db657 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch Sema::DynamicClasses over to LazyVector git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
d58a0a55e64a7c410a80e9d6dcd899e61e99cc4d |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch Sema::ExtVectorDecls over to LazyVector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0129b561a1452bf057f6b18b6a1de815d487ab81 |
|
27-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Turn Sema::DelegatingCtorDecls into a LazyVector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a2ee20aa9660851080135219cac5b31fbac08b78 |
|
27-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch Sema::UnusedFileScopedDecls over to a LazyVector. - Added LazyVector::erase() to support this use case. - Factored out the LazyDecl-of-Decls to RecordData translation in the ASTWriter. There is still a pile of code duplication here to eliminate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a862320972e63349524dc9aa744dec1b95f54ba1 |
|
27-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new data structure, LazyVector, which is a vector whose contents are lazily loaded on demand from an external source (e.g., an ExternalASTSource or ExternalSemaSource). The "loaded" entities are kept separate from the "local" entities, so that the two can grow independently. Switch Sema::TentativeDefinitions from a normal vector that is eagerly populated by the ASTReader into one of these LazyVectors, making the ASTReader a bit more like me (i.e., lazy). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
48d2c3f7c3ca48da05436afdc8426a245294ee65 |
|
26-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
This patch extends the previous patch by starting to incorporate more functionality, like lookup-by-name and exporting lookup tables, into the module manager. Methods now have documentation. A few more functions have been switched over to the new iterator style and away from manual/explicit iteration. Ultimately we want to move away from name lookup here, as symlinks make filenames not a safe unique value, but we use it here as a stopgap before better measures are in place (namely instead using FileEntry* from a global FileManager). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5d6d89fef8c7fff8b1a67c943fb5557a2a803468 |
|
25-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Refactor of how modules are handled in ASTReader to remove explicit uses of a chain of AST files, instead redirect calls through a module manager. This should help move toward a DAG and the potential of loading multiple, unrelated PCH files. It's still early in development. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
832d620b4ae0fc5fe28561b885b4cfc65cf5c9ab |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch all of the "isysroot" const char*'s throughout the AST reader and writer to StringRef or std::string, as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
72a9ae18553bf8b6bdad84d2c54f73741a47e275 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Rename ASTReader::PerFileData to serialization::Module, pulling it out of ASTReader so it can become its own full-fledged class (eventually). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8f1231b70c2b1f6fe0cee097b447487b26810301 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a global bit-offset continuous range map into the ASTReader, so that we have one, simple way to map from global bit offsets to local bit offsets. Eliminates a number of loops over the chain, and generalizes for more interesting bit remappings. Also, as an amusing oddity, we were computing global bit offsets *backwards* for preprocessed entities (e.g., the directly included PCH file in the chain would start at offset zero, rather than the original PCH that occurs first in translation unit). Even more amusingly, it made precompiled preambles work, because we were forgetting to adjust the local bit offset to a global bit offset when storing preprocessed entity offsets in the ASTUnit. Two wrongs made a right, and now they're both right. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
393f249399fe30e9580e1529a7479489e90f3a57 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
In the AST reader, factor out the mapping of local type IDs to global type IDs into a single place, and make sure that all of the callers use the appropriate functions to do the mapping. Since the mapping is still the identity function, this is essentially a no-op. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f5bb9ae23d68ffb1e1c37b05fc8d943bc6bff12e |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Clean up the rest of the local -> global declaration ID mappings within the ASTReader (I hope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
409448c832d27703146b70a1137d86b020f29863 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
In the ASTReader, factor out the loading of (local) declaration IDs, such that every declaration ID loaded from an AST file will go through a central local -> global mapping function. At present, this change does nothing, since the local -> global mapping function is the identity function. This is the mechanical part of the refactoring; a follow-up patch will address a few remaining areas where it's not obvious whether we're dealing with local or global IDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1da901467f72d1733704b068e22089813a1962fd |
|
21-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Cleaning up more of the ID situation in the AST reader. This patch relaxes and generalizes how CXX base specifiers are identified and loaded by using a ContinuousRangeMap. This also adds a global bit offset (or base) to the PerFileData. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
23d7df5ce30f4a068e13ad6cb81d473365d260db |
|
21-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Add some debugging output to the AST reader, so we can see the global remappings we generate git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4c30bb148b53c8063e940ca3e049ba4d270dc9d5 |
|
21-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Rework the detailed preprocessing record to separate preprocessing entities generated directly by the preprocessor from those loaded from the external source (e.g., the ASTReader). By separating these two sets of entities into different vectors, we allow both to grow independently, and eliminate the need for preallocating all of the loaded preprocessing entities. This is similar to the way the recent SourceManager refactoring treats FileIDs and the source location address space. As part of this, switch over to building a continuous range map to track preprocessing entities. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e9b76c11a88d0af98f32d11a6668d03d45be3123 |
|
20-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Continuing to improve and generalize how IDs are handled in ASTReader. This patch cleans up and generalizes TypeID loading and uses a similar table-lookup to Doug's previous Decl patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
686775deca8b8685eb90801495880e3abdd844c2 |
|
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
now that we have a centralized place to do so, add some using declarations for some common llvm types: stringref and smallvector. This cleans up the codebase quite a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
14ad03b6f4350f062256757efc4149a7df94bdf9 |
|
20-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use a ContinuousRangeMap to map from the global macro definition ID in the AST reader down to the AST file + local ID, rather than walking the PCH chain. More cleanup/generalization, although there is more work to do for preprocessed entities. In particular, the "preallocation" scheme for preprocessed entities is not going to work well with late loading of PCH files, and it's likely we'll have to do something akin to the SourceManager's negative/positive loading. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
96958cbe6fb423ab2446629ead5f1b138398433c |
|
20-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use a ContinuousRangeMap to map from the global selector ID in the AST reader down to the AST file + local ID, rather than walking the PCH chain. No functionality change; this is generalization and cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
67268d02388d3d25107fa9cf4998c35246255a65 |
|
20-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use a ContinuousRangeMap to map from the global identifier ID in the AST reader down to the AST file + local ID, rather than walking the PCH chain. No functionality change; this is generalization and cleanup. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
96e973f2be14c9b82136f74b4108465d24894fea |
|
20-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use a ContinuousRangeMap to map from the global declaration ID in the AST reader down to the AST file + local ID within that file, rather than lamely walking the PCH chain. There's no actual functionality change now, but this is cleaner and more general. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f62d43d2afe1960755a1b5813cae1e5983bcac1b |
|
19-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Revamp the SourceManager to separate the representation of parsed source locations from source locations loaded from an AST/PCH file. Previously, loading an AST/PCH file involved carefully pre-allocating space at the beginning of the source manager for the source locations and FileIDs that correspond to the prefix, and then appending the source locations/FileIDs used for parsing the remaining translation unit. This design forced us into loading PCH files early, as a prefix, whic has become a rather significant limitation. This patch splits the SourceManager space into two parts: for source location "addresses", the lower values (growing upward) are used to describe parsed code, while upper values (growing downward) are used for source locations loaded from AST/PCH files. Similarly, positive FileIDs are used to describe parsed code while negative FileIDs are used to file/macro locations loaded from AST/PCH files. As a result, we can load PCH/AST files even during parsing, making various improvemnts in the future possible, e.g., teaching #include <foo.h> to look for and load <foo.h.gch> if it happens to be already available. This patch was originally written by Sebastian Redl, then brought forward to the modern age by Jonathan Turner, and finally polished/finished by me to be committed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135484 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ba6ffaf21e465c0926d7fc5fa294ea52f8d45faf |
|
15-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Augment the interface of ExternalASTSource::FindExternalLexicalDecls() to allow clients to specify that they've already (correctly) loaded declarations, and that no further action is needed. Also, make sure that we clear the "has external lexical declarations" bit before calling FindExternalLexicalDecls(), to avoid infinite recursion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
d8bba9c15230d2b1b3893e272106aa79efc50251 |
|
28-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Add support for C++ namespace-aware typo correction, e.g., correcting vector<int> to std::vector<int> Patch by Kaelyn Uhrain, with minor tweaks + PCH support from me. Fixes PR5776/<rdar://problem/8652971>. Thanks Kaelyn! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4cdb0e2a2e9d93805e5ceaf8bc7018bdd166aec1 |
|
02-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Store the offsets of source location file entries and go through them in ASTReader::validateFileEntries(). This avoids going through all source location entries and fixes the performance regression. Many thanks to Doug for the hint! (rdar://9530587) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b68ffb107a86f5e3851e8108c712b64dd16ba258 |
|
01-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Be conservative and check all the files the PCH references to see if a file was modified since the time the PCH was created. The parser is not fit to deal with stale PCHs, too many invariants do not hold up. rdar://9530587. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
31d375f056447d4e2418275d4913661d3bfedb3e |
|
06-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Keep track of the file ID corresponding to the original file used to build a precompiled header. Use this information to eliminate the call to SourceManager::getLocation() while loading a precompiled preamble, since SourceManager::getLocation() itself causes unwanted deserialization. Fixed <rdar://problem/9399352>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ebcbe1d3dc7d4f0c1f540a632fa0684dd0a857d5 |
|
05-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
there i fixed it Increase robustness of the delegating constructor cycle detection mechanism. No more infinite loops on invalid or logic errors leading to false results. Ensure that this is maintained correctly accross serialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0acc4ea40d2a75fbaf385e095a252f59078c7b94 |
|
29-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Use std::vector for ASTReader's ASTBuffers, instead of std::deque. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130487 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e9b5f3d4acfc2ad6e8b65a4072464e997dea9ed3 |
|
29-Apr-2011 |
Ted Kremenek <kremenek@apple.com> |
Enhance clang_getCXTUResourceUsage() to report the sizes of the memory buffers used by PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8d8f2c20f3e21c7516e5d27293f08283913904d1 |
|
26-Apr-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix a crash when ASTReader emits diagnostic when another one is in flight. Fixes rdar//9334563. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130162 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e23ac65af568ffe611b0990818ac3a57c856a4d8 |
|
20-Apr-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach SourceManager::getSLocEntry() that it can fail due to problems during deserialization from a precompiled header, and update all of its callers to note when this problem occurs and recover (more) gracefully. Fixes <rdar://problem/9119249>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0a0d2b179085a52c10402feebeb6db8b4d96a140 |
|
23-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement a new 'availability' attribute, that allows one to specify which versions of an OS provide a certain facility. For example, void foo() __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,obsoleted=10.6))); says that the function "foo" was introduced in 10.2, deprecated in 10.4, and completely obsoleted in 10.6. This attribute ties in with the deployment targets (e.g., -mmacosx-version-min=10.1 specifies that we want to deploy back to Mac OS X 10.1). There are several concrete behaviors that this attribute enables, as illustrated with the function foo() above: - If we choose a deployment target >= Mac OS X 10.4, uses of "foo" will result in a deprecation warning, as if we had placed attribute((deprecated)) on it (but with a better diagnostic) - If we choose a deployment target >= Mac OS X 10.6, uses of "foo" will result in an "unavailable" warning (in C)/error (in C++), as if we had placed attribute((unavailable)) on it - If we choose a deployment target prior to 10.2, foo() is weak-imported (if it is a kind of entity that can be weak imported), as if we had placed the weak_import attribute on it. Naturally, there can be multiple availability attributes on a declaration, for different platforms; only the current platform matters when checking availability attributes. The only platforms this attribute currently works for are "ios" and "macosx", since we already have -mxxxx-version-min flags for them and we have experience there with macro tricks translating down to the deprecated/unavailable/weak_import attributes. The end goal is to open this up to other platforms, and even extension to other "platforms" that are really libraries (say, through a #pragma clang define_system), but that hasn't yet been designed and we may want to shake out more issues with this narrower problem first. Addresses <rdar://problem/6690412>. As a drive-by bug-fix, if an entity is both deprecated and unavailable, we only emit the "unavailable" diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b0f4b9a558933b307073f7cd7753602f94354ae9 |
|
09-Mar-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce '-chain-include' option to specify headers that will be converted to chained PCHs in memory without having to use multiple runs and intermediate files. Intended for testing & debugging of chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dc355713be51fcb4ee52d9fd6b4548ceff47fadf |
|
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Update UsingDecl, UnresolvedUsingTypenameDecl, and UnresolvedUsingValueDecl to use NestedNameSpecifierLoc rather than the extremely-lossy NestedNameSpecifier/SourceRange pair it used to use, improving source-location information. Various infrastructure updates to support NestedNameSpecifierLoc: - AST/PCH (de-)serialization - Recursive AST visitor - libclang traversal (including the first tests of this functionality) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
277a6e752512cff286190d35cb353ce717e86b18 |
|
23-Feb-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Preserve what the user passed to -include when emitting .d files. Fixes PR8974! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
56ca35d396d8692c384c785f9aeebcf22563fe1e |
|
17-Feb-2011 |
John McCall <rjmccall@apple.com> |
Change the representation of GNU ?: expressions to use a different expression class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these expressions where the deserialized form would lose the vital pointer-equality trait; or rather, it fixes it because this patch also does the right thing for deserializing OVEs. Change OVEs to not be a "temporary object" in the sense that copy elision is permitted. This new representation is not totally unawkward to work with, but I think that's really part and parcel with the semantics we're modelling here. In particular, it's much easier to fix things like the copy elision bug and to make the CFG look right. I've tried to update the analyzer to deal with this in at least some obvious cases, and I think we get a much better CFG out, but the printing of OpaqueValueExprs probably needs some work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298 |
|
17-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Step #1/N of implementing support for __label__: split labels into LabelDecl and LabelStmt. There is a 1-1 correspondence between the two, but this simplifies a bunch of code by itself. This is because labels are the only place where we previously had references to random other statements, causing grief for AST serialization and other stuff. This does cause one regression (attr(unused) doesn't silence unused label warnings) which I'll address next. This does fix some minor bugs: 1. "The only valid attribute " diagnostic was capitalized. 2. Various diagnostics printed as ''labelname'' instead of 'labelname' 3. This reduces duplication of label checking between functions and blocks. Review appreciated, particularly for the cindex and template bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
84bccea1ad9fd8bc1f4ec3d1fc5dd8d15dabffbc |
|
15-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Serialization/deserialization support for floating point #pragma options, enabled OpenCL extensions and default FP_CONTRACT setting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8e3df4d0864f0a966c20088ca1a29c3398b7639d |
|
15-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Allow resolving headers from a PCH even after headers+PCH were moved to another path. Store in PCH the directory that the PCH was originally created in. If a header file is not found at the path that we expect it to be and the PCH file was moved from its original location, try to resolve the file by assuming that header+PCH were moved together and the header is in the same place relative to the PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0895d1513772eca5a20c552976209fd7f58b993f |
|
12-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When reading the AST, delay loading of the redeclaration chain to avoid deeply nested calls. Temporarily set the first (canonical) declaration as the previous one, which is the one that matters, and mark the real previous DeclID to be loaded & attached later on. Fixes rdar://8956193. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
0a480293f726508ad9aed0be39e8c9779e84f2f2 |
|
11-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Rename the operation that loads a preprocessed entity from a given offset to indicate that we're loading from an offset, not an index, lest one be confused. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
cfbf1c7536e016dc275139dd842d4a5f059a749f |
|
10-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement two related optimizations that make de-serialization of AST/PCH files more lazy: - Don't preload all of the file source-location entries when reading the AST file. Instead, load them lazily, when needed. - Only look up header-search information (whether a header was already #import'd, how many times it's been included, etc.) when it's needed by the preprocessor, rather than pre-populating it. Previously, we would pre-load all of the file source-location entries, which also populated the header-search information structure. This was a relatively minor performance issue, since we would end up stat()'ing all of the headers stored within a AST/PCH file when the AST/PCH file was loaded. In the normal PCH use case, the stat()s were cached, so the cost--of preloading ~860 source-location entries in the Cocoa.h case---was relatively low. However, the recent optimization that replaced stat+open with open+fstat turned this into a major problem, since the preloading of source-location entries would now end up opening those files. Worse, those files wouldn't be closed until the file manager was destroyed, so just opening a Cocoa.h PCH file would hold on to ~860 file descriptors, and it was easy to blow through the process's limit on the number of open file descriptors. By eliminating the preloading of these files, we neither open nor stat the headers stored in the PCH/AST file until they're actually needed for something. Concretely, we went from *** HeaderSearch Stats: 835 files tracked. 364 #import/#pragma once files. 823 included exactly once. 6 max times a file is included. 3 #include/#include_next/#import. 0 #includes skipped due to the multi-include optimization. 1 framework lookups. 0 subframework lookups. *** Source Manager Stats: 835 files mapped, 3 mem buffers mapped. 37460 SLocEntry's allocated, 11215575B of Sloc address space used. 62 bytes of files mapped, 0 files with line #'s computed. with a trivial program that uses a chained PCH including a Cocoa PCH to *** HeaderSearch Stats: 4 files tracked. 1 #import/#pragma once files. 3 included exactly once. 2 max times a file is included. 3 #include/#include_next/#import. 0 #includes skipped due to the multi-include optimization. 1 framework lookups. 0 subframework lookups. *** Source Manager Stats: 3 files mapped, 3 mem buffers mapped. 37460 SLocEntry's allocated, 11215575B of Sloc address space used. 62 bytes of files mapped, 0 files with line #'s computed. for the same program. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
14b6ba77710d6431794d65c7d58c6f29c3dc956e |
|
09-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
AST, Sema, Serialization: keep track of cudaConfigureCall git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125216 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4800a5c79023271408af49797e09be32aca93232 |
|
08-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Split the serialized representation for the detailed preprocessing record away from the core processor record. The tangling of these two data structures led to some inefficiencies (e.g., deserializing all of the detailed preprocessing record when we didn't need it, such as while performing code completion) along with some unnecessary ugliness. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8ef6c8cb6c5627240e2339fd7062c9873f821d7e |
|
05-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Improve our uniquing of file entries when files are re-saved or are overridden via remapping. Thus, when we create a "virtual" file in the file manager, we still stat() the real file that lives behind it so that we can provide proper uniquing based on inodes. This helps keep the file manager much more consistent. To take advantage of this when reparsing files in libclang, we disable the use of the stat() cache when reparsing or performing code completion, since the stat() cache is very likely to be out of date in this use case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1aee05d08b2184acadeb36de300e216390780d6c |
|
15-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new kind of TemplateName that captures a substituted template template parameter pack that cannot be fully expanded because its enclosing pack expansion could not be expanded. This form of TemplateName plays the same role as SubstTemplateTypeParmPackType and SubstNonTypeTemplateParmPackExpr do for template type parameter packs and non-type template parameter packs, respectively. We should now handle these multi-level pack expansion substitutions anywhere. The largest remaining gap in our variadic-templates support is that we cannot cope with non-type template parameter packs whose type is a pack expansion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
3efd52cf8f4e57c5571bd8cc3168264c3bc46a1e |
|
14-Jan-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Properly propagate #pragma diagnostic mappings from PCH but not command-line warning flags. Addresses rdar://8435969&8852495 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
cbb67480094b3bcb5b715acd827cbad55e2a204c |
|
08-Jan-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Renamed CXXBaseOrMemberInitializer to CXXCtorInitializer. This is both shorter, more accurate, and makes it make sense for it to hold a delegating constructor call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
89d9980bbc2e4a4ac86673e6ec16fb9f5babb63b |
|
30-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
When using a precompiled preamble with detailed preprocessing records, trap the serialized preprocessing records (macro definitions, macro instantiations, macro definitions) from the generation of the precompiled preamble, then replay those when walking the list of preprocessed entities. This eliminates a bug where clang_getCursor() wasn't able to find preprocessed-entity cursors in the preamble. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120396 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
03013fa9a0bf1ef4b907f5fec006c8f4000fdd21 |
|
29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
39b49bcaaddb1049234fca9500c0ac02c088e23d |
|
23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
now the FileManager has a FileSystemOpts ivar, stop threading FileSystemOpts through a ton of apis, simplifying a lot of code. This also fixes a latent bug in ASTUnit where it would invoke methods on FileManager without creating one in some code paths in cindextext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f41d3be39980d40849850d3fb90403623cc8459e |
|
05-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write from/to PCH the diagnostic mappings that the user set so that e.g. #pragma clang diagnostic can be used in a PCH. Fixes rdar://8435969. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
389db16c63eec6ecfa9b235155252d8da766e94e |
|
03-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Implement -working-directory. When -working-directory is passed in command line, file paths are resolved relative to the specified directory. This helps both when using libclang (where we can't require the user to actually change the working directory) and to help reproduce test cases when the reproduction work comes along. --FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains the working directory value if set). --FileSystemOptions are passed around to various interfaces that perform file operations. --Opening & reading the content of files should be done only through FileManager. This is useful in general since file operations will be abstracted in the future for the reproduction mechanism. FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same FileManager but with different FileSystemOptions. Addresses rdar://8583824. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
295a2a617ac335f590e430ab7fcd98f8ce109251 |
|
30-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Make the deserialization of macro definitions lazy, so that we can load identifiers without loading their corresponding macro definitions. This is likely to improve PCH performance slightly, and reduces deserialization stack depth considerably when using preprocessor metaprogramming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
7c789c1a3f77f24032aa0bed2afacdb9e094e952 |
|
30-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Make the deserialization of C++ base class specifiers lazy, improving the performance of C++ PCH and reducing stack depth in the reader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e09a275444576deb2c8d9e2255554242f65d7c00 |
|
28-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Switch case IDs conflict between chained PCHs; since there is no need to be global, make them local to a decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
bef1a7b9c175d37e4a727e6ce68bd05232fa6970 |
|
28-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use the ASTMutationListener to track added template specializations in a chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
7b90340c9c7d07aef4e301e72b5e8a30d5f4f0c8 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Put the mechanism in place to track modifications in an AST entity that were 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
134db1fff5653c164ef41c898943521c49f6ebab |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Simplify and "robust-ify" the way that CXXRecord references point to the definition data when loaded from PCH. Temporary disable 'test/PCH/chain-cxx.cpp' until a better way to fix it is in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
ecdcb883cbc6bb4a2445dc6f02d58d9bdb54a0ed |
|
21-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Extend the preprocessing record and libclang with support for 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4eb9fc0449ddbd5239ddc3ae6b6e52880f47dcf7 |
|
18-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write declaration attributes from/to PCH properly. Embed them in the 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4045107b7384fd68eed5e3e2f06fc2a47e7be0a6 |
|
15-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write to/from PCH DeclarationNameLocs, DeclarationNameInfos and QualifierInfos (rdar://8513756). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
95f4292cc526c629fead321c7fcfd4fe0f3bc66e |
|
15-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
When performing typo correction, look through the set of known identifiers to determine good typo-correction candidates. Once we've identified those candidates, we perform name lookup on each of them and the consider the results. This optimization makes typo correction > 2x faster on a benchmark example using a single typo (NSstring) in a tiny file that includes Cocoa.h from a precompiled header, since we are deserializing far less information now during typo correction. There is a semantic change here, which is interesting. The presence of a similarly-named entity that is not visible can now affect typo correction. This is both good (you won't get weird corrections if the thing you wanted isn't in scope) and bad (you won't get good corrections if there is a similarly-named-but-completely-unrelated thing). Time will tell whether it was a good choice or not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
eb5e9986e577b1e2bff3cca5973a2494fb593fbb |
|
14-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Allow deserialization of just the fields of a record, when we want to 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
1d9f1fe7173e3084325f43c78af812a36d8a2a7c |
|
05-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Give every file that ASTReader loads a type: module, PCH, precompiled preamble or main file. Base Decls' PCHLevel on this to make it more sane. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c3632730cc83ed7b51f0ab5c38997ae5a9439b0c |
|
05-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Thread PerFileData through the ASTReader again, this time with the LLVM changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
77424bc3794f569816dba52e423b57486a98e5ba |
|
02-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement chained PCH support for the macro definitions stored within the "detailed" preprocessing record. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
b1a7d9a21bcfc295d1d899a42c0d14d617058c29 |
|
01-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r115336 ("Thread PerFileData through everything."), because we're missing the corresponding changes in the LLVM repository. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
dc928191a33be17f3b921c0616e6463312f439db |
|
01-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Thread PerFileData through everything. This allows us to remap stuff later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a866e652875c61f09ac29c2f44009ce9f2a25cf2 |
|
01-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Record module loaders and module source order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8db9faed418ea743f55c31e1ccecadbb23bd55b7 |
|
22-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Change source manager serialization to be less tied to the PCH model. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
4ee5a6f9bd82ab3c1a4bdacc0caefe7d5f8bd37a |
|
22-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Only preload SLocEntries after the entire PCH chain was loaded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
301c9b0b6722293f1b9d870815ae11e1ffc3245d |
|
22-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Reshuffle PerFileData's members to make more sense. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f73c93fea0d4b447585bc7459499ba6b822e045c |
|
15-Sep-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Macro definitions in AST files have their own IDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e41f985c15d15fce8390ebffb49dc75447c8f0f6 |
|
28-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Comment and move another ASTReader member. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112319 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e361c63e5306df4df9aa780c60c658046a69d38d |
|
28-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Update comment after Chandler's change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
62c78d54bee499dd87f768f48b21c9b5ec15e516 |
|
25-Aug-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Rename *PendingImplicitInstantiations to *PendingInstantiations. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
892ac04155aad22f8172d06a929e09cf51e8bc68 |
|
25-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Reorganize and verbosely document some of ASTReader's fields. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
cd9e339014b5f38e626735893010930605e9c232 |
|
25-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Remove an unused field in ASTReader git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6e50e00c2fe6a04b2c35592588a4b10a2c269416 |
|
25-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
AST reader support for having specializations of templates from earlier in the chain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
e1dde811b38e779894150cb1093d57f8411a84f7 |
|
24-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Read the UPDATE_VISIBLE record, and add its visible decls to the lookup tables. Also, free the lookup tables when destructing the ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8b12273c86ede439edf52d35b170fd32b2ed49d4 |
|
24-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Baby step towards supporting namespaces in chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
a60786b46eaa4766bb57fb3ca4e0191b3f73e42a |
|
21-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix an issue with writing to PCH another included PCH, introduced by the "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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
074dcc8ef8c5df7a155c85648e8eae786bee6cab |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use the AST on-disk hash table for name lookup inside a DeclContext. *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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
5d26768e2661faa7ce0b55ffff4be8b3969fbbf5 |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce the mechanism for building an AST on-disk hash table for name lookup inside a DeclContext but don't use it yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111635 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
c8e5d51f51e46c6f7717761537c6609ef9daf57c |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
serialization::TypeID is used with or without qualifiers, both as index and as index + qualifiers. Disambiguate and provide some type safety by using a new class TypeIdx for the "TypeID as index" semantics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
501c1036560bb407f9be6834931253f0929cca86 |
|
19-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Make sure to deallocate the identifier lookup tables and selector tables when destroying an ASTReader. Plugs a leak that shows up in libclang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
8538e8d43a3a9bd439c987c0de37bcbf035dd391 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename pch namespace to serialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
05a07605322dfef2b017781042043a261c5a89cd |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHBitCodes.h -> ASTBitCodes.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
f29f0a28c4d9599b389bbb6d186e14af753dc5a3 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename stuff in PCHBitCodes.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|
6ab7cd853e9c15cf986a8a7c3db1f8d20e275409 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename the ASTReader header files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTReader.h
|