llvm-project/clang/lib/Driver/ToolChains
Louis Dionne ca495e36c1 [clang] Add a new flag -fexperimental-library to enable experimental library features
Based on the discussion at [1], this patch adds a Clang flag called
-fexperimental-library that controls whether experimental library
features are provided in libc++. In essence, it links against the
experimental static archive provided by libc++ and defines a feature
that can be picked up by libc++ to enable experimental features.

This ensures that users don't start depending on experimental
(and hence unstable) features unknowingly.

[1]: https://discourse.llvm.org/t/rfc-a-compiler-flag-to-enable-experimental-unstable-language-and-library-features

Differential Revision: https://reviews.llvm.org/D121141
2022-07-19 15:04:58 -04:00
..
Arch [Driver][ARM][AArch64] Use err_drv_unsupported_option_argument for -march=/-mcpu=/-mtune= diagnostics 2022-06-28 16:01:30 -07:00
AIX.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
AIX.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
AMDGPU.cpp [clang] Don't use Optional::getValue (NFC) 2022-06-20 22:59:26 -07:00
AMDGPU.h Revert "[AMDPU][Sanitizer] Refactor sanitizer options handling for AMDGPU Toolchain" 2022-04-02 13:25:50 +00:00
AMDGPUOpenMP.cpp [clang] Convert for_each to range-based for loops (NFC) 2022-06-10 22:39:45 -07:00
AMDGPUOpenMP.h Revert "[AMDPU][Sanitizer] Refactor sanitizer options handling for AMDGPU Toolchain" 2022-04-02 13:25:50 +00:00
AVR.cpp [clang] Use value instead of getValue (NFC) 2022-07-13 23:39:33 -07:00
AVR.h [Driver][AVR] Fix warn_drv_avr_stdlib_not_linked condition 2022-03-28 10:27:16 -07:00
Ananas.cpp [Driver] Don't passs --dynamic-linker in -r mode 2022-07-16 20:13:24 -04:00
Ananas.h
BareMetal.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
BareMetal.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
CSKYToolChain.cpp [Clang][CSKY] Add the CSKY target and compiler driver 2022-04-06 11:37:37 +08:00
CSKYToolChain.h [CSKY] Remove redundant enabling of IAS for Clang, NFC 2022-04-11 22:34:44 -04:00
Clang.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
Clang.h [Clang] Introduce clang-offload-packager tool to bundle device files 2022-05-11 09:39:13 -04:00
CloudABI.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
CloudABI.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
CommonArgs.cpp [OpenMP] Do not link static library with `-nogpulib` 2022-07-12 08:15:15 -04:00
CommonArgs.h Update link job for flang on windows 2022-06-20 07:25:10 +00:00
Contiki.cpp
Contiki.h
CrossWindows.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
CrossWindows.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
Cuda.cpp [CUDA] Stop adding CUDA features twice 2022-06-29 09:34:09 -04:00
Cuda.h [CUDA] Stop adding CUDA features twice 2022-06-29 09:34:09 -04:00
Darwin.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
Darwin.h [Clang] Add DriverKit support 2022-05-13 20:34:57 +01:00
DragonFly.cpp [Driver] Don't passs --dynamic-linker in -r mode 2022-07-16 20:13:24 -04:00
DragonFly.h
Flang.cpp [flang][driver] Add support for `-O{0|1|2|3}` 2022-06-27 10:06:14 +00:00
Flang.h
FreeBSD.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
FreeBSD.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
Fuchsia.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
Fuchsia.h [Driver] Make -moutline-atomics default for aarch64-fuchsia targets 2022-03-28 16:51:55 -07:00
Gnu.cpp [clang] Use value instead of getValue (NFC) 2022-07-13 23:39:33 -07:00
Gnu.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
HIPAMD.cpp [clang] Don't use Optional::getValue (NFC) 2022-06-20 22:59:26 -07:00
HIPAMD.h [clang][HIP] Updating driver to enable archive/bitcode to bitcode linking when targeting HIPAMD toolchain 2022-04-21 09:24:33 -07:00
HIPSPV.cpp [HIPSPV][2/4] Add HIPSPV tool chain 2021-12-14 10:22:38 -08:00
HIPSPV.h [HIPSPV][2/4] Add HIPSPV tool chain 2021-12-14 10:22:38 -08:00
HIPUtility.cpp [clang-offload-bundler] add -input/-output options 2022-04-05 11:13:01 -04:00
HIPUtility.h [HIPSPV][1/4] Refactor HIP tool chain 2021-12-13 10:50:25 -05:00
HLSL.cpp [HLSL] Enable half type for hlsl. 2022-06-23 12:56:26 -07:00
HLSL.h [HLSL][clang][Driver] Parse target profile early to update Driver::TargetTriple. 2022-05-31 13:23:30 -07:00
Haiku.cpp [Driver] Detect Debian hack g++-multiarch-incdir.diff to simplify addLibStdCXXIncludePaths call sites 2021-03-21 17:33:31 -07:00
Haiku.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
Hexagon.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
Hexagon.h [Clang] Move Hexagon / VE IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC 2022-04-13 23:56:09 -04:00
Hurd.cpp Hurd: Clean up Debian multiarch /usr/include/<triplet> 2021-04-27 13:36:12 -07:00
Hurd.h hurd: Detect libstdc++ include paths on Debian Hurd i386 2021-04-27 13:04:41 -07:00
InterfaceStubs.cpp [ifs][elfabi] Merge llvm-ifs/elfabi tools 2021-07-19 11:23:19 -07:00
InterfaceStubs.h
Lanai.h [Driver] Move Lanai IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC 2022-04-15 03:55:59 -04:00
Linux.cpp [clang][flang] Disable defaulting to `-fpie` for LLVM Flang 2022-06-29 07:53:06 +00:00
Linux.h [HIP] Add HIP runtime library arguments for linker 2022-04-28 11:12:23 -04:00
MSP430.cpp [Driver] Prepend - to option name in err_drv_unsupported_option_argument diagnostic 2022-04-10 01:44:53 -07:00
MSP430.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
MSVC.cpp Update link job for flang on windows 2022-06-20 07:25:10 +00:00
MSVC.h [HIP] Add HIP runtime library arguments for linker 2022-04-28 11:12:23 -04:00
MinGW.cpp [clang] [MinGW] Fix paths on Gentoo 2022-07-08 00:37:08 +03:00
MinGW.h [clang] [MinGW] Fix paths on Gentoo 2022-07-08 00:37:08 +03:00
Minix.cpp [Driver][Minix] -r: imply -nostdlib like GCC 2022-06-25 16:16:38 -04:00
Minix.h
MipsLinux.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
MipsLinux.h
Myriad.cpp [Driver] Detect Debian hack g++-multiarch-incdir.diff to simplify addLibStdCXXIncludePaths call sites 2021-03-21 17:33:31 -07:00
Myriad.h
NaCl.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
NaCl.h
NetBSD.cpp [Driver] Don't passs --dynamic-linker in -r mode 2022-07-16 20:13:24 -04:00
NetBSD.h
OpenBSD.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
OpenBSD.h [Driver][OpenBSD] Disable unwind tables on Arm 2022-03-09 20:33:16 -05:00
PPCFreeBSD.cpp [PowerPC] [Clang] Enable Intel intrinsics support on FreeBSD 2021-11-22 20:42:10 +00:00
PPCFreeBSD.h [PowerPC] [Clang] Enable Intel intrinsics support on FreeBSD 2021-11-22 20:42:10 +00:00
PPCLinux.cpp [clang][driver] Fix float128 diagnostics with glibc >= 2.32 2022-03-08 15:49:01 +01:00
PPCLinux.h [PowerPC] Emit warning for ieeelongdouble on older GNU toolchain 2022-01-24 15:23:28 +08:00
PS4CPU.cpp [PS4] Driver: use correct --shared option 2022-04-21 08:19:42 -07:00
PS4CPU.h [PS4][NFC] Rename classes to align with prevailing practice 2022-04-20 08:35:52 -07:00
RISCVToolchain.cpp [RISCV][Driver] Add libm linking to `RISCVToolchain` for C++ 2022-07-06 00:52:26 +03:00
RISCVToolchain.h [RISCV] Remove redundant enabling of IAS for Clang, NFC 2022-04-04 23:44:49 -04:00
ROCm.h [HIP] Support code object v5 2022-02-04 09:55:08 -05:00
SPIRV.cpp [SPIR-V] Remove unused variable 2022-01-11 13:45:59 +00:00
SPIRV.h [Clang] Added options for integrated backend. 2022-05-25 12:07:33 +01:00
Solaris.cpp [Driver][Solaris] -r: imply -nostdlib like GCC 2022-04-28 00:19:45 -04:00
Solaris.h
TCE.cpp [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
TCE.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
VEToolchain.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
VEToolchain.h [Clang] Move Hexagon / VE IAS enabling to Generic_GCC::IsIntegratedAssemblerDefault, NFC 2022-04-13 23:56:09 -04:00
WebAssembly.cpp [clang] Add a new flag -fexperimental-library to enable experimental library features 2022-07-19 15:04:58 -04:00
WebAssembly.h [clang][driver][wasm] Support -stdlib=libstdc++ for WebAssembly 2022-02-03 16:37:52 +01:00
XCore.cpp [Clang] Move XCore specific options from Clang.cpp to XCore.cpp 2022-01-30 02:24:35 +00:00
XCore.h [Driver] Fix ToolChain::getSanitizerArgs 2021-11-11 17:17:08 -05:00
ZOS.cpp
ZOS.h [SystemZ/z/OS] Set DWARF version to 4 for z/OS. 2022-06-10 13:38:58 -04:00