diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt index 672400ba2066..488148d843e2 100644 --- a/llvm/CMakeLists.txt +++ b/llvm/CMakeLists.txt @@ -1169,13 +1169,16 @@ if(NOT DEFINED ARM_TOOLCHAIN_ID) endif() # End downstream change: #124 -# Configure the three LLVM configuration header files. +# Configure the LLVM configuration header files. configure_file( ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/config.h.cmake ${LLVM_INCLUDE_DIR}/llvm/Config/config.h) configure_file( ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/llvm-config.h.cmake ${LLVM_INCLUDE_DIR}/llvm/Config/llvm-config.h) +configure_file( + ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/Targets.h.cmake + ${LLVM_INCLUDE_DIR}/llvm/Config/Targets.h) configure_file( ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/abi-breaking.h.cmake ${LLVM_INCLUDE_DIR}/llvm/Config/abi-breaking.h) diff --git a/llvm/include/llvm/Config/Targets.h.cmake b/llvm/include/llvm/Config/Targets.h.cmake new file mode 100644 index 000000000000..5bab635edc54 --- /dev/null +++ b/llvm/include/llvm/Config/Targets.h.cmake @@ -0,0 +1,90 @@ +/*===------- llvm/Config/Targets.h - LLVM target checks -----------*- C -*-===*/ +/* */ +/* Part of the LLVM Project, under the Apache License v2.0 with LLVM */ +/* Exceptions. */ +/* See https://llvm.org/LICENSE.txt for license information. */ +/* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception */ +/* */ +/*===----------------------------------------------------------------------===*/ + +/* This file enables clients to know whether specific targets are enabled. */ + +#ifndef LLVM_CONFIG_TARGETS_H +#define LLVM_CONFIG_TARGETS_H + +/* Define if the AArch64 target is built in */ +#cmakedefine01 LLVM_HAS_AARCH64_TARGET + +/* Define if the AMDGPU target is built in */ +#cmakedefine01 LLVM_HAS_AMDGPU_TARGET + +/* Define if the ARC target is built in */ +#cmakedefine01 LLVM_HAS_ARC_TARGET + +/* Define if the ARM target is built in */ +#cmakedefine01 LLVM_HAS_ARM_TARGET + +/* Define if the AVR target is built in */ +#cmakedefine01 LLVM_HAS_AVR_TARGET + +/* Define if the BPF target is built in */ +#cmakedefine01 LLVM_HAS_BPF_TARGET + +/* Define if the CSKY target is built in */ +#cmakedefine01 LLVM_HAS_CSKY_TARGET + +/* Define if the DirectX target is built in */ +#cmakedefine01 LLVM_HAS_DIRECTX_TARGET + +/* Define if the Hexagon target is built in */ +#cmakedefine01 LLVM_HAS_HEXAGON_TARGET + +/* Define if the Lanai target is built in */ +#cmakedefine01 LLVM_HAS_LANAI_TARGET + +/* Define if the LoongArch target is built in */ +#cmakedefine01 LLVM_HAS_LOONGARCH_TARGET + +/* Define if the M68k target is built in */ +#cmakedefine01 LLVM_HAS_M68K_TARGET + +/* Define if the Mips target is built in */ +#cmakedefine01 LLVM_HAS_MIPS_TARGET + +/* Define if the MSP430 target is built in */ +#cmakedefine01 LLVM_HAS_MSP430_TARGET + +/* Define if the NVPTX target is built in */ +#cmakedefine01 LLVM_HAS_NVPTX_TARGET + +/* Define if the PowerPC target is built in */ +#cmakedefine01 LLVM_HAS_POWERPC_TARGET + +/* Define if the RISCV target is built in */ +#cmakedefine01 LLVM_HAS_RISCV_TARGET + +/* Define if the Sparc target is built in */ +#cmakedefine01 LLVM_HAS_SPARC_TARGET + +/* Define if the SPIRV target is built in */ +#cmakedefine01 LLVM_HAS_SPIRV_TARGET + +/* Define if the SystemZ target is built in */ +#cmakedefine01 LLVM_HAS_SYSTEMZ_TARGET + +/* Define if the VE target is built in */ +#cmakedefine01 LLVM_HAS_VE_TARGET + +/* Define if the WebAssembly target is built in */ +#cmakedefine01 LLVM_HAS_WEBASSEMBLY_TARGET + +/* Define if the X86 target is built in */ +#cmakedefine01 LLVM_HAS_X86_TARGET + +/* Define if the XCore target is built in */ +#cmakedefine01 LLVM_HAS_XCORE_TARGET + +/* Define if the Xtensa target is built in */ +#cmakedefine01 LLVM_HAS_XTENSA_TARGET + +#endif diff --git a/llvm/include/llvm/Config/llvm-config.h.cmake b/llvm/include/llvm/Config/llvm-config.h.cmake index 4230eb850fa4..97f996338bc0 100644 --- a/llvm/include/llvm/Config/llvm-config.h.cmake +++ b/llvm/include/llvm/Config/llvm-config.h.cmake @@ -54,81 +54,6 @@ /* LLVM name for the native target MCA init function, if available */ #cmakedefine LLVM_NATIVE_TARGETMCA LLVMInitialize${LLVM_NATIVE_ARCH}TargetMCA -/* Define if the AArch64 target is built in */ -#cmakedefine01 LLVM_HAS_AARCH64_TARGET - -/* Define if the AMDGPU target is built in */ -#cmakedefine01 LLVM_HAS_AMDGPU_TARGET - -/* Define if the ARC target is built in */ -#cmakedefine01 LLVM_HAS_ARC_TARGET - -/* Define if the ARM target is built in */ -#cmakedefine01 LLVM_HAS_ARM_TARGET - -/* Define if the AVR target is built in */ -#cmakedefine01 LLVM_HAS_AVR_TARGET - -/* Define if the BPF target is built in */ -#cmakedefine01 LLVM_HAS_BPF_TARGET - -/* Define if the CSKY target is built in */ -#cmakedefine01 LLVM_HAS_CSKY_TARGET - -/* Define if the DirectX target is built in */ -#cmakedefine01 LLVM_HAS_DIRECTX_TARGET - -/* Define if the Hexagon target is built in */ -#cmakedefine01 LLVM_HAS_HEXAGON_TARGET - -/* Define if the Lanai target is built in */ -#cmakedefine01 LLVM_HAS_LANAI_TARGET - -/* Define if the LoongArch target is built in */ -#cmakedefine01 LLVM_HAS_LOONGARCH_TARGET - -/* Define if the M68k target is built in */ -#cmakedefine01 LLVM_HAS_M68K_TARGET - -/* Define if the Mips target is built in */ -#cmakedefine01 LLVM_HAS_MIPS_TARGET - -/* Define if the MSP430 target is built in */ -#cmakedefine01 LLVM_HAS_MSP430_TARGET - -/* Define if the NVPTX target is built in */ -#cmakedefine01 LLVM_HAS_NVPTX_TARGET - -/* Define if the PowerPC target is built in */ -#cmakedefine01 LLVM_HAS_POWERPC_TARGET - -/* Define if the RISCV target is built in */ -#cmakedefine01 LLVM_HAS_RISCV_TARGET - -/* Define if the Sparc target is built in */ -#cmakedefine01 LLVM_HAS_SPARC_TARGET - -/* Define if the SPIRV target is built in */ -#cmakedefine01 LLVM_HAS_SPIRV_TARGET - -/* Define if the SystemZ target is built in */ -#cmakedefine01 LLVM_HAS_SYSTEMZ_TARGET - -/* Define if the VE target is built in */ -#cmakedefine01 LLVM_HAS_VE_TARGET - -/* Define if the WebAssembly target is built in */ -#cmakedefine01 LLVM_HAS_WEBASSEMBLY_TARGET - -/* Define if the X86 target is built in */ -#cmakedefine01 LLVM_HAS_X86_TARGET - -/* Define if the XCore target is built in */ -#cmakedefine01 LLVM_HAS_XCORE_TARGET - -/* Define if the Xtensa target is built in */ -#cmakedefine01 LLVM_HAS_XTENSA_TARGET - /* Define if this is Unixish platform */ #cmakedefine LLVM_ON_UNIX ${LLVM_ON_UNIX} diff --git a/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn b/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn index 4a7cbe4af9e9..36ec4a2c6fae 100644 --- a/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn @@ -74,7 +74,10 @@ write_cmake_config("abi-breaking") { } write_cmake_config("config") { - public_deps = [ ":llvm-config" ] + public_deps = [ + ":Targets", + ":llvm-config", + ] input = "config.h.cmake" output = "$target_gen_dir/config.h" @@ -384,6 +387,12 @@ write_cmake_config("llvm-config") { } else { values += [ "LLVM_FORCE_ENABLE_STATS=" ] } +} + +write_cmake_config("Targets") { + input = "Targets.h.cmake" + output = "$target_gen_dir/Targets.h" + values = [] if (llvm_build_AArch64) { values += [ "LLVM_HAS_AARCH64_TARGET=1" ] diff --git a/mlir/lib/Target/LLVM/NVVM/Target.cpp b/mlir/lib/Target/LLVM/NVVM/Target.cpp index f8420385cbec..914a34969661 100644 --- a/mlir/lib/Target/LLVM/NVVM/Target.cpp +++ b/mlir/lib/Target/LLVM/NVVM/Target.cpp @@ -27,7 +27,7 @@ #include "mlir/Target/LLVMIR/Export.h" #include "llvm/ADT/ScopeExit.h" -#include "llvm/Config/llvm-config.h" +#include "llvm/Config/Targets.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/FileUtilities.h" #include "llvm/Support/FormatVariadic.h" diff --git a/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp b/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp index cae713a1ce1d..af0af89c7d07 100644 --- a/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp +++ b/mlir/unittests/Target/LLVM/SerializeNVVMTarget.cpp @@ -19,7 +19,7 @@ #include "mlir/Target/LLVMIR/Dialect/NVVM/NVVMToLLVMIRTranslation.h" #include "llvm/Bitcode/BitcodeWriter.h" -#include "llvm/Config/llvm-config.h" // for LLVM_HAS_NVPTX_TARGET +#include "llvm/Config/Targets.h" // for LLVM_HAS_NVPTX_TARGET #include "llvm/IRReader/IRReader.h" #include "llvm/Support/MemoryBufferRef.h" #include "llvm/Support/Process.h"