#
9e4321c1 |
| 17-Apr-2018 |
Teresa Johnson <tejohnson@google.com> |
[ThinLTO] Pass -save-temps to LTO backend for distributed ThinLTO builds
Summary: The clang driver option -save-temps was not passed to the LTO config, so when invoking the ThinLTO backends via clan
[ThinLTO] Pass -save-temps to LTO backend for distributed ThinLTO builds
Summary: The clang driver option -save-temps was not passed to the LTO config, so when invoking the ThinLTO backends via clang during distributed builds there was no way to get LTO to save temp files.
Getting this to work with ThinLTO distributed builds also required changing the driver to avoid a separate compile step to emit unoptimized bitcode when the input was already bitcode under -save-temps. Not only is this unnecessary in general, it is problematic for ThinLTO backends since the temporary bitcode file to the backend would not match the module path in the combined index, leading to incorrect ThinLTO backend index-based optimizations.
Reviewers: pcc
Subscribers: mehdi_amini, inglorion, eraman, cfe-commits
Differential Revision: https://reviews.llvm.org/D45217
llvm-svn: 330194
show more ...
|
#
488f7c2b |
| 13-Apr-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay][clang] Add flag to choose instrumentation bundles
Summary: This change addresses http://llvm.org/PR36926 by allowing users to pick which instrumentation bundles to use, when instrumenting wit
[XRay][clang] Add flag to choose instrumentation bundles
Summary: This change addresses http://llvm.org/PR36926 by allowing users to pick which instrumentation bundles to use, when instrumenting with XRay. In particular, the flag `-fxray-instrumentation-bundle=` has four valid values:
- `all`: the default, emits all instrumentation kinds - `none`: equivalent to -fnoxray-instrument - `function`: emits the entry/exit instrumentation - `custom`: emits the custom event instrumentation
These can be combined either as comma-separated values, or as repeated flag values.
Reviewers: echristo, kpw, eizan, pelikan
Reviewed By: pelikan
Subscribers: mgorny, cfe-commits
Differential Revision: https://reviews.llvm.org/D44970
llvm-svn: 329985
show more ...
|
#
01d349ba |
| 12-Apr-2018 |
Eli Friedman <efriedma@codeaurora.org> |
Remove -cc1 option "-backend-option".
It means the same thing as -mllvm; there isn't any reason to have two options which do the same thing.
Differential Revision: https://reviews.llvm.org/D45109
Remove -cc1 option "-backend-option".
It means the same thing as -mllvm; there isn't any reason to have two options which do the same thing.
Differential Revision: https://reviews.llvm.org/D45109
llvm-svn: 329965
show more ...
|
#
c645f61a |
| 12-Apr-2018 |
Anastasia Stulova <anastasia.stulova@arm.com> |
[OpenCL] Added -std/-cl-std=c++
This is std option for OpenCL C++ v1.0.
Differential Revision: https://reviews.llvm.org/D45363
llvm-svn: 329911
|
#
20dc6ef7 |
| 09-Apr-2018 |
Dean Michael Berris <dberris@google.com> |
[XRay][llvm+clang] Consolidate attribute list files
Summary: This change consolidates the always/never lists that may be provided to clang to externally control which functions should be XRay instru
[XRay][llvm+clang] Consolidate attribute list files
Summary: This change consolidates the always/never lists that may be provided to clang to externally control which functions should be XRay instrumented by imbuing attributes. The files follow the same format as defined in https://clang.llvm.org/docs/SanitizerSpecialCaseList.html for the sanitizer blacklist.
We also deprecate the existing `-fxray-instrument-always=` and `-fxray-instrument-never=` flags, in favour of `-fxray-attr-list=`.
This fixes http://llvm.org/PR34721.
Reviewers: echristo, vlad.tsyrklevich, eugenis
Reviewed By: vlad.tsyrklevich
Subscribers: llvm-commits, cfe-commits
Differential Revision: https://reviews.llvm.org/D45357
llvm-svn: 329543
show more ...
|
#
c3aa97a4 |
| 06-Apr-2018 |
Petr Hosek <phosek@chromium.org> |
CMake option to allow enabling experimental new pass manager by default
This CMake flag allows setting the default value for the -f[no]-experimental-new-pass-manager flag.
Differential Revision: ht
CMake option to allow enabling experimental new pass manager by default
This CMake flag allows setting the default value for the -f[no]-experimental-new-pass-manager flag.
Differential Revision: https://reviews.llvm.org/D44330
llvm-svn: 329366
show more ...
|
#
4b3eefa5 |
| 05-Apr-2018 |
Manoj Gupta <manojgupta@google.com> |
Disable -fmerge-all-constants as default.
Summary: "-fmerge-all-constants" is a non-conforming optimization and should not be the default. It is also causing miscompiles when building Linux Kernel (
Disable -fmerge-all-constants as default.
Summary: "-fmerge-all-constants" is a non-conforming optimization and should not be the default. It is also causing miscompiles when building Linux Kernel (https://lkml.org/lkml/2018/3/20/872).
Fixes PR18538.
Reviewers: rjmccall, rsmith, chandlerc
Reviewed By: rsmith, chandlerc
Subscribers: srhines, cfe-commits
Differential Revision: https://reviews.llvm.org/D45289
llvm-svn: 329300
show more ...
|
#
880057c1 |
| 02-Apr-2018 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add -fclang-abi-compat=6 flag for upcoming ABI changes.
llvm-svn: 329000
|
#
fcbe17c6 |
| 28-Mar-2018 |
Akira Hatanaka <ahatanaka@apple.com> |
[ObjC++] Make parameter passing and function return compatible with ObjC ObjC and ObjC++ pass non-trivial structs in a way that is incompatible with each other. For example: typedef struct
[ObjC++] Make parameter passing and function return compatible with ObjC ObjC and ObjC++ pass non-trivial structs in a way that is incompatible with each other. For example: typedef struct { id f0; __weak id f1; } S; // this code is compiled in c++. extern "C" { void foo(S s); } void caller() { // the caller passes the parameter indirectly and destructs it. foo(S()); } // this function is compiled in c. // 'a' is passed directly and is destructed in the callee. void foo(S a) { } This patch fixes the incompatibility by passing and returning structs with __strong or weak fields using the C ABI in C++ mode. __strong and __weak fields in a struct do not cause the struct to be destructed in the caller and __strong fields do not cause the struct to be passed indirectly. Also, this patch fixes the microsoft ABI bug mentioned here: https://reviews.llvm.org/D41039?id=128767#inline-364710 rdar://problem/38887866 Differential Revision: https://reviews.llvm.org/D44908
llvm-svn: 328731
show more ...
|
Revision tags: llvmorg-5.0.2, llvmorg-5.0.2-rc2 |
|
#
c205d8cc |
| 27-Mar-2018 |
Mandeep Singh Grang <mgrang@codeaurora.org> |
[clang] Change std::sort to llvm::sort in response to r327219
r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism c
[clang] Change std::sort to llvm::sort in response to r327219
r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism caused due to undefined sorting order of objects having the same key.
To make use of that infrastructure we need to invoke llvm::sort instead of std::sort.
llvm-svn: 328636
show more ...
|
#
44357eef |
| 26-Mar-2018 |
Eugene Zelenko <eugene.zelenko@gmail.com> |
[Frontend] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
llvm-svn: 328584
|
#
005c2e57 |
| 23-Mar-2018 |
Ben Langmuir <blangmuir@apple.com> |
[vfs] Don't bail out after a missing -ivfsoverlay file
This make -ivfsoverlay behave more like other fatal errors (e.g. missing -include file) by skipping the missing file instead of bailing out of
[vfs] Don't bail out after a missing -ivfsoverlay file
This make -ivfsoverlay behave more like other fatal errors (e.g. missing -include file) by skipping the missing file instead of bailing out of the whole compilation. This makes it possible for libclang to still provide some functionallity as well as to correctly produce the fatal error diagnostic (previously we lost the diagnostic in libclang since there was no TU to tie it to).
rdar://33385423
llvm-svn: 328337
show more ...
|
#
970b2819 |
| 20-Mar-2018 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
[Modules] Honor -fmodule-name when handling private framework modules
When skipping building the module for a private framework module, LangOpts.CurrentModule isn't enough for implict modules builds
[Modules] Honor -fmodule-name when handling private framework modules
When skipping building the module for a private framework module, LangOpts.CurrentModule isn't enough for implict modules builds; for instance, in case a private module is built while building a public one, LangOpts.CurrentModule doesn't reflect the -fmodule-name being passed down, but instead the module name which triggered the build.
Store the actual -fmodule-name in LangOpts.ModuleName and actually check a name was provided during compiler invocation in order to skip building the private module.
rdar://problem/38434694
llvm-svn: 328053
show more ...
|
#
220671a0 |
| 17-Mar-2018 |
Oren Ben Simhon <oren.ben.simhon@intel.com> |
Adding nocf_check attribute for cf-protection fine tuning
The patch adds nocf_check target independent attribute for disabling checks that were enabled by cf-protection flag. The attribute can be ap
Adding nocf_check attribute for cf-protection fine tuning
The patch adds nocf_check target independent attribute for disabling checks that were enabled by cf-protection flag. The attribute can be appertained to functions and function pointers. Attribute name follows GCC's similar attribute name.
Differential Revision: https://reviews.llvm.org/D41880
llvm-svn: 327768
show more ...
|
Revision tags: llvmorg-5.0.2-rc1 |
|
#
4289f4ce |
| 06-Mar-2018 |
Michal Gorny <mgorny@gentoo.org> |
[FrontEnd] Allow overriding the default C/C++ -std via CMake vars
Provide two new CMake cache variables -- CLANG_DEFAULT_STD_C and CLANG_DEFAULT_STD_CXX -- that can be used to override the default C
[FrontEnd] Allow overriding the default C/C++ -std via CMake vars
Provide two new CMake cache variables -- CLANG_DEFAULT_STD_C and CLANG_DEFAULT_STD_CXX -- that can be used to override the default C/ObjC and C++/ObjC++ standards appropriately. They can be set to one of the identifiers from LangStandards.def, or left unset (the default) to respect the current platform default.
This option is mostly intended for compiler vendors that may wish to adjust the defaults their compilers are using. For example, Gentoo planned to use it to set clang and gcc to matching standards, so that we could maintain as much compatibility between different compilers as possible.
The code relies on explicit identifiers rather than the string aliases for simplicity. This saves us from the necessity of parsing aliases at build-time or adding additional processing at runtime. For the latter case, it also adds trivial value check -- if incorrect value is passed, the code simply fails to compile through referencing an undefined constant.
If the variable is used to redefine the default standard, the explicit value overrides the special case for PS4. It is done this way mostly following other kinds of variables where 'platform defaults' are redefined.
Differential Revision: https://reviews.llvm.org/D34365
llvm-svn: 326836
show more ...
|
Revision tags: llvmorg-6.0.0 |
|
#
627586b8 |
| 02-Mar-2018 |
Akira Hatanaka <ahatanaka@apple.com> |
Add an option to disable tail-call optimization for escaping blocks.
This makes it easier to debug crashes and hangs in block functions since users can easily find out where the block is called from
Add an option to disable tail-call optimization for escaping blocks.
This makes it easier to debug crashes and hangs in block functions since users can easily find out where the block is called from. The option doesn't disable tail-calls from non-escaping blocks since non-escaping blocks are not as hard to debug as escaping blocks.
rdar://problem/35758207
Differential Revision: https://reviews.llvm.org/D43841
llvm-svn: 326530
show more ...
|
#
ca552b8d |
| 01-Mar-2018 |
Chih-Hung Hsieh <chh@google.com> |
[Driver] Pass -f[no-]emulated-tls and set up ExplicitEmulatedTLS
Since LLVM r326341, default EmulatedTLS mode is decided in backend according to target triple. Any front-end should pass -f[no]-emula
[Driver] Pass -f[no-]emulated-tls and set up ExplicitEmulatedTLS
Since LLVM r326341, default EmulatedTLS mode is decided in backend according to target triple. Any front-end should pass -f[no]-emulated-tls to backend and set up ExplicitEmulatedTLS only when the flags are used.
Differential Revision: https://reviews.llvm.org/D43965
llvm-svn: 326499
show more ...
|
#
79712097 |
| 28-Feb-2018 |
Carlo Bertolli <cbertol@us.ibm.com> |
[OpenMP] Extend NVPTX SPMD implementation of combined constructs
Differential Revision: https://reviews.llvm.org/D43852
This patch extends the SPMD implementation to all target constructs and guard
[OpenMP] Extend NVPTX SPMD implementation of combined constructs
Differential Revision: https://reviews.llvm.org/D43852
This patch extends the SPMD implementation to all target constructs and guards this implementation under a new flag.
llvm-svn: 326368
show more ...
|
#
e768132f |
| 28-Feb-2018 |
Jonas Hahnfeld <hahnjo@hahnjo.de> |
[CUDA] Include single GPU binary, NFCI.
Binaries for multiple architectures are combined by fatbinary, so the current code was effectively not needed.
Differential Revision: https://reviews.llvm.or
[CUDA] Include single GPU binary, NFCI.
Binaries for multiple architectures are combined by fatbinary, so the current code was effectively not needed.
Differential Revision: https://reviews.llvm.org/D43461
llvm-svn: 326342
show more ...
|
#
a2fbcef8 |
| 26-Feb-2018 |
Scott Linder <scott@scottlinder.com> |
[DebugInfo] Support DWARF v5 source code embedding extension
In DWARF v5 the Line Number Program Header is extensible, allowing values with new content types. This vendor extension to DWARF v5 allow
[DebugInfo] Support DWARF v5 source code embedding extension
In DWARF v5 the Line Number Program Header is extensible, allowing values with new content types. This vendor extension to DWARF v5 allows source text to be embedded directly in the line tables of the debug line section.
Add new flag (-g[no-]embed-source) to Driver and CC1 which indicates that source should be passed through to LLVM during CodeGen.
Differential Revision: https://reviews.llvm.org/D42766
llvm-svn: 326102
show more ...
|
#
ac24bb53 |
| 25-Feb-2018 |
Mandeep Singh Grang <mgrang@codeaurora.org> |
[RISCV] Enable __int128_t and __uint128_t through clang flag
Summary: If the flag -fforce-enable-int128 is passed, it will enable support for __int128_t and __uint128_t types. This flag can then be
[RISCV] Enable __int128_t and __uint128_t through clang flag
Summary: If the flag -fforce-enable-int128 is passed, it will enable support for __int128_t and __uint128_t types. This flag can then be used to build compiler-rt for RISCV32.
Reviewers: asb, kito-cheng, apazos, efriedma
Reviewed By: asb, efriedma
Subscribers: shiva0217, efriedma, jfb, dschuff, sdardis, sbc100, jgravelle-google, aheejin, rbar, johnrusso, simoncook, jordy.potman.lists, sabuasal, niosHD, cfe-commits
Differential Revision: https://reviews.llvm.org/D43105
llvm-svn: 326045
show more ...
|
#
d43f40df |
| 23-Feb-2018 |
Hans Wennborg <hans@hanshq.net> |
Support for the mno-stack-arg-probe flag
Adds support for this flag. There is also another piece for llvm (separate review). More info: https://bugs.llvm.org/show_bug.cgi?id=36221
By Ruslan Nikolae
Support for the mno-stack-arg-probe flag
Adds support for this flag. There is also another piece for llvm (separate review). More info: https://bugs.llvm.org/show_bug.cgi?id=36221
By Ruslan Nikolaev!
Differential Revision: https://reviews.llvm.org/D43108
llvm-svn: 325901
show more ...
|
Revision tags: llvmorg-6.0.0-rc3 |
|
#
20f65928 |
| 22-Feb-2018 |
Alexey Sotkin <alexey.sotkin@intel.com> |
[OpenCL] Add '-cl-uniform-work-group-size' compile option
Summary: OpenCL 2.0 specification defines '-cl-uniform-work-group-size' option, which requires that the global work-size be a multiple of th
[OpenCL] Add '-cl-uniform-work-group-size' compile option
Summary: OpenCL 2.0 specification defines '-cl-uniform-work-group-size' option, which requires that the global work-size be a multiple of the work-group size specified to clEnqueueNDRangeKernel and allows optimizations that are made possible by this restriction.
The patch introduces the support of this option.
To keep information about whether an OpenCL kernel has uniform work group size or not, clang generates 'uniform-work-group-size' function attribute for every kernel: - "uniform-work-group-size"="true" for OpenCL 1.2 and lower, - "uniform-work-group-size"="true" for OpenCL 2.0 and higher if '-cl-uniform-work-group-size' option was specified, - "uniform-work-group-size"="false" for OpenCL 2.0 and higher if no '-cl-uniform-work-group-size' options was specified.
If the function is not an OpenCL kernel, 'uniform-work-group-size' attribute isn't generated.
Patch by: krisb
Reviewers: yaxunl, Anastasia, b-sumner
Reviewed By: yaxunl, Anastasia
Subscribers: nhaehnle, yaxunl, Anastasia, cfe-commits
Differential Revision: https://reviews.llvm.org/D43570
llvm-svn: 325771
show more ...
|
#
4ba5817b |
| 12-Feb-2018 |
Filipe Cabecinhas <me@filcab.net> |
ASan+operator new[]: Add an option for more thorough operator new[] cookie poisoning
Summary: Right now clang is skipping array cookie poisoning for any operator new[] which is not part of the set o
ASan+operator new[]: Add an option for more thorough operator new[] cookie poisoning
Summary: Right now clang is skipping array cookie poisoning for any operator new[] which is not part of the set of replaceable global allocation functions.
This commit adds a flag to tell clang to poison all operator new[] cookies.
A previous review was poisoning all array cookies unconditionally, but there is an edge case which would stop working under ASan (a custom operator new[] saves whatever pointer it returned, and then accesses it).
This newer revision adds a command line argument to toggle this feature.
Original revision: https://reviews.llvm.org/D41301 Compiler-rt test revision with an explanation of the edge case: https://reviews.llvm.org/D41664
Reviewers: rjmccall, kcc, rsmith
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D43013
llvm-svn: 324884
show more ...
|
#
5379c6d6 |
| 12-Feb-2018 |
Jonas Hahnfeld <hahnjo@hahnjo.de> |
[CUDA] Add option to generate relocatable device code
As a first step, pass '-c/--compile-only' to ptxas so that it doesn't complain about references to external function. This will successfully gen
[CUDA] Add option to generate relocatable device code
As a first step, pass '-c/--compile-only' to ptxas so that it doesn't complain about references to external function. This will successfully generate object files, but they won't work at runtime because the registration routines need to adapted.
Differential Revision: https://reviews.llvm.org/D42921
llvm-svn: 324878
show more ...
|