brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.9 KiB · b429fb0 Raw
130 lines · plain
1# This file sets up a CMakeCache for the simple VE build.2#3# VE is a CPU with vector engine.  But it is a connected to a host CPU as4# an accelerator.  So, we compile programs for VE on a host using clang/llvm5# as a cross compiler.  Therefore, the purpose of this cache file is to6# compile clang/llvm supporting both targets.7#8# Configure:9#   cmake -G Ninja -DCMAKE_BUILD_TYPE=Release10#       -C <llvm_src_root>/clang/cmake/caches/VectorEngine.cmake11#       <llvm_src_root>/llvm-project/llvm12# Build:13#   ninja14#15 16# Disable ZLIB, and ZSTD for VE since there is no pre-compiled libraries.17set(LLVM_ENABLE_ZLIB OFF CACHE BOOL "")18set(LLVM_ENABLE_ZSTD OFF CACHE BOOL "")19 20# Enable per-target runtimes directory21set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR On CACHE BOOL "")22 23# The lld is not supported for VE yet.24set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra" CACHE STRING "")25set(LLVM_ENABLE_RUNTIMES "compiler-rt;libcxx;libcxxabi;libunwind;openmp" CACHE STRING "")26 27# Compile for X86 and VE28set(LLVM_TARGETS_TO_BUILD "X86;VE" CACHE STRING "")29 30# Not use default here to use RUNTIMES_x86_64-unknown-linux-gnu_* variables.31set(LLVM_BUILTIN_TARGETS "x86_64-unknown-linux-gnu;ve-unknown-linux-gnu" CACHE STRING "")32set(LLVM_RUNTIME_TARGETS "x86_64-unknown-linux-gnu;ve-unknown-linux-gnu" CACHE STRING "")33 34# For the case of X86, we don't want to test compiler-rt for x86,35# so disable them as much as possible.36set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_BUILTINS ON CACHE BOOL "")37set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_CRT OFF CACHE BOOL "")38set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "")39set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "")40set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_LIBFUZZER OFF CACHE BOOL "")41set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_CTX_PROFILE OFF CACHE BOOL "")42set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_PROFILE OFF CACHE BOOL "")43set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_MEMPROF OFF CACHE BOOL "")44set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_ORC OFF CACHE BOOL "")45set(RUNTIMES_x86_64-unknown-linux-gnu_COMPILER_RT_BUILD_GWP_ASAN OFF CACHE BOOL "")46 47# VE supports builtins, crt, and profile only.48set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_BUILTINS ON CACHE BOOL "")49set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_CRT ON CACHE BOOL "")50set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_SANITIZERS OFF CACHE BOOL "")51set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_XRAY OFF CACHE BOOL "")52set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_LIBFUZZER OFF CACHE BOOL "")53set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_PROFILE ON CACHE BOOL "")54set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_CTX_PROFILE OFF CACHE BOOL "")55set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_MEMPROF OFF CACHE BOOL "")56set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_ORC OFF CACHE BOOL "")57set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_BUILD_GWP_ASAN OFF CACHE BOOL "")58 59# VE uses builtins from Compiler-RT.60set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_USE_BUILTINS_LIBRARY TRUE CACHE BOOL "")61 62# VE uses libunwind and Compiler-RT from libcxxabi.63set(RUNTIMES_ve-unknown-linux-gnu_LIBCXXABI_USE_LLVM_UNWINDER TRUE CACHE BOOL "")64set(RUNTIMES_ve-unknown-linux-gnu_LIBCXXABI_USE_COMPILER_RT TRUE CACHE BOOL "")65 66# VE uses Compiler-RT from libcxx.67set(RUNTIMES_ve-unknown-linux-gnu_LIBCXX_USE_COMPILER_RT TRUE CACHE BOOL "")68 69# Pretended standalone build for OpenMP since OpenMP doesn't support70# LLVM_ENABLE_PER_TARGET_RUNTIME_DIR yet.71#   - Use OPENMP_STANDALONE_BUILD72#   - Define OPENMP_LIBDIR_SUFFIX to pretend per-target openmp directory73#   - Define OPENMP_LLVM_TOOLS_DIR for test74set(RUNTIMES_x86_64-unknown-linux-gnu_OPENMP_STANDALONE_BUILD ON CACHE BOOL "")75set(RUNTIMES_ve-unknown-linux-gnu_OPENMP_STANDALONE_BUILD ON CACHE BOOL "")76 77# Specify LIBDIR_SUFFIX for OpenMP to install them at following directories.78#   install/lib/clang/${VERSION}/lib/x86_64-unknown-linux-gnu79#   install/lib/clang/${VERSION}/lib/ve-unknown-linux-gnu80set(RUNTIMES_x86_64-unknown-linux-gnu_OPENMP_LIBDIR_SUFFIX "/x86_64-unknown-linux-gnu" CACHE STRING "")81set(RUNTIMES_ve-unknown-linux-gnu_OPENMP_LIBDIR_SUFFIX "/ve-unknown-linux-gnu" CACHE STRING "")82 83# Specify OPENMP_LLVM_TOOLS_DIR for test84set(RUNTIMES_x86_64-unknown-linux-gnu_OPENMP_LLVM_TOOLS_DIR "${CMAKE_BINARY_DIR}/bin" CACHE STRING "")85set(RUNTIMES_ve-unknown-linux-gnu_OPENMP_LLVM_TOOLS_DIR "${CMAKE_BINARY_DIR}/bin" CACHE STRING "")86 87# VE doesn't support libomptarget.  Disable it for x86_64 also.88set(RUNTIMES_x86_64-unknown-linux-gnu_OPENMP_ENABLE_LIBOMPTARGET FALSE CACHE BOOL "")89set(RUNTIMES_ve-unknown-linux-gnu_OPENMP_ENABLE_LIBOMPTARGET FALSE CACHE BOOL "")90 91# VE requires -lrt flag for shm_open.92set(RUNTIMES_ve-unknown-linux-gnu_LIBOMP_HAVE_SHM_OPEN_WITH_LRT TRUE CACHE BOOL "")93 94# Compiler flags for testing95set(RUNTIMES_ve-unknown-linux-gnu_COMPILER_RT_TEST_COMPILER_CFLAGS "--target=ve-unknown-linux-gnu" CACHE BOOL "")96set(RUNTIMES_ve-unknown-linux-gnu_LIBCXXABI_TEST_COMPILER_CFLAGS "--target=ve-unknown-linux-gnu" CACHE BOOL "")97set(RUNTIMES_ve-unknown-linux-gnu_LIBCXX_TEST_COMPILER_CFLAGS "--target=ve-unknown-linux-gnu" CACHE BOOL "")98set(RUNTIMES_ve-unknown-linux-gnu_LIBUNWIND_TEST_COMPILER_CFLAGS "--target=ve-unknown-linux-gnu" CACHE BOOL "")99set(RUNTIMES_ve-unknown-linux-gnu_OPENMP_TEST_OPENMP_FLAGS "--target=ve-unknown-linux-gnu -fopenmp -pthread -lrt -ldl -Wl,-rpath,${CMAKE_BINARY_DIR}/lib/ve-unknown-linux-gnu" CACHE BOOL "")100 101# setup toolchain102set(LLVM_INSTALL_TOOLCHAIN_ONLY ON CACHE BOOL "")103set(LLVM_TOOLCHAIN_TOOLS104  dsymutil105  llc106  llvm-ar107  llvm-cxxfilt108  llvm-cov109  llvm-dwarfdump110  llvm-link111  llvm-nm112  llvm-objdump113  llvm-profdata114  llvm-ranlib115  llvm-readelf116  llvm-readobj117  llvm-size118  llvm-symbolizer119  opt120  CACHE STRING "")121 122set(LLVM_DISTRIBUTION_COMPONENTS123  clang124  clang-format125  clang-resource-headers126  builtins127  runtimes128  ${LLVM_TOOLCHAIN_TOOLS}129  CACHE STRING "")130