#
6623e1f1 |
| 03-Nov-2015 |
Douglas Gregor <dgregor@apple.com> |
Introduce module file extensions to piggy-back data onto module files.
Introduce the notion of a module file extension, which introduces additional information into a module file at the time it is b
Introduce module file extensions to piggy-back data onto module files.
Introduce the notion of a module file extension, which introduces additional information into a module file at the time it is built that can then be queried when the module file is read. Module file extensions are identified by a block name (which must be unique to the extension) and can write any bitstream records into their own extension block within the module file. When a module file is loaded, any extension blocks are matched up with module file extension readers, that are per-module-file and are given access to the input bitstream.
Note that module file extensions can only be introduced by programmatic clients that have access to the CompilerInvocation. There is only one such extension at the moment, which is used for testing the module file extension harness. As a future direction, one could imagine allowing the plugin mechanism to introduce new module file extensions.
llvm-svn: 251955
show more ...
|
#
5d40ae3a |
| 27-Oct-2015 |
Artem Belevich <tra@google.com> |
Allow linking multiple bitcode files.
Linking options for particular file depend on the option that specifies the file. Currently there are two:
* -mlink-bitcode-file links in complete content of t
Allow linking multiple bitcode files.
Linking options for particular file depend on the option that specifies the file. Currently there are two:
* -mlink-bitcode-file links in complete content of the specified file. * -mlink-cuda-bitcode links in only the symbols needed by current TU. Linked symbols are internalized. This bitcode linking mode is used to link device-specific bitcode provided by CUDA.
Files are linked in order they are specified on command line.
-mlink-cuda-bitcode replaces -fcuda-uses-libdevice flag.
Differential Revision: http://reviews.llvm.org/D13913
llvm-svn: 251427
show more ...
|
#
460ce58f |
| 22-Oct-2015 |
John McCall <rjmccall@apple.com> |
Define weak and __weak to mean ARC-style weak references, even in MRC.
Previously, __weak was silently accepted and ignored in MRC mode. That makes this a potentially source-breaking change that we
Define weak and __weak to mean ARC-style weak references, even in MRC.
Previously, __weak was silently accepted and ignored in MRC mode. That makes this a potentially source-breaking change that we have to roll out cautiously. Accordingly, for the time being, actual support for __weak references in MRC is experimental, and the compiler will reject attempts to actually form such references. The intent is to eventually enable the feature by default in all non-GC modes. (It is, of course, incompatible with ObjC GC's interpretation of __weak.)
If you like, you can enable this feature with -Xclang -fobjc-weak but like any -Xclang option, this option may be removed at any point, e.g. if/when it is eventually enabled by default.
This patch also enables the use of the ARC __unsafe_unretained qualifier in MRC. Unlike __weak, this is being enabled immediately. Since variables are essentially __unsafe_unretained by default in MRC, the only practical uses are (1) communication and (2) changing the default behavior of by-value block capture.
As an implementation matter, this means that the ObjC ownership qualifiers may appear in any ObjC language mode, and so this patch removes a number of checks for getLangOpts().ObjCAutoRefCount that were guarding the processing of these qualifiers. I don't expect this to be a significant drain on performance; it may even be faster to just check for these qualifiers directly on a type (since it's probably in a register anyway) than to do N dependent loads to grab the LangOptions.
rdar://9674298
llvm-svn: 251041
show more ...
|
#
eb7927ee |
| 22-Oct-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[coroutines] Add lexer support for co_await, co_yield, and co_return keywords. Add -fcoroutines flag (just for -cc1 for now) to enable the feature. Early indications are that this will be part of -st
[coroutines] Add lexer support for co_await, co_yield, and co_return keywords. Add -fcoroutines flag (just for -cc1 for now) to enable the feature. Early indications are that this will be part of -std=c++1z.
llvm-svn: 250980
show more ...
|
#
7737bd9f |
| 21-Oct-2015 |
Reid Kleckner <rnk@google.com> |
[Driver] Alias -fvisibility=internal to -fvisibility=hidden
The ELF symbol visibilities are: - internal: Not visibile across DSOs, cannot pass address across DSOs - hidden: Not visibile across DSOs,
[Driver] Alias -fvisibility=internal to -fvisibility=hidden
The ELF symbol visibilities are: - internal: Not visibile across DSOs, cannot pass address across DSOs - hidden: Not visibile across DSOs, can be called indirectly - default: Usually visible across DSOs, possibly interposable - protected: Visible across DSOs, not interposable
LLVM only supports the latter 3 visibilities. Internal visibility is in theory useful, as it allows you to assume that the caller is maintaining a PIC register for you in %ebx, or in some other pre-arranged location. As far as LLVM is concerned, this isn't worth the trouble. Using hidden visibility is always correct, so we can just do that.
Resolves PR9183.
llvm-svn: 250954
show more ...
|
#
637d1e66 |
| 20-Oct-2015 |
Angel Garcia Gomez <angelgarcia@google.com> |
Roll-back r250822.
Summary: It breaks the build for the ASTMatchers
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D13893
llvm-svn: 250827
|
#
b5250d34 |
| 20-Oct-2015 |
Angel Garcia Gomez <angelgarcia@google.com> |
Apply modernize-use-default to clang.
Summary: Replace empty bodies of default constructors and destructors with '= default'.
Reviewers: bkramer, klimek
Subscribers: klimek, alexfh, cfe-commits
D
Apply modernize-use-default to clang.
Summary: Replace empty bodies of default constructors and destructors with '= default'.
Reviewers: bkramer, klimek
Subscribers: klimek, alexfh, cfe-commits
Differential Revision: http://reviews.llvm.org/D13890
llvm-svn: 250822
show more ...
|
#
c4958b4b |
| 17-Oct-2015 |
Davide Italiano <davide@freebsd.org> |
[Frontend] Name variable correctly.
Reported by: Kim Grasman!
llvm-svn: 250605
|
#
27043302 |
| 16-Oct-2015 |
Davide Italiano <davide@freebsd.org> |
[Frontend/CompilerInvocation] Use range-based loop. NFC.
llvm-svn: 250559
|
#
945bc50f |
| 15-Oct-2015 |
Teresa Johnson <tejohnson@google.com> |
Recommit "Clang support for -flto=thin."
This recommits r250398 with fixes to the tests for bot failures.
Add "-target x86_64-unknown-linux" to the clang invocations that check for the gold plugin.
Recommit "Clang support for -flto=thin."
This recommits r250398 with fixes to the tests for bot failures.
Add "-target x86_64-unknown-linux" to the clang invocations that check for the gold plugin.
llvm-svn: 250455
show more ...
|
#
fca505c6 |
| 15-Oct-2015 |
Teresa Johnson <tejohnson@google.com> |
Revert "Clang support for -flto=thin." (bot failures)
Rolling this back for now since there are a couple of bot failures on the new tests I added, and I won't have a chance to look at them in detail
Revert "Clang support for -flto=thin." (bot failures)
Rolling this back for now since there are a couple of bot failures on the new tests I added, and I won't have a chance to look at them in detail until later this afternoon. I think the new tests need some restrictions on having the gold plugin available.
This reverts commit r250398.
llvm-svn: 250402
show more ...
|
#
31b23549 |
| 15-Oct-2015 |
Teresa Johnson <tejohnson@google.com> |
Clang support for -flto=thin.
Summary: Add clang support for -flto=thin option, which is used to set the EmitFunctionSummary code gen option on compiles.
Add -flto=full as an alias to the existing
Clang support for -flto=thin.
Summary: Add clang support for -flto=thin option, which is used to set the EmitFunctionSummary code gen option on compiles.
Add -flto=full as an alias to the existing -flto.
Add tests to check for proper overriding of -flto variants on the command line, and convert grep tests to FileCheck.
Reviewers: dexonsmith, joker.eph
Subscribers: davidxl, cfe-commits
Differential Revision: http://reviews.llvm.org/D11908
llvm-svn: 250398
show more ...
|
#
436256a7 |
| 12-Oct-2015 |
Saleem Abdulrasool <compnerd@compnerd.org> |
Support Debug Info path remapping
Add support for the `-fdebug-prefix-map=` option as in GCC. The syntax is `-fdebug-prefix-map=OLD=NEW`. When compiling files from a path beginning with OLD, chang
Support Debug Info path remapping
Add support for the `-fdebug-prefix-map=` option as in GCC. The syntax is `-fdebug-prefix-map=OLD=NEW`. When compiling files from a path beginning with OLD, change the debug info to indicate the path as start with NEW. This is particularly helpful if you are preprocessing in one path and compiling in another (e.g. for a build cluster with distcc).
Note that the linearity of the implementation is not as terrible as it may seem. This is normally done once per file with an expectation that the map will be small (1-2) entries, making this roughly linear in the number of input paths.
Addresses PR24619.
llvm-svn: 250094
show more ...
|
#
3459ce2e |
| 08-Oct-2015 |
Douglas Katzman <dougk@google.com> |
Stop messing with the 'g' group of options in CompilerInvocation.
With this change, most 'g' options are rejected by CompilerInvocation. They remain only as Driver options. The new way to request de
Stop messing with the 'g' group of options in CompilerInvocation.
With this change, most 'g' options are rejected by CompilerInvocation. They remain only as Driver options. The new way to request debug info from cc1 is with "-debug-info-kind={line-tables-only|limited|standalone}" and "-dwarf-version={2|3|4}". In the absence of a command-line option to specify Dwarf version, the Toolchain decides it, rather than placing Toolchain-specific logic in CompilerInvocation.
Also fix a bug in the Windows compatibility argument parsing in which the "rightmost argument wins" principle failed.
Differential Revision: http://reviews.llvm.org/D13221
llvm-svn: 249655
show more ...
|
#
129552b3 |
| 08-Oct-2015 |
Reid Kleckner <rnk@google.com> |
[WinEH] Remove NewMSEH and enable its behavior by default
Testing has shown that it is at least as reliable as the old landingpad pattern matching code.
llvm-svn: 249647
|
#
d170c4b5 |
| 04-Oct-2015 |
Saleem Abdulrasool <compnerd@compnerd.org> |
Add -f[no-]declspec to control recognition of __declspec as a keyword
In versions of clang prior to r238238, __declspec was recognized as a keyword in all modes. It was then changed to only be enab
Add -f[no-]declspec to control recognition of __declspec as a keyword
In versions of clang prior to r238238, __declspec was recognized as a keyword in all modes. It was then changed to only be enabled when Microsoft or Borland extensions were enabled (and for CUDA, as a temporary measure). There is a desire to support __declspec in Playstation code, and possibly other environments. This commit adds a command-line switch to allow explicit enabling/disabling of the recognition of __declspec as a keyword. Recognition is enabled by default in Microsoft, Borland, CUDA, and PS4 environments, and disabled in all other environments.
Patch by Warren Ristow!
llvm-svn: 249279
show more ...
|
#
f5a8e6c5 |
| 02-Oct-2015 |
Alexandros Lamprineas <alexandros.lamprineas@arm.com> |
Implement ACLE 2.0 macros of chapters 6.6 and 6.7 for [ARM] and [Aarch64] targets.
Differential Revision: http://reviews.llvm.org/D12633
llvm-svn: 249140
|
#
b5bc923a |
| 22-Sep-2015 |
Artem Belevich <tra@google.com> |
[CUDA] Allow parsing of host and device code simultaneously.
* adds -aux-triple option to specify target triple * propagates aux target info to AST context and Preprocessor * pulls in target spec
[CUDA] Allow parsing of host and device code simultaneously.
* adds -aux-triple option to specify target triple * propagates aux target info to AST context and Preprocessor * pulls in target specific preprocessor macros. * pulls in target-specific builtins from aux target. * sets appropriate host or device attribute on builtins.
Differential Revision: http://reviews.llvm.org/D12917
llvm-svn: 248299
show more ...
|
#
94a55e81 |
| 22-Sep-2015 |
Artem Belevich <tra@google.com> |
[CUDA] Allow function overloads in CUDA based on host/device attributes.
The patch makes it possible to parse CUDA files that contain host/device functions with identical signatures, but different a
[CUDA] Allow function overloads in CUDA based on host/device attributes.
The patch makes it possible to parse CUDA files that contain host/device functions with identical signatures, but different attributes without having to physically split source into host-only and device-only parts.
This change is needed in order to parse CUDA header files that have a lot of name clashes with standard include files.
Gory details are in design doc here: https://goo.gl/EXnymm Feel free to leave comments there or in this review thread.
This feature is controlled with CC1 option -fcuda-target-overloads and is disabled by default.
Differential Revision: http://reviews.llvm.org/D12453
llvm-svn: 248295
show more ...
|
#
338c9d0a |
| 15-Sep-2015 |
Piotr Padlewski <prazek@google.com> |
Emiting llvm.invariant.group.barrier when dynamic type changes
For more goto: http://lists.llvm.org/pipermail/cfe-dev/2015-July/044227.html
http://reviews.llvm.org/D12312
llvm-svn: 247723
|
#
7cb25c9b |
| 10-Sep-2015 |
Artem Belevich <tra@google.com> |
[CUDA] Postprocess bitcode linked in during device-side CUDA compilation.
Link in and internalize the symbols we need from supplied bitcode library.
Differential Revision: http://reviews.llvm.org/D
[CUDA] Postprocess bitcode linked in during device-side CUDA compilation.
Link in and internalize the symbols we need from supplied bitcode library.
Differential Revision: http://reviews.llvm.org/D11664
llvm-svn: 247317
show more ...
|
#
4c3f237e |
| 02-Sep-2015 |
Ivan Krasin <krasin@chromium.org> |
Do not include default sanitizer blacklists into -M/-MM/-MD/-MMD output.
Summary: Do not include default sanitizer blacklists into -M/-MM/-MD/-MMD output.
Introduce a frontend option -fdepfile-entr
Do not include default sanitizer blacklists into -M/-MM/-MD/-MMD output.
Summary: Do not include default sanitizer blacklists into -M/-MM/-MD/-MMD output.
Introduce a frontend option -fdepfile-entry, and only insert them for the user-defined sanitizer blacklists. In frontend, grab ExtraDeps from -fdepfile-entry, instead of -fsanitize-blacklist.
Reviewers: rsmith, pcc
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D12544
llvm-svn: 246700
show more ...
|
#
6b21ab21 |
| 27-Aug-2015 |
Adrian Prantl <aprantl@apple.com> |
Add a -gmodules option to the driver and a -dwarf-ext-refs to cc1 to enable the use of external type references in the debug info (a.k.a. module debugging).
The driver expands -gmodules to "-g -fmod
Add a -gmodules option to the driver and a -dwarf-ext-refs to cc1 to enable the use of external type references in the debug info (a.k.a. module debugging).
The driver expands -gmodules to "-g -fmodule-format=obj -dwarf-ext-refs" and passes that to cc1. All this does at the moment is set a flag codegenopts.
http://reviews.llvm.org/D11958
llvm-svn: 246192
show more ...
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3 |
|
#
fb1e7f7d |
| 14-Aug-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] Add an experimental -cc1 feature to embed the contents of an input file in the .pcm files. This allows a smaller set of files to be sent to a remote build worker when building with explicit
[modules] Add an experimental -cc1 feature to embed the contents of an input file in the .pcm files. This allows a smaller set of files to be sent to a remote build worker when building with explicit modules (for instance, module map files need not be sent along with the corresponding precompiled modules).
This doesn't actually make the embedded files visible to header search, so it's not useful as a packaging format for public header files.
llvm-svn: 245028
show more ...
|
Revision tags: studio-1.4 |
|
#
be9b6c75 |
| 13-Aug-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[modules] For explicit module file dependencies, only list direct dependency module files.
llvm-svn: 244931
|