#
588c9372 |
| 19-Feb-2014 |
Reid Kleckner <reid@kleckner.net> |
Use llvm::DeleteContainerSeconds when possible
llvm-svn: 201739
|
#
090610d3 |
| 19-Feb-2014 |
Ben Langmuir <blangmuir@apple.com> |
Initial implementation of virtual file system
This adds the minimum virtual file system support to start migrating FileManager onto the VFS.
Originally discussed here: http://lists.cs.uiuc.edu/pipe
Initial implementation of virtual file system
This adds the minimum virtual file system support to start migrating FileManager onto the VFS.
Originally discussed here: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-February/035188.html
Differential Revision: http://llvm-reviews.chandlerc.com/D2745
llvm-svn: 201618
show more ...
|
#
d90ec571 |
| 12-Feb-2014 |
Daniel Jasper <djasper@google.com> |
Fix memory leak introduced by r201010.
llvm-svn: 201220
|
#
b41e7e2c |
| 10-Feb-2014 |
Dmitri Gribenko <gribozavr@gmail.com> |
ASTUnit: simplify remapping files by using the exact same logic in Preprocessor
llvm-svn: 201082
|
#
c444b577 |
| 08-Feb-2014 |
Dmitri Gribenko <gribozavr@gmail.com> |
ASTUnit: remove dead code in remapping files
ASTUnit contains code to remap files to other files on disk. This code is not used. We only remap files to MemoryBuffers.
llvm-svn: 201010
|
#
2febd212 |
| 07-Feb-2014 |
Dmitri Gribenko <gribozavr@gmail.com> |
ASTUnit: ArrayRef'ize RemappedFiles
llvm-svn: 200975
|
#
c50b4bfc |
| 03-Feb-2014 |
Reid Kleckner <reid@kleckner.net> |
Fix a -Wformat warning in ASTUnit.cpp
llvm::sys::cas_flag is 'long' instead of 'uint32_t' on win32, because that's what InterlockedIncrement is defined to accept.
I still don't know if we should be
Fix a -Wformat warning in ASTUnit.cpp
llvm::sys::cas_flag is 'long' instead of 'uint32_t' on win32, because that's what InterlockedIncrement is defined to accept.
I still don't know if we should be calling fprintf from ASTUnit.cpp behind a getenv check.
llvm-svn: 200718
show more ...
|
#
2a008784 |
| 10-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use the simpler version of llvm::sys::fs::remove when possible.
llvm-svn: 198957
|
Revision tags: llvmorg-3.4.0 |
|
#
556b3d69 |
| 20-Dec-2013 |
Alp Toker <alp@nuanti.com> |
Remove obsolete preamble FIXME
The MD5 is checked since r197755 which is as good as comparing buffer contents in this context.
llvm-svn: 197842
|
#
3ec8ee72 |
| 20-Dec-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Correctly compute the size in bytes of PreambleFileHash.MD5
llvm-svn: 197762
|
#
4765252d |
| 20-Dec-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
ASTUnit::getMainBufferWithPrecompiledPreamble: use MD5 hash of the remapped files to tell if they were changed since the last time we have computed the preamble
We used to check only the buffer size
ASTUnit::getMainBufferWithPrecompiledPreamble: use MD5 hash of the remapped files to tell if they were changed since the last time we have computed the preamble
We used to check only the buffer size, so if the new remapped buffer has the same size as the previous one, we would think that the buffer did not change, and we did not rebuild the preambule, which sometimes caused us to crash.
llvm-svn: 197755
show more ...
|
#
40798d30 |
| 19-Dec-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Simplify code
llvm-svn: 197748
|
Revision tags: llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2 |
|
#
b159c13d |
| 22-Nov-2013 |
Alp Toker <alp@nuanti.com> |
Make ASTUnit structure stable with NDEBUG
ASTUnit instances are allocated infrequently so it's fine to keep this field around in all build configurations.
Assigns null to silence -Wunused-private-f
Make ASTUnit structure stable with NDEBUG
ASTUnit instances are allocated infrequently so it's fine to keep this field around in all build configurations.
Assigns null to silence -Wunused-private-field in Release.
llvm-svn: 195419
show more ...
|
Revision tags: llvmorg-3.4.0-rc1 |
|
#
1f76c4e8 |
| 24-Oct-2013 |
Manuel Klimek <klimek@google.com> |
Use the same SourceManager for ModuleMaps and compilations.
This allows using virtual file mappings on the original SourceManager to map in virtual module.map files. Without this patch, the ModuleMa
Use the same SourceManager for ModuleMaps and compilations.
This allows using virtual file mappings on the original SourceManager to map in virtual module.map files. Without this patch, the ModuleMap search will find a module.map file (as the FileEntry exists in the FileManager), but will be unable to get the content from the SourceManager (as ModuleMap previously created its own SourceManager).
Two problems needed to be fixed which this patch exposed:
1. Storing the inferred module map When writing out a module, the ASTWriter stores the names of the files in the main source manager; when loading the AST again, the ASTReader errs out if such a file is found missing, unless it is overridden. Previously CompilerInstance's compileModule method would store the inferred module map to a temporary file; the problem with this approach is that now that the module map is handled by the main source manager, the ASTWriter stores the name of the temporary module map as source to the compilation; later, when the module is loaded, the temporary file has already been deleted, which leads to a compilation error. This patch changes the inferred module map to instead inject a virtual file into the source manager. This both saves some disk IO, and works with how the ASTWriter/ASTReader handle overridden source files.
2. Changing test input in test/Modules/Inputs/* Now that the module map file is handled by the main source manager, the VerifyDiagnosticConsumer will not ignore diagnostics created while parsing the module map file. The module test test/Modules/renamed.m uses -I test/Modules/Inputs and triggers recursive loading of all module maps in test/Modules/Inputs, some of which had conflicting names, thus leading errors while parsing the module maps. Those diagnostics already occur on trunk, but before this patch they would not break the test, as they were ignored by the VerifyDiagnosticConsumer. This patch thus changes the module maps that have been recently introduced which broke the invariant of compatible modules maps in test/Modules/Inputs.
llvm-svn: 193314
show more ...
|
#
ca5c7be0 |
| 15-Oct-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] For an unscoped enum include the enumerators in the top-level code-completion hash since they enter the top-level namespace.
rdar://14703327
llvm-svn: 192720
|
#
0a4e61f8 |
| 13-Sep-2013 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary inclusion of Sema.h
Let me tell you a tale...
Within some twisted maze of debug info I've ended up implementing an insane man's Include What You Use device. When the debugger emi
Remove unnecessary inclusion of Sema.h
Let me tell you a tale...
Within some twisted maze of debug info I've ended up implementing an insane man's Include What You Use device. When the debugger emits debug info it really shouldn't, I find out why & then realize the code could be improved too.
In this instance CIndexDiagnostics.cpp had a lot more debug info with Clang than GCC. Upon inspection a major culprit was all the debug info describing clang::Sema. This was emitted because clang::Sema is befriended by DiagnosticEngine which was rightly required, but GCC doesn't emit debug info for friends so it never emitted anything for Clang. Clang does emit debug info for friends (will be fixed/changed to reduce debug info size).
But why didn't Clang just emit a declaration of Sema if this entire TU didn't require a definition?
1) Diagnostic.h did the right thing, only using a declaration of Sema and not including Sema.h at all. 2) Some other dependency of CIndexDiagnostics.cpp didn't do the right thing. ASTUnit.h, only needing a declaration, still included Sema.h (hence this commit which removes that include and adds the necessary includes to the cpp files that were relying on this) 3) -flimit-debug-info didn't save us because of EnterExpressionEvaluationContext, defined inline in Sema.h which fires the "requiresCompleteType" check/flag (since it uses nested types from Sema and calls Sema member functions) and thus, if debug info is ever emitted for the type, the whole type is emitted and not just a declaration.
Improving -flimit-debug-info to account for this would be... hard. Modifying the code so that's not 'required to be complete' might be possible, but probably only by moving EnterExpressionEvaluationContext either into Sema, or out of Sema.h. That might be a bit too much of a contortion to be bothered with.
Also, this is only one of the cases where emitting debug info for friends caused us to emit a lot more debug info (this change reduces Clang's DWO size by 0.93%, dropping friends entirely reduces debug info by 3.2%) - I haven't hunted down the other cases, but I assume they might be similar (Sema or something like it). IWYU or a similar tool might help us reduce build times a bit, but analyzing debug info to find these differences isn't worthwhile. I'll take the 3.2% win, provide this small improvement to the code itself, and move on.
llvm-svn: 190715
show more ...
|
#
45025c0c |
| 24-Aug-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
This wasn't headers, just missing namespaces.
/me bows head in shame.
llvm-svn: 189172
|
#
e3e855bb |
| 24-Aug-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace compLocDecl with less_first.
llvm-svn: 189170
|
#
acfbbd77 |
| 07-Aug-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Fix a PCH serialization crash, with invalid code related to forward enum references.
The problem was that an enum without closing semicolon could be associated as a forward enum in an erroneou
[PCH] Fix a PCH serialization crash, with invalid code related to forward enum references.
The problem was that an enum without closing semicolon could be associated as a forward enum in an erroneous declaration, leading to the identifier being associated with the enum decl but without a declaration actually referencing it. This resulted in not having it serialized before serializing the identifier that is associated with.
Also prevent the ASTUnit from querying the serialized DeclID for an invalid top-level decl; it may not have been serialized.
rdar://14539667
llvm-svn: 187914
show more ...
|
#
073ff101 |
| 29-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Update for llvm api change.
llvm-svn: 187379
|
#
e4777f46 |
| 29-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert a use of stat with sys::fs::status.
llvm-svn: 187364
|
#
be0474c0 |
| 18-Jul-2013 |
Manuel Klimek <klimek@google.com> |
Fix crash in libclang if code completion is used with unknown flags.
Use CaptureDroppedDiagnostics to make sure that there is a diagnostic client installed when warning flags are parsed.
llvm-svn:
Fix crash in libclang if code completion is used with unknown flags.
Use CaptureDroppedDiagnostics to make sure that there is a diagnostic client installed when warning flags are parsed.
llvm-svn: 186582
show more ...
|
Revision tags: llvmorg-3.3.1-rc1 |
|
#
18627115 |
| 05-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use llvm::sys::fs::createUniqueFile.
Include a test that clang now produces output files with permissions matching the umask.
llvm-svn: 185727
|
#
a36e78ef |
| 05-Jul-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use llvm::sys::fs::createTemporaryFile.
llvm-svn: 185717
|
#
f5e5bc47 |
| 26-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't use PathV1.h in ASTUnit.cpp.
llvm-svn: 184912
|