21efbb606fe905b0f5a479b7b3e6d79023cb82ee |
|
13-Aug-2012 |
Douglas Gregor <dgregor@apple.com> |
When the header file search resolves a quoted include to a file in the current directory, propagate the framework and in-index-header-map from the including header's information down to the included header's information. Fixes <rdar://problem/11261291>. As with everything header-map related, we can't really test this in isolation within Clang, so it's tested elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161759 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
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/lib/Lex/HeaderSearch.cpp
|
853519cd45716c0a0923a7b65ce7aca63cb4dae4 |
|
20-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: * Escaped # and < characters in Doxygen comments as needed; * Removed a Doxygen comment in HeaderSearch.cpp that was redundant with the corresponding comment in the header file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
4ef2f6a95146423a1947b98458cc95c00a8b3ebd |
|
13-Jun-2012 |
Richard Trieu <rtrieu@google.com> |
Rename a loop variable to silence a gcc warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
f122a138e39dbb29162abfa9a3d44091d8efa7af |
|
13-Jun-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add -isystem-prefix and -ino-system-prefix arguments, which can be used to override whether headers are system headers by checking for prefixes of the header name specified in the #include directive. This allows warnings to be disabled for third-party code which is found in specific subdirectories of include paths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
85ff9693b178658f9d8af7be30a086fb1ab81fdd |
|
05-Apr-2012 |
Daniel Dunbar <daniel@zuster.org> |
[Lex] Add support for 'user specified system frameworks' (see test case). - Developers of system frameworks need a way for their framework to be treated as a "system framework" during development. Otherwise, they are unable to properly test how their framework behaves when installed because of the semantic changes (in warning behavior) applied to system frameworks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
9ee35f9f35452dec05c81fd1bbdd2f700872ea7f |
|
05-Apr-2012 |
Daniel Dunbar <daniel@zuster.org> |
[Lex] HeaderSearch: Introduce a FrameworkCacheEntry structure to hold the FrameworkMap items. - No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
f535a985ca53168d3e3fd38bdbef2677c01f2ef4 |
|
05-Apr-2012 |
Daniel Dunbar <daniel@zuster.org> |
Simplify. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
f7ccbad5d9949e7ddd1cbef43d482553b811e026 |
|
05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import SmallString<> into clang namespace (I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
dc58aa71026cce539ca9b5c2c52cc4efc7bd77fe |
|
30-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Thread a TargetInfo through to the module map; we'll need it for target-specific module requirements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
c5b2e58840748145d1706c1d1481369d1863fabf |
|
29-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement code completion support for module import declarations, e.g., @import <complete with module names here> or @import std.<complete with submodule names here> Addresses <rdar://problem/10710117>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
e434ec71fccfe078906403affd641f709702d598 |
|
29-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Rework HeaderSearch's interface for getting a module from a name and for getting the name of the module file, unifying the code for searching for a module with a given name (into lookupModule()) and separating out the mapping to a module file (into getModuleFileName()). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149197 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
a1f1fad8b60e1cb9d21a40a37f2e03150bcbeb6f |
|
27-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce module attributes into the module map grammar, along with a single attribute ("system") that allows us to mark a module as being a "system" module. Each of the headers that makes up a system module is considered to be a system header, so that we (for example) suppress warnings there. If a module is being inferred for a framework, and that framework directory is within a system frameworks directory, infer it as a system framework. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
7530c034c0c71a64c5a9173206d9742ae847af8b |
|
17-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
a8c6fea0234bc23de6106a84646dc049cf45e8c8 |
|
13-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
When inferring a module for a framework, first determine whether that framework is actually a subframework within a top-level framework. If so, only infer a module for the top-level framework and then dig out the appropriate submodule. This helps us cope with an amusing subframeworks anti-pattern, where one uses -F <framework>/Frameworks to get direct include access to the subframeworks of a framework (which otherwise would not be permitted). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148148 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
51f564f80d9f71e175635b452ffeeeff899e9bf1 |
|
31-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for module requirements, which indicate the language features needed for a particular module to be available. This allows mixed-language modules, where certain headers only work under some language variants (e.g., in C++, std.tuple might only be available in C++11 mode). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
efda0e8705e79a4b7de9f18b0d4618515f9e4bcc |
|
09-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When performing subframework header lookup, don't search for ".framework/" in the path name, because it could be ".framework\" on Windows. This whole function needs to be rewritten with PathV2. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
cb381eac84e5a14a8c7e7654eadbe1d3d54d795c |
|
09-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move a free function from the Frontend library into the Lex library as part of HeaderSearch. This function just normalizes filenames for use inside of a synthetic include directive, but it is used in both the Frontend and Serialization libraries so it needs a common home. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
5e3f9223db88227d6d21679c613b139d8160186d |
|
08-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Keep track of import dependencies between submodules within the module that's currently being built. This is important for supporting transitive dependencies ("export *" in the module map) completely. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
4813442c124d13a5c9cbf71beb7762275e45aacd |
|
07-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Make sure we pick up module_private.map when loading a module.map file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
587986efc5ca409da3ebf0a4ab7f72ebf50a3ab9 |
|
07-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement basic support for private headers in frameworks. In essence, when we load a module map (module.map) from a directory, also load a private module map (module_private.map) for that directory, if present. That private module map can inject a new submodule that captures private headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
ac252a3b0f8101a7274309e4a5cf2d5f0fdba675 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When inferring a module map for a framework, infer subframework modules for each of its subframeworks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
09833925a3ac68065565e9556d06e9576ec6eaa9 |
|
06-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When suggesting a module import for a #include or #import, suggest the most specific (sub)module based on the actual file we find, rather than always importing the top-level module. This means that #include'ing <Foo/Blah.h> should give us the submodule Foo.Blah. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
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/lib/Lex/HeaderSearch.cpp
|
a4d36a6dd00c1495cfe3b64f949d70ba9f778391 |
|
29-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When attempting to load a module that is not in the module cache, return the module itself (in the module map) rather than returning the umbrella header used to build the module. While doing this, make sure that we're inferring modules for frameworks to build that module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145310 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
1c2e9332fa69727425a3a2b912e36e2ab62083f8 |
|
20-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Allow preprocessor callbacks to recover from a "file not found" error, from Jason Haslam! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
c69c42e939e6bdaa56d162cc36da4f6b6c53e8db |
|
17-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When making a suggestion regarding which module to load rather than preprocess/parse a header, report back with an actual module (which may be a submodule) rather than just the name of the module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
2821c7f8870629b56b9c41e1c50c7a091edd544d |
|
17-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When we're loading a framework header, first try to turn the framework into a module. This module can either be loaded from a module map in the framework directory (which isn't quite working yet) or inferred from an umbrella header (which does work, and replaces the existing hack). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144877 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
db1cde7dc7bb3aaf48118bd9605192ab94a93635 |
|
16-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Add support for building a module from a module map to the -cc1 interface. This is currently limited to modules with umbrella headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
26697979fb0a4e2b720a0c8d062047edca92bc92 |
|
12-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement a minor optimization when loading module maps to satisfy a module import: don't re-check for a loaded module unless we've actually loaded a new module map file. Already-loaded module map files aren't interesting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
cf70d7873fe3098bdac72e7628f4e832d14d5143 |
|
12-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When searching for a module, speculatively load module maps to see if the module is described in one of the module maps in a search path or in a subdirectory off the search path that has the same name as the module we're looking for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
484535e45b4d301847a157e943c7823da5d40884 |
|
12-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the search for modules to consider modules described by a module map, so long as they have an umbrella header. This makes it possible to introduce a module map + umbrella header for a given set of headers, to turn it into a module. There are two major deficiencies here: first, we don't go hunting for module map files when we just see a module import (so we won't know about the modules described therein). Second, we don't yet have a way to build modules that don't have umbrella headers, or have incomplete umbrella headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144424 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
65f3b5e99009f49d51eb00a859dbd2c2ee660718 |
|
11-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Wire up the mapping from header files mentioned in module maps over to the corresponding (top-level) modules. This isn't actually useful yet, because we don't yet have a way to build modules out of module maps. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
a30cfe5026b12c28b7b575b48176e0a3543ce939 |
|
11-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce basic support for parsing module map files. Module map files provide a way to map between headers and modules, so that we can layer a module system on top of existing headers without changing those headers at all. This commit introduces the module map file parser and the module map that it generates, and wires up the module map file parser so that we'll automatically find module map files as part of header search. Note that we don't yet use the information stored in the module map. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
8e23806863721495f9e1f84aed614f7afba774a3 |
|
11-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
I predict that HeaderSearch will need the ability to generate diagnostics in the future. Make it so. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
8f8d581f76da8a6bf9de45746f908b970f09ee1b |
|
17-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
When we load header file information from the external source (i.e., the AST reader), merge that header file information with whatever header file information we already have. Otherwise, we might forget something we already knew (e.g., that the header was #import'd already). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139979 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
0fd787bb8529ace1cb7af592193ba22d0bab2d36 |
|
16-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Tweak the module auto-import heuristics a bit git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
fba18aa8f2cd1994dc65e8cb9f4be201c560dc0b |
|
16-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Add an experimental flag -fauto-module-import that automatically turns #include or #import direcctives of framework headers into module imports of the corresponding framework module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
6e975c4517958bcc11c834336d340797356058db |
|
14-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
For modules, use a hash of the compiler version, language options, and target triple to separate modules built under different conditions. The hash is used to create a subdirectory in the module cache path where other invocations of the compiler (with the same version, language options, etc.) can find the precompiled modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139662 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
21cae2059a06f7d89eee169409c9266def1b1aca |
|
13-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
When an import statement fails to find a module in the module cache, but there is a corresponding umbrella header in a framework, build the module on-the-fly so it can be immediately loaded at the import statement. This is very much proof-of-concept code, with details to be fleshed out over time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
9a6da6930644b4f2dbe4885b0eb4fc1274ff56a4 |
|
12-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a cc1-level option to provide the path to the module cache, where the compiler will look for module files. Eliminates the egregious hack where we looked into the header search paths for modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139538 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
2c7b7803182d1796225bf420d17b216bd81f75b0 |
|
30-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use the "Bar.h" -> <Foo/Bar.h> remapping for index header maps only as a fallback, if normal header search fails. Another attempt at <rdar://problem/9824020>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
65e02fa80e1c185f18e5f81cefc30d75383a7301 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the "-index-header-map" option, to give special semantics for quoted header lookup when dealing with not-yet-installed frameworks. Fixes <rdar://problem/9824020>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
eabea45e23abc07e917f0d4bce15054ce75623ef |
|
27-Jul-2011 |
Ted Kremenek <kremenek@apple.com> |
Change HeaderSearch::getTotalMemory() to use llvm::capacity_in_bytes(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
d1194fbbf65374bfa3578eb40a547e4f97b497d1 |
|
27-Jul-2011 |
Ted Kremenek <kremenek@apple.com> |
clang_getCXTUResourceUsage: report memory used by HeaderSearch. This required converting the StringMaps to use a BumpPtrAllocator. I measured the compile time and saw no observable regression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
5f9e272e632e951b1efe824cd16acb4d96077930 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
a6e023c4491a8a8116c11783f4e81c7bd172f88d |
|
08-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Fix up dependency file name printing to more closely match that of gcc, including fixing a nasty recent regression that could make us print "/foo.h" with a command-line including "-I ./". rdar://problem/9734352 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134728 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
74a5fd8bcc68b540b58f6fcd2d80e6e926966e71 |
|
24-May-2011 |
Nico Weber <nicolasweber@gmx.de> |
Make it possible for external tools to distinguish between paths that come from -I and paths that come from -system. Patch from Paul Holden! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131955 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
dd3e5549e3c11e217078938aacf72f042eea5343 |
|
04-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new libclang API, clang_isFileMultipleIncludeGuarded(), which determines whether a particular file is actually a header that is intended to be guarded from multiple inclusions within the same translation unit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
520a99f0d9b506e4dd2161495fa12ef02608fef7 |
|
29-Apr-2011 |
Douglas Gregor <dgregor@apple.com> |
Use DirectoryLookup::getName() rather than getDir()->getName() in a context where we don't know whether we have a normal directory git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
7412494982c8b50c90961302c3a718633b2c3ab7 |
|
26-Apr-2011 |
Manuel Klimek <klimek@google.com> |
To be able to replay compilations we need to accurately remodel how includes get resolved, especially when they are found relatively to another include file. We also try to get it working for framework includes, but that part of the code is untested, as I don't have a code base that uses it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
3cd0128ce49abe658d1858c541e836e57959e04a |
|
16-Mar-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Having FileManager::getFile always open the file, brought much consternation and leaking of file descriptors. Add 'openFile' bool to FileManager::getFile to specify whether we want to have the file opened or not, have it false by default, and enable it only in HeaderSearch.cpp where the open+fstat optimization matters. Fixes rdar://9139899. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127748 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
b5142bb7af5c70fffd09f05172a1379a35a9c29a |
|
16-Mar-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add a 'RawPath' parameter to the PPCallbacks interface. This allows clients to observe the exact path through which an #included file was located. This is very useful when trying to record and replay inclusion operations without it beind influenced by the aggressive caching done inside the FileManager to avoid redundant system calls and filesystem operations. The work to compute and return this is only done in the presence of callbacks, so it should have no effect on normal compilation. Patch by Manuel Klimek. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
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/lib/Lex/HeaderSearch.cpp
|
32bef4edba854303800b3b01cb49a282e5da4f69 |
|
10-Jan-2011 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Replace all uses of PathV1::exists with PathV2::fs::exists. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
256053b31e697fdf0cc48f17d621c82fc3b8dff0 |
|
17-Dec-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Replace all uses of PathV1::isAbsolute with PathV2::is_{absolute,relative}. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
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/lib/Lex/HeaderSearch.cpp
|
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/lib/Lex/HeaderSearch.cpp
|
6538227d51df249b07c8ab80ae376f5c1d14403c |
|
21-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
remove old compatibility APIs, use StringRef versions instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119935 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
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/lib/Lex/HeaderSearch.cpp
|
10fe93d57c11f068aa4d78eb4ca7f60329818306 |
|
08-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r110440, the fix for PR4897. Chris claims to have a better way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
91db30ad4a7bad37b57748c31f8b592b7bf7cbeb |
|
06-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix the #include search path when reading from stdin, from Jon Simons! Fixes PR4897. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
a139481e62fdb209d9d87a54a5733f989d2e8d51 |
|
10-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
stringref'ize a bunch of filename handling logic. Much nicer than passing around two const char*'s. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
b1526f311f124dafc03a8e44d3bd8785fd10e267 |
|
15-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
use the new Path::isAbsolute function, fixing a fixme. Patch by Gregory Curfman! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
8c5a760b82e73ed90b560090772db97e2ae27b09 |
|
26-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Lazily load the controlling macros for all of the headers known in the PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes us from reading 503 identifiers down to 37 and from 470 macros down to 4. It also results in an 8% performance improvement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
83d63c78810556d26b62ac4cbae2eda6cdd2570c |
|
24-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add PCH support for #import. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
3daed52a57d03765223021f5f921bdc280c8f3cc |
|
02-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
improve compatibility with GCC 4.4, patch by Michel Salim (PR3697) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|
bda0b626e74513950405c27525af87e214e605e2 |
|
16-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
Make a major restructuring of the clang tree: introduce a top-level lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Lex/HeaderSearch.cpp
|