#
fb2398d0 |
| 17-Jul-2015 |
Adrian Prantl <aprantl@apple.com> |
Make the clang module container format selectable from the command line. - introduces a new cc1 option -fmodule-format=[raw,obj] with 'raw' being the default - supports arbitrary module container f
Make the clang module container format selectable from the command line. - introduces a new cc1 option -fmodule-format=[raw,obj] with 'raw' being the default - supports arbitrary module container formats that libclang is agnostic to - adds the format to the module hash to avoid collisions - splits the old PCHContainerOperations into PCHContainerWriter and a PCHContainerReader.
Thanks to Richard Smith for reviewing this patch!
llvm-svn: 242499
show more ...
|
Revision tags: llvmorg-3.7.0-rc1 |
|
#
ce18a187 |
| 14-Jul-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Extend -ftime-report to give more information about time spent reading module files.
llvm-svn: 242094
|
#
5b816061 |
| 06-Jul-2015 |
Yaron Keren <yaron.keren@gmail.com> |
Replace some const std::string & with llvm::StringRef or std::string and std::move to avoid implicit std::string construction.
Patch by Eugene Kosov.
llvm-svn: 241433
|
#
40178c35 |
| 03-Jul-2015 |
Yaron Keren <yaron.keren@gmail.com> |
Revert r241330. It compiled with Visual C++ 2013 and gcc 4.9.1 (mingw) but now fails the bots.
llvm-svn: 241335
|
#
45267016 |
| 03-Jul-2015 |
Yaron Keren <yaron.keren@gmail.com> |
Replace some const std::string & with llvm::StringRef or std::string and std::move to avoid implicit std::string construction.
Patch by Eugene Kosov.
llvm-svn: 241330
|
#
d30f5ffd |
| 03-Jul-2015 |
Yaron Keren <yaron.keren@gmail.com> |
Revert r241319, investigating.
llvm-svn: 241321
|
#
25bb2e47 |
| 03-Jul-2015 |
Yaron Keren <yaron.keren@gmail.com> |
Replace some const std::string & with llvm::StringRef or std::string and std::move to avoid implicit std::string construction.
Part 1/2.
Patch by Eugene Kosov.
llvm-svn: 241319
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
bb165fb0 |
| 20-Jun-2015 |
Adrian Prantl <aprantl@apple.com> |
Introduce a PCHContainerOperations interface (NFC).
A PCHContainerOperations abstract interface provides operations for creating and unwrapping containers for serialized ASTs (precompiled headers an
Introduce a PCHContainerOperations interface (NFC).
A PCHContainerOperations abstract interface provides operations for creating and unwrapping containers for serialized ASTs (precompiled headers and clang modules). The default implementation is RawPCHContainerOperations, which uses a flat file for the output.
The main application for this interface will be an ObjectFilePCHContainerOperations implementation that uses LLVM to wrap the module in an ELF/Mach-O/COFF container to store debug info alongside the AST.
rdar://problem/20091852
llvm-svn: 240225
show more ...
|
#
3204b152 |
| 29-May-2015 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types
If the type isn't trivially moveable emplace can skip a potentially expensive move. It also saves a couple of charact
Replace push_back(Constructor(foo)) with emplace_back(foo) for non-trivial types
If the type isn't trivially moveable emplace can skip a potentially expensive move. It also saves a couple of characters.
Call sites were found with the ASTMatcher + some semi-automated cleanup.
memberCallExpr( argumentCountIs(1), callee(methodDecl(hasName("push_back"))), on(hasType(recordDecl(has(namedDecl(hasName("emplace_back")))))), hasArgument(0, bindTemporaryExpr( hasType(recordDecl(hasNonTrivialDestructor())), has(constructExpr()))), unless(isInTemplateInstantiation()))
No functional change intended.
llvm-svn: 238601
show more ...
|
#
bca31b73 |
| 18-May-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Move implicit creation of ImportDecls for #includes transformed into module imports from the frontend into Sema where it belongs.
llvm-svn: 237555
|
#
2b63d15f |
| 16-May-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Retain the name as written for umbrella headers and directories, rather than converting to an absolute path. No observable change expected, but this allows us to correctly compute the modul
[modules] Retain the name as written for umbrella headers and directories, rather than converting to an absolute path. No observable change expected, but this allows us to correctly compute the module for an umbrella header, which later changes will require.
llvm-svn: 237508
show more ...
|
#
42413141 |
| 15-May-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Add local submodule visibility support for declarations.
With this change, enabling -fmodules-local-submodule-visibility results in name visibility rules being applied to submodules of the
[modules] Add local submodule visibility support for declarations.
With this change, enabling -fmodules-local-submodule-visibility results in name visibility rules being applied to submodules of the current module in addition to imported modules (that is, names no longer "leak" between submodules of the same top-level module). This also makes it much safer to textually include a non-modular library into a module: each submodule that textually includes that library will get its own "copy" of that library, and so the library becomes visible no matter which including submodule you import.
llvm-svn: 237473
show more ...
|
Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
a7e2cc68 |
| 01-May-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Start moving the module visibility information off the Module itself.
It has no place there; it's not a property of the Module, and it makes restoring the visibility set when we leave a su
[modules] Start moving the module visibility information off the Module itself.
It has no place there; it's not a property of the Module, and it makes restoring the visibility set when we leave a submodule more difficult.
llvm-svn: 236300
show more ...
|
#
20e883e5 |
| 29-Apr-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Stop trying to fake up a linear MacroDirective history.
Modules builds fundamentally have a non-linear macro history. In the interest of better source fidelity, represent the macro definit
[modules] Stop trying to fake up a linear MacroDirective history.
Modules builds fundamentally have a non-linear macro history. In the interest of better source fidelity, represent the macro definition information faithfully: we have a linear macro directive history within each module, and at any point we have a unique "latest" local macro directive and a collection of visible imported directives. This also removes the attendent complexity of attempting to create a correct MacroDirective history (which we got wrong in the general case).
No functionality change intended.
llvm-svn: 236176
show more ...
|
#
2f16bc10 |
| 14-Apr-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use raw_pwrite_stream in clang.
This is a small improvement to -emit-pth and allows llvm to start requiring it.
llvm-svn: 234897
|
#
0aa128e2 |
| 10-Apr-2015 |
Reid Kleckner <reid@kleckner.net> |
[Frontend] Close open file handles before renaming output files
The placement of the 'delete' call that was removed in the unique_ptr migration in r234597 was not an accident. The raw_ostream has to
[Frontend] Close open file handles before renaming output files
The placement of the 'delete' call that was removed in the unique_ptr migration in r234597 was not an accident. The raw_ostream has to be destroyed before you do the rename on Windows, otherwise you get ERROR_ACCESS_DENIED. We can still use unique_ptr, we just need to do a manual reset().
Also, range-for-loop-ify this code.
llvm-svn: 234612
show more ...
|
#
c80a4066 |
| 10-Apr-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Return std::unique_ptr to avoid a release and recreate.
llvm-svn: 234598
|
#
269ec0f4 |
| 10-Apr-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use a std::unique_ptr to make it easier to see who owns the stream.
llvm-svn: 234597
|
#
ff8d943c |
| 28-Mar-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[Modules] Don't compute a modules cache path if we're not using modules!
Notably, this prevents us from doing *tons* of work to compute the modules hash, including trying to read a darwin specific p
[Modules] Don't compute a modules cache path if we're not using modules!
Notably, this prevents us from doing *tons* of work to compute the modules hash, including trying to read a darwin specific plist file off of the system. There is a lot that needs cleaning up below this layer too.
llvm-svn: 233462
show more ...
|
#
580dd296 |
| 24-Mar-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[Modules] Stop creating timestamps for the modules cache and trying to prune it when we have disabled implicit module generation and thus are not using any cached modules.
Also update a test of expl
[Modules] Stop creating timestamps for the modules cache and trying to prune it when we have disabled implicit module generation and thus are not using any cached modules.
Also update a test of explicitly generated modules to pass this CC1 flag correctly.
This fixes an issue where Clang was dropping files into the source tree while running its tests.
llvm-svn: 233117
show more ...
|
#
92e1b62d |
| 18-Mar-2015 |
Yaron Keren <yaron.keren@gmail.com> |
Remove many superfluous SmallString::str() calls.
Now that SmallString is a first-class citizen, most SmallString::str() calls are not required. This patch removes a whole bunch of them, yet there a
Remove many superfluous SmallString::str() calls.
Now that SmallString is a first-class citizen, most SmallString::str() calls are not required. This patch removes a whole bunch of them, yet there are lots more.
There are two use cases where str() is really needed: 1) To use one of StringRef member functions which is not available in SmallString. 2) To convert to std::string, as StringRef implicitly converts while SmallString do not. We may wish to change this, but it may introduce ambiguity.
llvm-svn: 232622
show more ...
|
#
7f330cdb |
| 18-Mar-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Make module files passed to a module build via -fmodule-file= available to consumers of that module.
Previously, such a file would only be available if the module happened to actually import somethi
Make module files passed to a module build via -fmodule-file= available to consumers of that module.
Previously, such a file would only be available if the module happened to actually import something from that module.
llvm-svn: 232583
show more ...
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
#
37bd29a5 |
| 28-Feb-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Give better diagnostics when -fmodule-file= finds a bad file: if the file is found indirectly, explain how we got there, and distinguish between 'file not found' and 'file found but invalid'.
llvm-s
Give better diagnostics when -fmodule-file= finds a bad file: if the file is found indirectly, explain how we got there, and distinguish between 'file not found' and 'file found but invalid'.
llvm-svn: 230839
show more ...
|
#
8cebe37f |
| 25-Feb-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Even if we already have a definition of a class, loading in another one can give us more lookup results (due to implicit special members). Be sure to complete the redecl chain for every kin
[modules] Even if we already have a definition of a class, loading in another one can give us more lookup results (due to implicit special members). Be sure to complete the redecl chain for every kind of DeclContext before performing a lookup into it, rather than only doing so for NamespaceDecls.
llvm-svn: 230558
show more ...
|
Revision tags: llvmorg-3.6.0 |
|
#
5638c114 |
| 25-Feb-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Fix a bug that would result in a build with P paths through a module graph with M modules to take O(P) time, not just O(M) time, when using explicit module builds.
llvm-svn: 230412
|