#
7aff2bb3 |
| 12-Dec-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[CrashReproducer] Collect PCH included via -include-pch
Collect the necessary input PCH files.
Do not try to validate the AST before copying it out because if the crash is in this path, we won't be
[CrashReproducer] Collect PCH included via -include-pch
Collect the necessary input PCH files.
Do not try to validate the AST before copying it out because if the crash is in this path, we won't be able to collect it. Instead only check if it's a file containg an AST.
rdar://problem/27913709
llvm-svn: 289460
show more ...
|
#
181225b8 |
| 11-Dec-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[CrashReproducer] Collect headermap files
Include headermaps (.hmap files) in the .cache directory and add VFS entries. All headermaps are known after HeaderSearch setup, collect them right after.
[CrashReproducer] Collect headermap files
Include headermaps (.hmap files) in the .cache directory and add VFS entries. All headermaps are known after HeaderSearch setup, collect them right after.
rdar://problem/27913709
llvm-svn: 289360
show more ...
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3 |
|
#
a114c46e |
| 06-Dec-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Revert r288626, which reverts r288449. Original commit message:
Recover better from an incompatible .pcm file being provided by -fmodule-file=. We try to include the headers of the module textually
Revert r288626, which reverts r288449. Original commit message:
Recover better from an incompatible .pcm file being provided by -fmodule-file=. We try to include the headers of the module textually in this case, still enforcing the modules semantic rules. In order to make that work, we need to still track that we're entering and leaving the module. Also, if the module was also marked as unavailable (perhaps because it was missing a file), we shouldn't mark the module unavailable -- we don't need the module to be complete if we're going to enter it textually.
llvm-svn: 288741
show more ...
|
#
ad3ba6be |
| 04-Dec-2016 |
Daniel Jasper <djasper@google.com> |
Revert "Recover better from an incompatible .pcm file being provided by -fmodule-file=. We try to include the headers of the module textually in this case, still enforcing the modules semantic rules.
Revert "Recover better from an incompatible .pcm file being provided by -fmodule-file=. We try to include the headers of the module textually in this case, still enforcing the modules semantic rules. In order to make that work, we need to still track that we're entering and leaving the module. Also, if the module was also marked as unavailable (perhaps because it was missing a file), we shouldn't mark the module unavailable -- we don't need the module to be complete if we're going to enter it textually."
This reverts commit r288449.
I believe that this is currently faulty wrt. modules being imported inside namespaces. Adding these lines to the new test:
namespace n { #include "foo.h" }
Makes it break with
fatal error: import of module 'M' appears within namespace 'n'
However, I believe it should fail with
error: redundant #include of module 'M' appears within namespace 'n'
I have tracked this down to us now inserting a tok::annot_module_begin instead of a tok::annot_module_include in Preprocessor::HandleIncludeDirective() and then later in Parser::parseMisplacedModuleImport(), we hit the code path for tok::annot_module_begin, which doesn't set FromInclude of checkModuleImportContext to true (thus leading to the "wrong" diagnostic).
llvm-svn: 288626
show more ...
|
Revision tags: llvmorg-3.9.1-rc2 |
|
#
444e6f3d |
| 02-Dec-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Recover better from an incompatible .pcm file being provided by -fmodule-file=. We try to include the headers of the module textually in this case, still enforcing the modules semantic rules. In orde
Recover better from an incompatible .pcm file being provided by -fmodule-file=. We try to include the headers of the module textually in this case, still enforcing the modules semantic rules. In order to make that work, we need to still track that we're entering and leaving the module. Also, if the module was also marked as unavailable (perhaps because it was missing a file), we shouldn't mark the module unavailable -- we don't need the module to be complete if we're going to enter it textually.
llvm-svn: 288449
show more ...
|
Revision tags: llvmorg-3.9.1-rc1 |
|
#
ae032b6c |
| 18-Nov-2016 |
Matthias Braun <matze@braunis.de> |
Adapt to llvm NamedRegionTimer changes
We have to specify a name and description for the timers and groups now.
llvm-svn: 287371
|
#
f91086b0 |
| 18-Nov-2016 |
Justin Lebar <jlebar@google.com> |
[CUDA] Initialize our header search using the host triple.
Summary: This used to work because system headers are found in a (somewhat) predictable set of locations on Linux. But this is not the cas
[CUDA] Initialize our header search using the host triple.
Summary: This used to work because system headers are found in a (somewhat) predictable set of locations on Linux. But this is not the case on MacOS; without this change, we don't look in the right places for our headers when doing device-side compilation on Mac.
Reviewers: tra
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D26776
llvm-svn: 287286
show more ...
|
#
7de9969b |
| 16-Nov-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
[Frontend] Allow attaching an external sema source to compiler instance and extra diags to TypoCorrections
This can be used to append alternative typo corrections to an existing diag. include-fixer
[Frontend] Allow attaching an external sema source to compiler instance and extra diags to TypoCorrections
This can be used to append alternative typo corrections to an existing diag. include-fixer can use it to suggest includes to be added.
Differential Revision: https://reviews.llvm.org/D26745
llvm-svn: 287128
show more ...
|
#
5e83dfed |
| 21-Oct-2016 |
Justin Lebar <jlebar@google.com> |
Switch SmallSetVector to use DenseSet when it overflows its inline space.
Summary: SetVector already used DenseSet, but SmallSetVector used std::set. This leads to surprising performance difference
Switch SmallSetVector to use DenseSet when it overflows its inline space.
Summary: SetVector already used DenseSet, but SmallSetVector used std::set. This leads to surprising performance differences. Moreover, it means that the set of key types accepted by SetVector and SmallSetVector are quite different!
In order to make this change, we had to convert some callsites that used SmallSetVector<std::string, N> to use SmallSetVector<CachedHashString, N> instead.
Reviewers: timshen
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D25648
llvm-svn: 284887
show more ...
|
#
ec1c5a20 |
| 27-Sep-2016 |
Matthias Braun <matze@braunis.de> |
Adapt to LLVM EnableStatistics() change.
llvm-svn: 282533
|
#
abb6eea1 |
| 26-Sep-2016 |
Matthias Braun <matze@braunis.de> |
CC1: Add -save-stats option
This option behaves in a similar spirit as -save-temps and writes internal llvm statistics in json format to a file.
Differential Revision: https://reviews.llvm.org/D248
CC1: Add -save-stats option
This option behaves in a similar spirit as -save-temps and writes internal llvm statistics in json format to a file.
Differential Revision: https://reviews.llvm.org/D24820
llvm-svn: 282426
show more ...
|
#
bbcc9f04 |
| 26-Aug-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++ Modules TS: add frontend support for building pcm files from module interface files. At the moment, all declarations (and no macros) are exported, and 'export' declarations are not supported yet.
C++ Modules TS: add frontend support for building pcm files from module interface files. At the moment, all declarations (and no macros) are exported, and 'export' declarations are not supported yet.
llvm-svn: 279794
show more ...
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2 |
|
#
11f2a477 |
| 18-Aug-2016 |
Manman Ren <manman.ren@gmail.com> |
Module: add -fprebuilt-module-path to support loading prebuilt modules.
In this mode, there is no need to load any module map and the programmer can simply use "@import" syntax to load the module di
Module: add -fprebuilt-module-path to support loading prebuilt modules.
In this mode, there is no need to load any module map and the programmer can simply use "@import" syntax to load the module directly from a prebuilt module path. When loading from prebuilt module path, we don't support rebuilding of the module files and we ignore compatible configuration mismatches.
rdar://27290316 Differential Revision: http://reviews.llvm.org/D23125
llvm-svn: 279096
show more ...
|
#
2c17e82b |
| 09-Aug-2016 |
Yaxun Liu <Yaxun.Liu@amd.com> |
[OpenCL][AMDGPU] Add support for -cl-denorms-are-zero
Adjust target features for amdgcn target when -cl-denorms-are-zero is set.
Denormal support is controlled by feature strings fp32-denormals fp6
[OpenCL][AMDGPU] Add support for -cl-denorms-are-zero
Adjust target features for amdgcn target when -cl-denorms-are-zero is set.
Denormal support is controlled by feature strings fp32-denormals fp64-denormals in amdgcn target. If -cl-denorms-are-zero is not set and the command line does not set fp32/64-denormals feature string, +fp32-denormals +fp64-denormals will be on for GPU's supporting them.
A new virtual function virtual void TargetInfo::adjustTargetOptions(const CodeGenOptions &CGOpts, TargetOptions &TargetOpts) const is introduced to allow adjusting target option by codegen option.
Differential Revision: https://reviews.llvm.org/D22815
llvm-svn: 278151
show more ...
|
Revision tags: llvmorg-3.9.0-rc1 |
|
#
9670f847 |
| 18-Jul-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
[NFC] Header cleanup
Summary: Removed unused headers, replaced some headers with forward class declarations
Patch by: Eugene <claprix@yandex.ru>
Differential Revision: https://reviews.llvm.org/D20
[NFC] Header cleanup
Summary: Removed unused headers, replaced some headers with forward class declarations
Patch by: Eugene <claprix@yandex.ru>
Differential Revision: https://reviews.llvm.org/D20100
llvm-svn: 275882
show more ...
|
#
03f8907f |
| 15-Jul-2016 |
Peter Collingbourne <peter@pcc.me.uk> |
Frontend: Simplify ownership model for clang's output streams.
This changes the CompilerInstance::createOutputFile function to return a std::unique_ptr<llvm::raw_ostream>, rather than an llvm::raw_o
Frontend: Simplify ownership model for clang's output streams.
This changes the CompilerInstance::createOutputFile function to return a std::unique_ptr<llvm::raw_ostream>, rather than an llvm::raw_ostream implicitly owned by the CompilerInstance. This in most cases required that I move ownership of the output stream to the relevant ASTConsumer.
The motivation for this change is to allow BackendConsumer to be a client of interfaces such as D20268 which take ownership of the output stream.
Differential Revision: http://reviews.llvm.org/D21537
llvm-svn: 275507
show more ...
|
#
d6da1a09 |
| 12-Jun-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add some std::move where the value is only read otherwise.
This mostly affects smart pointers. No functionality change intended.
llvm-svn: 272520
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
4a52222c |
| 04-Jun-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[Modules] Improve diagnostics for LockFileManager errors
Uses error message now provided by LockFileManager in LLVM r271755.
rdar://problem/26529101
llvm-svn: 271758
|
#
cfeacf56 |
| 27-May-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
Apply clang-tidy's misc-move-constructor-init throughout Clang.
No functionality change intended, maybe a tiny performance improvement.
llvm-svn: 270996
|
#
76945b2f |
| 29-Apr-2016 |
Justin Lebar <jlebar@google.com> |
[CUDA] Copy host builtin types to NVPTXTargetInfo.
Summary: Host and device types must match, otherwise when we pass values back and forth between the host and device, we will get the wrong result.
[CUDA] Copy host builtin types to NVPTXTargetInfo.
Summary: Host and device types must match, otherwise when we pass values back and forth between the host and device, we will get the wrong result.
This patch makes NVPTXTargetInfo inherit most of its type information from the host's target info.
Reviewers: rsmith
Subscribers: cfe-commits, jhen, tra
Differential Revision: http://reviews.llvm.org/D19346
llvm-svn: 268131
show more ...
|
#
10a4972a |
| 08-Apr-2016 |
Saleem Abdulrasool <compnerd@compnerd.org> |
revert SVN r265702, r265640
Revert the two changes to thread CodeGenOptions into the TargetInfo allocation and to fix the layering violation by moving CodeGenOptions into Basic. Code Generation is a
revert SVN r265702, r265640
Revert the two changes to thread CodeGenOptions into the TargetInfo allocation and to fix the layering violation by moving CodeGenOptions into Basic. Code Generation is arguably not particularly "basic". This addresses Richard's post-commit review comments. This change purely does the mechanical revert and will be followed up with an alternate approach to thread the desired information into TargetInfo.
llvm-svn: 265806
show more ...
|
#
724275ba |
| 07-Apr-2016 |
Saleem Abdulrasool <compnerd@compnerd.org> |
Basic: thread CodeGenOptions into TargetInfo
This threads CodeGenOptions into the TargetInfo hierarchy. This is motivated by ARM which can change some target information based on the EABI selected
Basic: thread CodeGenOptions into TargetInfo
This threads CodeGenOptions into the TargetInfo hierarchy. This is motivated by ARM which can change some target information based on the EABI selected (-meabi). Similar options exist for other platforms (e.g. MIPS) and thus is generally useful. NFC.
llvm-svn: 265640
show more ...
|
#
b1631d91 |
| 29-Mar-2016 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[CrashReproducer] Cleanup and move functionality around in ModuleDependencyCollector. NFC
- Make ModuleDependencyCollector use the DependencyCollector interface - Move some methods from ModuleDepend
[CrashReproducer] Cleanup and move functionality around in ModuleDependencyCollector. NFC
- Make ModuleDependencyCollector use the DependencyCollector interface - Move some methods from ModuleDependencyListener to ModuleDependencyCollector in order to share common functionality with other future possible callbacks.
llvm-svn: 264808
show more ...
|
#
f54146c1 |
| 23-Mar-2016 |
Nico Weber <nicolasweber@gmx.de> |
clang-cl: Fix remaining bugs in interaction of /Yc and /FI /showIncludes.
Instead of putting the /Yc header into ExtraDeps, give DependencyOutputOptions a dedicated field for /Yc mode, and let Heade
clang-cl: Fix remaining bugs in interaction of /Yc and /FI /showIncludes.
Instead of putting the /Yc header into ExtraDeps, give DependencyOutputOptions a dedicated field for /Yc mode, and let HeaderIncludesCallback hang on to the full DependencyOutputOptions object, not just ExtraDeps.
Reverts parts of r263352 that are now no longer needed.
llvm-svn: 264182
show more ...
|
#
149d9522 |
| 23-Mar-2016 |
Nico Weber <nicolasweber@gmx.de> |
clang-cl: Include /FI headers in /showIncludes output.
-H in gcc mode doesn't print -include headers, but they are included in depfiles written by MMD and friends. Since /showIncludes is what's used
clang-cl: Include /FI headers in /showIncludes output.
-H in gcc mode doesn't print -include headers, but they are included in depfiles written by MMD and friends. Since /showIncludes is what's used instead of depfiles, printing /FI there seems important (and matches cl.exe).
Instead of giving HeaderIncludeGen more options, just switch on ShowAllHeaders in clang-cl mode and let clang::InitializePreprocessor() not put -include flags in the <command line> block. This changes the behavior of -E slightly, and it removes the <command line> flag from the output triggered by setting the obscure CC_PRINT_HEADERS=1 env var to true while running clang. Both of these seem ok to change.
http://reviews.llvm.org/D18401
llvm-svn: 264174
show more ...
|