6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/include/clang/Serialization/ASTWriter.h
|
651f13cea278ec967336033dd032faef0e9fc2ec |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/include/clang/Serialization/ASTWriter.h
|
86164e8f51fa89a3ec904607c3848dc4a21b12cf |
|
05-Sep-2013 |
Eli Friedman <eli.friedman@gmail.com> |
Note when a decl is used in AST files. When an AST file is built based on another AST file, it can use a decl from the fist file, and therefore mark the "isUsed" bit. We need to note this in the AST file so that the bit is set correctly when the second AST file is loaded. This patch introduces the distinction between setIsUsed() and markUsed() so that we don't call into the ASTMutationListener callback when it wouldn't be appropriate. Fixes PR16635. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
ef4579cda09b73e3d4d98af48201da25adc29326 |
|
06-Aug-2013 |
Larisse Voufo <lvoufo@google.com> |
Started implementing variable templates. Top level declarations should be fully supported, up to some limitations documented as FIXMEs or TODO. Static data member templates work very partially. Static data member templates of class templates need particular attention... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
b22d19493d479bf3ed6e5e60bfcf7047823da7fc |
|
22-Jul-2013 |
Douglas Gregor <dgregor@apple.com> |
Make modules depend on the compiler's own module.map, as a proxy for the compiler itself. The headers in the compiler's own resource include directory are system headers, which means we don't stat() them eagerly when loading a module. Use module.map as a proxy for these headers and the compiler itself. Fixes <rdar://problem/13856838>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
1f01f7c160c06f8290b4f1c203e36b242074c6b1 |
|
11-Jun-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Allow building a precompiled preamble with compiler errors A while ago we allowed libclang to build a PCH that had compiler errors; this was to retain the performance afforded by a PCH even if the user's code is in an intermediate state. Extend this for the precompiled preamble as well. rdar://14109828 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
9dadfab2faebe40e7dbbfd0801c15174b69bd726 |
|
11-May-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++1y deduced return types: when we deduce a return type for a function which we loaded from PCH, if we're building another PCH, create an update record to patch the return type of the earlier declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
ea744ab5f39b8f45f802301841b77398166bce8f |
|
27-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] Make sure enabled diagnostic pragmas inside the module don't affect the translation unit that imports the module. Getting diagnostic sections from modules properly working is a fixme. rdar://13516663 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
4a18c3b25a2d7eb7f770ce91ee5e14433b2a1cb6 |
|
15-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/13426257> Introduce SDKSettings.plist as an input file dependency for PCH/modules. When we're building a precompiled header or module against an SDK on Darwin, there will be a file SDKSettings.plist in the sysroot. Since stat()'ing every system header on which a module or PCH file depends is performance suicide, we instead stat() just SDKSettings.plist. This hack works well on Darwin; it's unclear how we want to handle this on other platforms. If there is a canonical file, we should use it; if not, we either have to take the performance hit of stat()'ing system headers repeatedly or roll the dice by not checking anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
55ea75bf61a5d76f6453513d937944ce68181c6a |
|
13-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[Modules] Don't eagerly load and associate all the module header files. In a module-enabled Cocoa PCH file, we spend a lot of time stat'ing the headers in order to associate the FileEntries with their modules and support implicit module import. Use a more lazy scheme by enhancing HeaderInfoTable to store extra info about the module that a header belongs to, and associate it with its module only when there is a request for loading the header info for a particular file. Part of rdar://13391765 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
4145228b758892afd3545835a4caaea722f20510 |
|
11-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove the ASTDeserializationListener's MacroVisible() callback, which is no longer necessary, as well as the little bit of infrastructure in the AST writer that used it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
a2ea4d94f2133aad0d864cf1327af142a47ffb09 |
|
02-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH/Module] Change the map of file-level DeclIDs to use a FileID as key instead of a SLocEntry pointer. This allows the array of file sorted declarations in a PCH/module to be deterministic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
4990890fc9428f98bef90ba349203a648c592778 |
|
09-Jul-2012 |
Alexander Kornienko <alexfh@google.com> |
Inline storage of attributes in AttributedStmt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
7518b3784ed2176aad8dcabe0685c6e02c5f1043 |
|
02-Jul-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Make sure that all newly introduced visible decls in a DeclContext coming from an AST file are registered for serialization. A static data member instantiation of in a chained PCH could be missed when serializing decls; the result was that when emitting the visible decls map of its DeclContext, we would use a DeclID that was not actually emitted, leading to crashes or hangs. Fix this by making sure such decls are always registered for serialization. Also introduce extra sanity checks to make sure we don't register new declarations or types after we have serialized the types/decls block. rdar://11728990 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
534986f2b21e6050bf00163cd6423fd92155a6ed |
|
14-Apr-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add an AttributedStmt type to represent a statement with C++11 attributes attached. Since we do not support any attributes which appertain to a statement (yet), testing of this is necessarily quite minimal. Patch by Alexander Kornienko! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
8d6ff02cb78c67c615125782967b44d1b37e5815 |
|
29-Feb-2012 |
Daniel Dunbar <daniel@zuster.org> |
Serialization: Switch over to using the native SmallVector based BitstreamWriter ctor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
c52d9057241b7857c8400ab6cfee0a1c554e0982 |
|
29-Feb-2012 |
Daniel Dunbar <daniel@zuster.org> |
ASTWriter: Cache some DenseMaps we use repeatedly. - This reduces our total # of allocations building a PCH for Cocoa.h by almost a whopping 50%. - A SmallPtrMap would be cleaner, but since we don't have one yet... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
d7a3e2c5f61cd4893f95b69a424fe4def3aa0f69 |
|
07-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line. This seems to negatively affect compile time onsome ObjC tests (which use a lot of partial diagnostics I assume). I have to come up with a way to keep them inline without including Diagnostic.h everywhere. Now adding a new diagnostic requires a full rebuild of e.g. the static analyzer which doesn't even use those diagnostics. This reverts commit 6496bd10dc3a6d5e3266348f08b6e35f8184bc99. This reverts commit 7af19b817ba964ac560b50c1ed6183235f699789. This reverts commit fdd15602a42bbe26185978ef1e17019f6d969aa7. This reverts commit 00bd44d5677783527d7517c1ffe45e4d75a0f56f. This reverts commit ef9b60ffed980864a8db26ad30344be429e58ff5. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
00bd44d5677783527d7517c1ffe45e4d75a0f56f |
|
04-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move various diagnostic operator<< overloads out of line and remove includes of Diagnostic.h. Fix all the files that depended on transitive includes of Diagnostic.h. With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
cc32b44ea4b3c702bf84eae0af27ca160bd90831 |
|
15-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
When deserializing the definition of a C++ class/ObjC class/ObjC protocol, record the definition pointer in the canonical declaration for that entity, and then propagate that definition pointer from the canonical declaration to all other deserialized declarations. This approach works well even when deserializing declarations that didn't know about the original definition, which can occur with modules. A nice bonus from this definition-deserialization approach is that we no longer need update records when a definition is added, because the redeclaration chains ensure that the if any declaration is loaded, the definition will also get loaded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148223 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
1c7946a9fbba8671cc57f7dfd00721f8c035f913 |
|
05-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Don't seed the ASTWriter's declaration -> ID mapping with the IDs of each deserialized declaration, since that information is already available in each declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
3937f87e53b3ee0c8da93536f48f6f96c006309d |
|
01-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Eliminate ASTMutationListener::UpdatedAttributeList, which is no longer needed now that we aren't back-patching ObjCProtocolDecls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
1d4c1137c314cfb9ced32006cacdb80deffb66d4 |
|
20-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When we make a previously-deserialized module definition visible, notify the AST deserialization listener so that the AST writer knows that it can write the macro definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146994 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
e209e5026892cb07294f733c72bd51359c0f0e72 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement inferred submodules support, which (when requested) implicitly generates submodules corresponding to the headers that fall within a module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
a015cab273705d1198d13e8389c2f4775f539a8b |
|
02-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Notify the AST writer (via ASTDeserializationListener) when a (sub)module is read from an AST file. This makes sure that the AST writer knows how to map all modules to their global IDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
185dbd7782a45d0f830218bfbc196c6b664ed8d9 |
|
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Infer the submodule ID for a given declaration based on the location of that declaration, and encode the submodule ID in each declaration stored in an AST file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
a8cc6ce36e70e2afa22ab6b4340035cb3941c2eb |
|
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When writing a module file, pass the module through to the AST writer. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145479 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
c80553efdc269dabd4ed0c3210555f45729ab5dd |
|
14-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Do not crash if a class extension in a chained PCH introduces/redeclares a property. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
67bc4ba9894506c461aeff11302c2d2471b82273 |
|
14-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] In ASTWriter::WriteChainedObjCCategories use getDeclID since the decls should have been already emitted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
590ad93bf59f4e5f6adcba0d78efc3a58cac15ce |
|
13-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] When chaining a PCH and serializing HeaderSearch, make sure the HeaderFileInfos from the primary PCH is deserialized, otherwise we lose info that headers were already #imported/#included. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
1a43415b28e60e0e421ef60e254126acec7ab462 |
|
12-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add a method in ASTMutationListener for the last use of Decl's [is/set]ChangedSinceDeserialization and remove them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
ad834d534e9a5db3d3baa09593775f83ceaff1f2 |
|
12-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] When completing an objc forward reference, do not serialize the chain of its categories because it is going to be rewritten (and the chain will be serialized again), otherwise we may form a cycle in its categories list when deserializing. Also introduce ASTMutationListener::CompletedObjCForwardRef to notify that a forward reference was completed; using Decl's isChangedSinceDeserialization/setChangedSinceDeserialization is bug inducing and kinda gross, we should phase it out. Fixes infinite loop in rdar://10418538. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
fab8d5b478e6fb112b4414c4698a7cc2a350b0f0 |
|
29-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Sort the file decls by file offset not raw source location. Currently sorting by raw source location does work as intended but who knows what may change in the future.. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
19645d2ae928580b62f9feff91c5aa5e19f5f20d |
|
29-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] In ASTWriter::associateDeclWithFile don't bother finding the file loc if we are not interested in the decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
e6f0868a55aba2613e2d5dba3348aaf1064e6ddb |
|
22-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] When serializing Stmts, keep track of when sub statements are referenced again and in such a case just write out a reference of a previously serialized Stmt, instead of serializing it all over again. This saves memory + space + [de]serializing time, and avoids blowing up memory with pathological cases. rdar://10293911 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
61c5e340c26971d195bd27232e7f2e71be24bb52 |
|
17-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
With modules, we can end up loading a new module after we've seen an arbitrary amount of code. This forces us to stage the AST writer more strictly, ensuring that we don't assign a declaration ID to a declaration until after we're certain that no more modules will get loaded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
7143aab97c6e849a5a5005b7853b8c7d5af008ed |
|
01-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Modules hide macro definitions by default, so that silly things like include guards don't show up as macro definitions in every translation unit that imports a module. Macro definitions can, however, be exported with the intentionally-ugly #__export_macro__ directive. Implement this feature by not even bothering to serialize non-exported macros to a module, because clients of that module need not (should not) know that these macros even exist. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
9293ba8e26fcba18505b273ecc9b66645133fcce |
|
26-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove the Chaining argument from the PCH/module generator. It's no longer used git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138596 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
467dc88512b4ba4bb16e274ea3771dc1415d31da |
|
26-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a -cc1 option "-emit-module", that creates a binary module from the given source. -emit-module behaves similarly to -emit-pch, except that Sema is somewhat more strict about the contents of -emit-module. In the future, there are likely to be more interesting differences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
b7c324f8581a55e2a918e5f3eb2e7418b09df0f2 |
|
12-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Collapse ASTWriter::WriteASTChain into ASTWriter::WriteASTCore, eliminating a pile of redundant code (and probably some bugs in the process). The variation between chained and non-chained PCH is fairly small now anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
3b8043b49aff6e5d70f29ef5684214ce2473763c |
|
09-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Migrate the serialization of ASTContext's AutoDeduceTy and AutoRRefDeductTy from the "special types" block to predefined types. The latter behaves better when loading multiple AST files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
4947e25dd9f7ac1f2176d63262563ba3e96538fe |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Fix an embarrassing bug in relocatable PCH support, where we were passing a temporary const char* down as the "isysroot" parameter and then accessing it later. Fixes <rdar://problem/9035180>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
8cc488fefb2fb04bc8d5398da29f0182f97934cf |
|
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
add raw_ostream and Twine to LLVM.h, eliminating a ton of llvm:: qualifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
f70d12dbd49fcc25f1dfc0127217112ae76bcb8f |
|
15-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move the Serialization library from 'instantiation' to 'expansion', with the exception of its uses of SourceManager and SourceLocation APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
953c564288f2f376fed9c3540096bde3694bbb7a |
|
04-Jun-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Improvements to abbreviations for PCH which add support for EnumDecl, ObjCIvarDecl, TypedefDecl, VarDecl and FieldDecl and improve support for ParmVarDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
a72d8c4556fbdfca2c9e101722812861fcbdde12 |
|
03-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce additional abbreviations into the AST writer for DeclRefExprs, IntegerLiterals, and others, reducing Cocoa PCH size by ~1% and C++ header size by ~2.5%. From Jonathan Turner! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
f79a71908d6f28cb2bc0c081d9a801ed14d61d82 |
|
29-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add a decl update when a static data member of a class template is instantiated in a different PCH than its containing class. Otherwise we get double definition errors. Fixes a Boost.MPL problem that affects Boost.Accumulators and probably a lot more of Boost. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
58a2cd8c0d52e710cbcc57a67eac7b51b0b831c4 |
|
24-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Synthesizing the definition of an implicit member is an AST modification, so notify any mutation listeners of it. This fixes a crasher in chained PCH, where an implicit destructor in a PCH gets a definition in a chained PCH, which is then lost. However, any further use of the destructor would cause its definition to be regenerated in the final file, hiding the bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
5bbcdbf36f8cf79d99703ef20848c55960065e43 |
|
14-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Chained PCH: Remember when additional specializations are added to a function template from a previous PCH. Fixes the only crasher when using massive chains on Clang's Sema component. We still have some incomplete codegen there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
c850578dbfa68cf2d2776f59a5cb0009134d970e |
|
06-Mar-2011 |
Anders Carlsson <andersca@mac.com> |
Write CXX base specifier offsets for chained ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
040a804f852c45c8b8c371ce1d421fd4cd84b6fb |
|
11-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement AST/PCH chaining support for macro definitions. Previously, we would deserialize all of the macro definitions we knew about while serializing the macro definitions at the end of the AST/PCH file. Even though we skipped most of them (since they were unchanged), it's still a performance problem. Now, we do the standard AST/PCH chaining trick: watch what identifiers are deserialized as macro names, and consider only those identifiers (along with macro definitions that have been deserialized/written in the source) when serializing the preprocessor state. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
100050bf643bcfe2d06bdcef491e387171249260 |
|
28-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use the ASTMutationListener to track when a named decl gets added to a DeclContext, meaning we need to rewrite its name lookup table in a chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
d3d0755a4220d3fa6c125eb3f8ce29fc1424eac3 |
|
28-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix the re-serializing decls in a chained PCH mechanism. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.h
|
b6cc0e1a789c3f33e3f4b1ee768e679a9beab941 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Keep track in chained PCH of implicit members that were added after the definition was completed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
565bf30bf5607b9740d288d8d9c45cf38ea75298 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Start fleshing out ASTMutationListener; notify when a tag definition is completed. In that case a chained PCH will record the updates to the DefinitionData pointer of forward references. If a forward reference mutated into a definition re-write it into the chained PCH, this is too big of a change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
ba901b507fc36408fe6f8478e8ac90b554f1d230 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce a DeclsToRewrite field in ASTWrite, used for collecting the decls that will be replaced in the chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117238 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
aacdd02e5865aa410c1418d7ef77f445b5bb5cba |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Some method renaming, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
89eaf3af92c72c0c1aae807644e39cabc461d685 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Refactoring. - Pass around RecordDataImpl instead of the concrete RecordData so that any SmallVector can be used. - Move ASTDeclWriter::WriteCXXDefinitionData to ASTWriter::AddCXXDefinitionData. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
1d6107c30194f10cb2c634e9d8f8740d660b1644 |
|
02-Sep-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Avoid implicit string construction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
4153a060f4cd03e9db1349328a158e9d898a2610 |
|
25-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
AST writer support for having specializations of templates from earlier in the chain. This ought to finish C++ chained PCH support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
1d1e42b17da6a53391d50b08068ecde04311e368 |
|
24-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Write visible update blocks. No regressions in normal PCH functionality, but no tests for the chain yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
eb3f04e60fa17dba27344ed89fd1b9134bb6839c |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Refactoring; move the functionality of ASTWriter::GetOrCreateTypeID to the more generic MakeTypeID template function which accepts a type and a function object that returns a TypeIdx. MakeTypeID is in PCHCommon.h so that it can be used by ASTReader too. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
7fb35182f43392cea4517c203bbabb22364a19fc |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce ASTWriter::GetOrCreateTypeID and move most of the functionality of AddTypeRef there. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
26fca90786af17f97e1a5ecc310d4bf39b831595 |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
A bit of refactoring; Introduce ASTWriter::GetOrCreateTypeIdx and move the emission of types there. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
01b81c4d074bba9c18372d521405dfe32fc4f552 |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Rename TypeIDs -> TypeIdxs. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.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/ASTWriter.h
|
571db7f0cb31789737be92fce1c1b738e6dbe795 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename various classes from PCH to AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
c43b54cbc10654ed59de797898042e1a05265246 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHReader to ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|
7faa2ec03a7ef120ac165bb45b6c70a8b20c9f1c |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHWriter.h to ASTWriter.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/include/clang/Serialization/ASTWriter.h
|