#
38d91d49 |
| 28-Sep-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
P0095R3: Implement the latest published revision of SD-6 (C++ feature test macros).
llvm-svn: 282627
|
#
b02043cd |
| 28-Sep-2016 |
Richard Smith <richard-llvm@metafoo.co.uk> |
P0096R2: Implement more recent revision of SD-6 (C++ feature test macros).
llvm-svn: 282622
|
#
1ff60ef2 |
| 23-Sep-2016 |
Daniel Marjamaki <daniel.marjamaki@evidente.se> |
Minor tweak. Avoid hardcoding.
llvm-svn: 282242
|
#
2f754522 |
| 15-Sep-2016 |
David L. Jones <dlj@google.com> |
Simplify Clang's version number configuration in CMake.
Currently, the Clang version is computed as follows:
1. LLVM defines major, minor, and patch versions, all statically set. Today, these
Simplify Clang's version number configuration in CMake.
Currently, the Clang version is computed as follows:
1. LLVM defines major, minor, and patch versions, all statically set. Today, these are 4, 0, and 0, respectively. 2. The static version numbers are combined into PACKAGE_VERSION along with a suffix, so the result today looks like "4.0.0svn". 3. Clang extracts CLANG_VERSION from PACKAGE_VERSION using a regexp. The regexp allows the patch level to omitted, and drops any non-digit trailing values. Today, this result looks like "4.0.0". 4. CLANG_VERSION is then split further into CLANG_VERSION_MAJOR and CLANG_VERSION_MINOR. Today, these resolve to 4 and 0, respectively. 5. If CLANG_VERSION matches a regexp with three version components, then CLANG_VERSION_PATCHLEVEL is extracted and the CLANG_HAS_VERSION_PATCHLEVEL variable is set to 1. Today, these values are 0 and 1, respectively. 6. The CLANG_VERSION_* variables (and CLANG_HAS_VERSION_PATCHLEVEL) are configured into [llvm/tools/clang/]include/clang/Basic/Version.inc verbatim by CMake. 7. In [llvm/tools/clang/]include/clang/Basic/Version.h, macros are defined conditionally, based on CLANG_HAS_VERSION_PATCHLEVEL, to compute CLANG_VERSION_STRING as either a two- or three-level version number. Today, this value is "4.0.0", because despite the patchlevel being 0, it was matched by regexp and is thus "HAS"ed by the preprocessor. This string is then used wherever Clang's "version" is needed [*].
[*] Including, notably, by compiler-rt, for computing its installation path.
This change collapses steps 2-5 by defaulting Clang to use LLVM's (non-string) version components for the Clang version (see [*] for why not PACKAGE_VERSION), and collapses steps 6 and 7 by simply writing CLANG_VERSION_STRING into Version.inc. The Clang version today always uses the patchlevel form, so the collapsed Version.inc does not have logic for a version without a patch level.
Historically speaking, this technique began with the VER file in r82085 (which survives in the form of the regexp in #3). The major, minor, and patchlevel versions were introduced by r106863 (which remains in #4-6). The VER file itself was deleted in favor of the LLVM version number in r106914. On the LLVM side, the individual LLVM_VERSION_MAJOR, LLVM_VERSION_MINOR, and PACKAGE_VERSION weren't introduced for nearly two more years, until r150405.
llvm-svn: 281666
show more ...
|
#
f333de37 |
| 07-Sep-2016 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
OpenCL: Defining __ENDIAN_LITTLE__ and fix target endianness
OpenCL requires __ENDIAN_LITTLE__ be set for little endian targets. The default for targets was also apparently big endian, so AMDGPU was
OpenCL: Defining __ENDIAN_LITTLE__ and fix target endianness
OpenCL requires __ENDIAN_LITTLE__ be set for little endian targets. The default for targets was also apparently big endian, so AMDGPU was incorrectly reported as big endian. Set this from the triple so targets don't have another place to set the endianness.
llvm-svn: 280787
show more ...
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1 |
|
#
7996340d |
| 21-Jul-2016 |
Yaron Keren <yaron.keren@gmail.com> |
Provide __GLIBCXX_TYPE_INT_N_0 and __GLIBCXX_BITSIZE_INT_N_0 when in C++ gnu language extensions. These are used by libstdc++ <type_traits> for is_integral<__int128>. Addresses http://llvm.org/pr231
Provide __GLIBCXX_TYPE_INT_N_0 and __GLIBCXX_BITSIZE_INT_N_0 when in C++ gnu language extensions. These are used by libstdc++ <type_traits> for is_integral<__int128>. Addresses http://llvm.org/pr23156.
llvm-svn: 276252
show more ...
|
#
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 ...
|
#
c9d336e5 |
| 23-Jun-2016 |
Rafael Espindola <rafael.espindola@gmail.com> |
Restructure the propagation of -fPIC/-fPIE.
The PIC and PIE levels are not independent. In fact, if PIE is defined it is always the same as PIC.
This is clear in the driver where ParsePICArgs retur
Restructure the propagation of -fPIC/-fPIE.
The PIC and PIE levels are not independent. In fact, if PIE is defined it is always the same as PIC.
This is clear in the driver where ParsePICArgs returns a PIC level and a IsPIE boolean. Unfortunately that is currently lost and we pass two redundant levels down the pipeline.
This patch keeps a bool and a PIC level all the way down to codegen.
llvm-svn: 273566
show more ...
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
18c48526 |
| 27-May-2016 |
Alexey Bataev <a.bataev@hotmail.com> |
[OPENMP] Fixed processing of '-fopenmp-version=' option and test.
llvm-svn: 270962
|
#
c6bd8917 |
| 26-May-2016 |
Alexey Bataev <a.bataev@hotmail.com> |
[OPENMP] Add option '-fopenmp-version=[31|40|45]' allowing choosing OpenMP version.
If '-fopenmp' option is provided '-fopenmp-version=' allows to control, which version of OpenMP must be supported.
[OPENMP] Add option '-fopenmp-version=[31|40|45]' allowing choosing OpenMP version.
If '-fopenmp' option is provided '-fopenmp-version=' allows to control, which version of OpenMP must be supported. Currently it affects only the value of _OPENMP define.
llvm-svn: 270838
show more ...
|
#
3bfedcff |
| 26-May-2016 |
Alexey Bataev <a.bataev@hotmail.com> |
[OPENMP] Set '_OPENMP' macro to '201511' value to reflect support for OpenMP 4.5.
According to OpenMP 4.5 the _OPENMP macro name is defined to have the decimal value yyyymm where yyyy and mm are the
[OPENMP] Set '_OPENMP' macro to '201511' value to reflect support for OpenMP 4.5.
According to OpenMP 4.5 the _OPENMP macro name is defined to have the decimal value yyyymm where yyyy and mm are the year and month designations of the version of the OpenMP API that the implementation supports. Clang supports OpenMP 4.5 so updated value of _OPENMP macro to 201511.
llvm-svn: 270822
show more ...
|
#
91f6f07b |
| 23-May-2016 |
Justin Lebar <jlebar@google.com> |
[CUDA] Add -fcuda-approx-transcendentals flag.
Summary: This lets us emit e.g. sin.approx.f32. See http://docs.nvidia.com/cuda/parallel-thread-execution/#floating-point-instructions-sin
Reviewers:
[CUDA] Add -fcuda-approx-transcendentals flag.
Summary: This lets us emit e.g. sin.approx.f32. See http://docs.nvidia.com/cuda/parallel-thread-execution/#floating-point-instructions-sin
Reviewers: rnk
Subscribers: tra, cfe-commits
Differential Revision: http://reviews.llvm.org/D20493
llvm-svn: 270484
show more ...
|
#
39cf40f6 |
| 16-May-2016 |
Yaxun Liu <Yaxun.Liu@amd.com> |
[OpenCL] Add supported OpenCL extensions to target info.
Add supported OpenCL extensions to target info. It serves as default values to save the users of the burden setting each supported extensions
[OpenCL] Add supported OpenCL extensions to target info.
Add supported OpenCL extensions to target info. It serves as default values to save the users of the burden setting each supported extensions and optional core features in command line.
Re-commit after fixing build error due to missing override attribute.
Differential Revision: http://reviews.llvm.org/D19484
llvm-svn: 269670
show more ...
|
#
fa1df45c |
| 13-May-2016 |
Yaxun Liu <Yaxun.Liu@amd.com> |
Revert "[OpenCL] Add supported OpenCL extensions to target info."
Revert r269431 due to build failure caused by warning msg:
llvm/tools/clang/lib/Basic/Targets.cpp:2090:9: error: 'setSupportedOpe
Revert "[OpenCL] Add supported OpenCL extensions to target info."
Revert r269431 due to build failure caused by warning msg:
llvm/tools/clang/lib/Basic/Targets.cpp:2090:9: error: 'setSupportedOpenCLOpts' overrides a member function but is not marked 'override' [-Werror,-Winconsistent-missing-override] void setSupportedOpenCLOpts() {
llvm-svn: 269435
show more ...
|
#
64936ce9 |
| 13-May-2016 |
Yaxun Liu <Yaxun.Liu@amd.com> |
[OpenCL] Add supported OpenCL extensions to target info.
Add supported OpenCL extensions to target info. It serves as default values to save the users of the burden setting each supported extensions
[OpenCL] Add supported OpenCL extensions to target info.
Add supported OpenCL extensions to target info. It serves as default values to save the users of the burden setting each supported extensions and optional core features in command line.
Differential Revision: http://reviews.llvm.org/D19484
llvm-svn: 269431
show more ...
|
#
382d3553 |
| 26-Apr-2016 |
Yaxun Liu <Yaxun.Liu@amd.com> |
[OpenCL] Add predefined macros.
OpenCL spec requires __OPENCL_C_VERSION__ to be defined based on -cl-std option. This patch implements that.
The patch also defines __FAST_RELAXED_MATH__ based on -c
[OpenCL] Add predefined macros.
OpenCL spec requires __OPENCL_C_VERSION__ to be defined based on -cl-std option. This patch implements that.
The patch also defines __FAST_RELAXED_MATH__ based on -cl-fast-relaxed-math option.
Also fixed a test using -std=c99 for OpenCL program. Limit allowed language standard of OpenCL to be OpenCL standards.
Differential Revision: http://reviews.llvm.org/D19071
llvm-svn: 267590
show more ...
|
#
f828bba5 |
| 24-Mar-2016 |
JF Bastien <jfb@google.com> |
NFC: clarify comment on lock-free macros
Used by both libstdc++ and libc++.
llvm-svn: 264226
|
#
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 ...
|
#
b214cbc7 |
| 04-Mar-2016 |
James Y Knight <jyknight@google.com> |
Make TargetInfo store an actual DataLayout instead of a string.
Use it to calculate UserLabelPrefix, instead of specifying it (often incorrectly).
Note that the *actual* user label prefix has alway
Make TargetInfo store an actual DataLayout instead of a string.
Use it to calculate UserLabelPrefix, instead of specifying it (often incorrectly).
Note that the *actual* user label prefix has always come from the DataLayout, and is handled within LLVM. The main thing clang's TargetInfo::UserLabelPrefix did was to set the #define value. Having these be different from each-other is just silly.
Differential Revision: http://reviews.llvm.org/D17183
llvm-svn: 262737
show more ...
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3, llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1, llvmorg-3.7.1, llvmorg-3.7.1-rc2 |
|
#
8601733c |
| 17-Nov-2015 |
Artem Belevich <tra@google.com> |
[CUDA] Make CUDA compilation usable by default.
Currently clang requires several additional command line options in order to enable new features needed during CUDA compilation. This patch makes thes
[CUDA] Make CUDA compilation usable by default.
Currently clang requires several additional command line options in order to enable new features needed during CUDA compilation. This patch makes these options default.
* Automatically include cuda_runtime.h if we've found a valid CUDA installation. * Disable automatic CUDA header inclusion during unit tests. * Added test case for command line construction. * Enabled target overloads and relaxed call checks that are needed in order to include CUDA headers. * Added CUDA-7.5 installation path to the CUDA installation search list. * Define __CUDA__ macro to indicate CUDA compilation.
llvm-svn: 253389
show more ...
|
Revision tags: llvmorg-3.7.1-rc1 |
|
#
28ea04fc |
| 10-Nov-2015 |
John McCall <rjmccall@apple.com> |
Define __unsafe_unretained and __autoreleasing in ObjC GC mode.
This was an accidental regression from the MRC __weak patch.
llvm-svn: 252668
|
#
738d48d5 |
| 02-Nov-2015 |
Reid Kleckner <rnk@google.com> |
Sink some PTHManager includes out of Preprocessor.h
This reduces the number of .cpp files needed to be rebuilt after touching OnDiskHashTable from 120 to 21 for me.
llvm-svn: 251810
|
#
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 ...
|
#
3fa73f36 |
| 22-Oct-2015 |
Richard Smith <richard-llvm@metafoo.co.uk> |
[coroutines] Add feature-test macro for coroutines, defined to 1 to indicate the implementation is incomplete.
llvm-svn: 250982
|
#
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 ...
|