#
6736e199 |
| 30-Aug-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[Modules] Add 'gnuinlineasm' to the 'requires-declaration' feature-list.
This adds support for modules that require (no-)gnu-inline-asm environment, such as the compiler builtin cpuid submodule.
Th
[Modules] Add 'gnuinlineasm' to the 'requires-declaration' feature-list.
This adds support for modules that require (no-)gnu-inline-asm environment, such as the compiler builtin cpuid submodule.
This is the gnu-inline-asm variant of https://reviews.llvm.org/D23871
Differential Revision: https://reviews.llvm.org/D23905
rdar://problem/26931199
llvm-svn: 280159
show more ...
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1, llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
7f96b391 |
| 09-Mar-2016 |
Davide Italiano <davide@freebsd.org> |
[modules] Simplify code logic. NFC.
llvm-svn: 263060
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
#
6d25fdc4 |
| 11-Feb-2016 |
Ben Langmuir <blangmuir@apple.com> |
[Modules] Don't infinite recurse on implicit import of circular modules in preamble
Update the Preprocessor's VisibleModuleSet when typo-correction creates an implicit module import so that we won'
[Modules] Don't infinite recurse on implicit import of circular modules in preamble
Update the Preprocessor's VisibleModuleSet when typo-correction creates an implicit module import so that we won't accidentally write an invalid SourceLocation into the preamble AST. This would later lead to infinite recursion when loading the preamble AST because we use the value in ImportLocs to prevent visiting a module twice.
rdar://problem/24440990
llvm-svn: 260543
show more ...
|
Revision tags: llvmorg-3.8.0-rc2 |
|
#
cdae941e |
| 29-Jan-2016 |
Yaron Keren <yaron.keren@gmail.com> |
Annotate dump() methods with LLVM_DUMP_METHOD, addressing Richard Smith r259192 post commit comment.
llvm-svn: 259232
|
Revision tags: llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1 |
|
#
8a308ec2 |
| 05-Nov-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] If we're given a module file, via -fmodule-file=, for a module, but we can't load that file due to a configuration mismatch, and implicit module building is disabled, and the user turns off
[modules] If we're given a module file, via -fmodule-file=, for a module, but we can't load that file due to a configuration mismatch, and implicit module building is disabled, and the user turns off the error-by-default warning for that situation, then fall back to textual inclusion for the module rather than giving an error if any of its headers are included.
llvm-svn: 252114
show more ...
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4 |
|
#
7ff29148 |
| 13-Aug-2015 |
Ben Langmuir <blangmuir@apple.com> |
[Modules] Add Darwin-specific compatibility module map parsing hacks
This preserves backwards compatibility for two hacks in the Darwin system module map files:
1. The use of 'requires excluded' to
[Modules] Add Darwin-specific compatibility module map parsing hacks
This preserves backwards compatibility for two hacks in the Darwin system module map files:
1. The use of 'requires excluded' to make headers non-modular, which should really be mapped to 'textual' now that we have this feature.
2. Silently removes a bogus cplusplus requirement from IOKit.avc.
Once we start diagnosing missing requirements and headers on auto-imports these would have broken compatibility with existing Darwin SDKs.
llvm-svn: 244912
show more ...
|
Revision tags: llvmorg-3.7.0-rc2 |
|
#
3c5038a5 |
| 30-Jul-2015 |
Ulrich Weigand <ulrich.weigand@de.ibm.com> |
Add support for System z vector language extensions
The z13 vector facility has an associated language extension, closely modeled on AltiVec/VSX. The main differences are:
- vector long, vector fl
Add support for System z vector language extensions
The z13 vector facility has an associated language extension, closely modeled on AltiVec/VSX. The main differences are:
- vector long, vector float and vector pixel are not supported
- vector long long and vector double are supported (like VSX)
- comparison operators return a vector rather than a scalar integer
- shift operators behave like the OpenCL shift operators
- vector bool is only supported as argument to certain operators; some operators allow mixing a bool with a non-bool vector
This patch adds clang support for the extension. It is closely modelled on the AltiVec support. Similarly to the -faltivec option, there's a new -fzvector option to enable the extensions (as well as an -mzvector alias for compatibility with GCC). There's also a separate LangOpt.
The extension as implemented here is intended to be compatible with the -mzvector extension recently implemented by GCC.
Based on a patch by Richard Sandiford.
Differential Revision: http://reviews.llvm.org/D11001
llvm-svn: 243642
show more ...
|
Revision tags: llvmorg-3.7.0-rc1 |
|
#
75a7e435 |
| 13-Jul-2015 |
Ben Langmuir <blangmuir@apple.com> |
[Modules] Allow missing header before a missing requirement
And make the module unavailable without breaking any parent modules.
If there's a missing requirement after we've already seen a missing
[Modules] Allow missing header before a missing requirement
And make the module unavailable without breaking any parent modules.
If there's a missing requirement after we've already seen a missing header, still update the IsMissingRequiement bit correctly. Also, diagnose missing requirements before missing headers, since the existence of the header is moot if there are missing requirements.
llvm-svn: 242055
show more ...
|
#
15bcf70c |
| 30-Jun-2015 |
Adrian Prantl <aprantl@apple.com> |
Add a function to ExternalASTSource that returns a descriptor that abstracts the commonalities between modules and PCH files that are needed to emit debug info for a module or precompiled header.
ll
Add a function to ExternalASTSource that returns a descriptor that abstracts the commonalities between modules and PCH files that are needed to emit debug info for a module or precompiled header.
llvm-svn: 241083
show more ...
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
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 ...
|
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 ...
|
#
8f4d3ff1 |
| 26-Mar-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Restrict the module use-declaration to only appear in top-level modules, and allow sub-modules of a module with a use-declaration to make use of the nominated modules.
llvm-svn: 233323
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3 |
|
#
532d2104 |
| 02-Feb-2015 |
Ben Langmuir <blangmuir@apple.com> |
Add cc1 option '-fmodule-feature' to add custom values for 'requires' decls
This allows clang-based tools to specify custom features that can be tested by the 'requires' declaration in a module map
Add cc1 option '-fmodule-feature' to add custom values for 'requires' decls
This allows clang-based tools to specify custom features that can be tested by the 'requires' declaration in a module map file.
llvm-svn: 227868
show more ...
|
Revision tags: llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1 |
|
#
7615f00e |
| 13-Jan-2015 |
Ben Langmuir <blangmuir@apple.com> |
Handle [extern_c] attribute in module printer
I'm not sure why we have OS.indent(Indent+2) for the system attribute, but presumably we want the same behaviour for all attributes...
llvm-svn: 225802
|
Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
3c1a41ad |
| 02-Dec-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Track how 'header' directives were written in module map files, rather than trying to extract this information from the FileEntry after the fact.
This has a number of beneficial effects. F
[modules] Track how 'header' directives were written in module map files, rather than trying to extract this information from the FileEntry after the fact.
This has a number of beneficial effects. For instance, diagnostic messages for failed module builds give a path relative to the "module root" rather than an absolute file path, and the contents of the module includes file is no longer dependent on what files the including TU happened to inspect prior to triggering the module build.
llvm-svn: 223095
show more ...
|
#
306d8920 |
| 22-Oct-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Add support for 'textual header' directives.
This allows a module to specify that it logically contains a file, but that said file is non-modular and intended for textual inclusion. This a
[modules] Add support for 'textual header' directives.
This allows a module to specify that it logically contains a file, but that said file is non-modular and intended for textual inclusion. This allows layering checks to work properly in the presence of such files.
llvm-svn: 220448
show more ...
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3 |
|
#
9d6448b1 |
| 09-Aug-2014 |
Ben Langmuir <blangmuir@apple.com> |
Refactor the module map file used for uniquing a module name out of
class Module. It's almost always going to be the same as getContainingModule() for top-level modules, so just add a map to cover t
Refactor the module map file used for uniquing a module name out of
class Module. It's almost always going to be the same as getContainingModule() for top-level modules, so just add a map to cover the remaining cases. This lets us do less bookkeeping to keep the ModuleMap fields up to date.
llvm-svn: 215268
show more ...
|
Revision tags: llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1, llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
f1186c5a |
| 08-May-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] Use 'nullptr'.
llvm-svn: 208280
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
ffbafa2a |
| 23-Apr-2014 |
Ben Langmuir <blangmuir@apple.com> |
Do not print inferred submodules explicitly in __inferred_module.map
Otherwise including a header in your source file that is not included by framework's umbrella header will silently add an empty s
Do not print inferred submodules explicitly in __inferred_module.map
Otherwise including a header in your source file that is not included by framework's umbrella header will silently add an empty submodule with that name.
is automatically translated to @import Foo.NotInModule;
which then would have succeeded because the inferred module map contained an empty submodule called NotInModule.
llvm-svn: 207024
show more ...
|
#
86dbed75 |
| 21-Apr-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Initialize clang::Module::IsMissingRequirement. Fix msan issue and hopefully some builder failures.
llvm-svn: 206736
|
#
993055f8 |
| 18-Apr-2014 |
Ben Langmuir <blangmuir@apple.com> |
Fix a hole with nested unavailable submodules from r206664
If a module doesn't meet a requirement, neither do its submodules. If we don't propogate that, we might think it's an error to be missing a
Fix a hole with nested unavailable submodules from r206664
If a module doesn't meet a requirement, neither do its submodules. If we don't propogate that, we might think it's an error to be missing a header in one of those submodules.
llvm-svn: 206673
show more ...
|
#
ec8c9752 |
| 18-Apr-2014 |
Ben Langmuir <blangmuir@apple.com> |
Don't build modules with (submodules with) missing headers
Unless they are in submodules that aren't available anyway, due to requirements not being met. Also, mark children as unavailable when the
Don't build modules with (submodules with) missing headers
Unless they are in submodules that aren't available anyway, due to requirements not being met. Also, mark children as unavailable when the parent is.
llvm-svn: 206664
show more ...
|
#
62bcd925 |
| 18-Apr-2014 |
Dmitri Gribenko <gribozavr@gmail.com> |
Add more constness to module-related APIs
llvm-svn: 206595
|
#
beee15e7 |
| 14-Apr-2014 |
Ben Langmuir <blangmuir@apple.com> |
Allow multiple modules with the same name to coexist in the module cache
To differentiate between two modules with the same name, we will consider the path the module map file that they are defined
Allow multiple modules with the same name to coexist in the module cache
To differentiate between two modules with the same name, we will consider the path the module map file that they are defined by* part of the ‘key’ for looking up the precompiled module (pcm file). Specifically, this patch renames the precompiled module (pcm) files from cache-path/<module hash>/Foo.pcm to cache-path/<module hash>/Foo-<hash of module map path>.pcm
In addition, I’ve taught the ASTReader to re-resolve the names of imported modules during module loading so that if the header search context changes between when a module was originally built and when it is loaded we can rebuild it if necessary. For example, if module A imports module B
first time: clang -I /path/to/A -I /path/to/B ...
second time: clang -I /path/to/A -I /different/path/to/B ...
will now rebuild A as expected.
* in the case of inferred modules, we use the module map file that allowed the inference, not the __inferred_module.map file, since the inferred file path is the same for every inferred module.
llvm-svn: 206201
show more ...
|
Revision tags: llvmorg-3.4.1-rc1 |
|
#
9bca298f |
| 08-Mar-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Module [extern_c] attribute: inherit to submodules, don't write 'extern "C"' blocks when building in C mode, and serialize and deserialize the attribute.
llvm-svn: 203317
|