Loading .gitignore +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ # Nested build directory /build* # External projects /cheetah #==============================================================================# # Explicit files to ignore (only matches one). #==============================================================================# Loading clang/CMakeLists.txt +12 −5 Original line number Diff line number Diff line Loading @@ -123,7 +123,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) endif() include_directories("${LLVM_BINARY_DIR}/include" "${LLVM_MAIN_INCLUDE_DIR}") message(STATUS "kitsune dirs: ${KITSUNE_SOURCE_DIR} ${KITSUNE_BINARY_DIR}") link_directories("${LLVM_LIBRARY_DIR}") set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) Loading Loading @@ -206,8 +205,6 @@ endif() # we can include cmake files from this directory. list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") add_subdirectory(kitsune) if(LLVM_ENABLE_LIBXML2) # Don't look for libxml if we're using MSan, since uninstrumented third party # code may call MSan interceptors like strlen, leading to false positives. Loading Loading @@ -310,7 +307,8 @@ if (NOT DEFINED MATCHED_ARCH OR "${CMAKE_MATCH_1}" LESS 35) "Default architecture for OpenMP offloading to Nvidia GPUs." FORCE) endif() set(CLANG_DEFAULT_TAPIR_RUNTIME "cilk" CACHE STRING # Changed as 'cilk' target is deprecated. set(CLANG_DEFAULT_TAPIR_RUNTIME "opencilk" CACHE STRING "Default Tapir runtime used by -ftapir.") set(CLANG_VENDOR ${PACKAGE_VENDOR} CACHE STRING Loading Loading @@ -875,6 +873,15 @@ if(CLANG_BUILT_STANDALONE) llvm_distribution_add_targets() endif() option(CLANG_ENABLE_KITSUNE "Enable Kitsune features in Clang." ON) if(CLANG_ENABLE_KITSUNE) add_subdirectory(kitsune) endif() configure_file( ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake ${CLANG_BINARY_DIR}/include/clang/Config/config.h) configure_file( ${CLANG_SOURCE_DIR}/include/clang/Config/kitsune.h.cmake ${CLANG_BINARY_DIR}/include/clang/Config/kitsune.h) clang/include/clang/Basic/DiagnosticDriverKinds.td +22 −33 Original line number Diff line number Diff line Loading @@ -488,37 +488,26 @@ def warn_drv_libstdcxx_not_found : Warning< def err_drv_cannot_mix_options : Error<"cannot specify '%1' along with '%0'">; // +----- kitsune FIXME: should probably use kitsune-centric naming here. def warn_cilkrts_missing_build_params : Warning< "'-ftapir=cilk' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_qthreads_missing_build_params : Warning< "'-ftapir=qthreads' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_realm_missing_build_params : Warning< "'-ftapir=realm' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_cuda_missing_build_params : Warning< "'-ftapir=cuda' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_opencl_missing_build_params : Warning< "'-ftapir=opencl' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; // FIXME: Probably the wrong group for this... def warn_kokkos_missing_build_params : Warning< "'-fkokkos' mode enabled but build configuration did not include support.">, InGroup<UnknownRuntime>; // -----+ def warn_drv_missing_cfg_file : Warning< "cannot find clang configuration file, %0, in support of option: %1.">; def err_drv_cannot_read_kitsune_cfg_file : Error< "cannot read clang configuration file, %0, in support of option: %1.">; // catching configuration issues at build is a pain w/out a ton of #ifdef // litter. we instead opt to warning users in cases where the options are // used but were not enabled at build time. def warn_drv_kokkos_disabled : Warning< "kokkos support was not enabled when clang was built.">; def warn_drv_openmp_target_disabled : Warning< "the openmp runtime ABI transform target was not enabled when clang was built.">; def warn_drv_qthreads_target_disabled: Warning< "the qthreads runtime ABI transform target was not enabled when clang was built.">; def warn_drv_realm_target_disabled: Warning< "the realm runtime ABI transform target was not enabled when clang was built.">; def warn_drv_cudatk_target_disabled: Warning< "the cuda toolkit runtime ABI transform target was not enabled when clang was built.">; def warn_drv_hip_target_disabled: Warning< "the hip runtime ABI transform target was not enabled when clang was built.">; def warn_drv_opencl_target_disabled: Warning< "the opencl toolkit runtime ABI transform target was not enabled when clang was built.">; } clang/include/clang/Config/config.h.cmake +5 −27 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ /* Directories clang will search for headers */ #define C_INCLUDE_DIRS "${C_INCLUDE_DIRS}" /* Directories clang will search for configuration files */ /* Directories clang will search for configuration files w/ kitsune+tapir extensions */ #cmakedefine CLANG_CONFIG_FILE_SYSTEM_DIR "${CLANG_CONFIG_FILE_SYSTEM_DIR}" #cmakedefine CLANG_CONFIG_FILE_USER_DIR "${CLANG_CONFIG_FILE_USER_DIR}" Loading Loading @@ -86,31 +86,9 @@ /* Spawn a new process clang.exe for the CC1 tool invocation, when necessary */ #cmakedefine01 CLANG_SPAWN_CC1 /* ===== kitsune-centric settings */ #cmakedefine01 KITSUNE_ENABLE_KOKKOS #define KITSUNE_KOKKOS_INCLUDE_DIR "${KOKKOS_INCLUDE_DIR}" #define KITSUNE_KOKKOS_LIBRARY_DIR "${KOKKOS_LIBRARY_DIR}" #define KITSUNE_KOKKOS_LINK_LIBS "${KOKKOS_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_CILKRTS #define KITSUNE_CILKRTS_LIBRARY_DIR "${CILKRTS_LIBRARY_DIR}" #define KITSUNE_CILKRTS_LINK_LIBS "${CILKRTS_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_QTHREADS #define KITSUNE_QTHREADS_LIBRARY_DIR "${QTHREADS_LIBRARY_DIR}" #define KITSUNE_QTHREADS_LINK_LIBS "${QTHREADS_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_REALM #define KITSUNE_REALM_LIBRARY_DIR "${REALM_LIBRARY_DIR}" #define KITSUNE_REALM_WRAPPER_LIBRARY_DIR "${REALM_WRAPPER_LIBRARY_DIR}" #define KITSUNE_REALM_LINK_LIBS "${REALM_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_OPENMP #define KITSUNE_OPENMP_LIBRARY_DIR "${OPENMP_LIBRARY_DIR}" #define KITSUNE_OPENMP_LINK_LIBS "${OPENMP_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_CUDA #define KITSUNE_CUDA_LIBRARY_DIR "${CUDA_LIBRARY_DIR}" #define KITSUNE_CUDA_LINK_LIBS "${CUDA_LINK_LIBS}" #cmakedefine01 CLANG_ENABLE_KITSUNE #if defined(CLANG_ENABLE_KITSUNE) #include "kitsune.h" #endif #endif clang/include/clang/Config/kitsune.h.cmake 0 → 100644 +48 −0 Original line number Diff line number Diff line /* * Copyright (c) 2020 Triad National Security, LLC * All rights reserved. * * This file is part of the kitsune/llvm project. It is released under * the LLVM license. */ #ifdef KITSUNE_CONFIG_H #error clang/Config/kitsune.h should only be included once. #else #define KITSUNE_CONFIG_H /* This shouldn't happen but could help us catch config issues. */ #ifndef CLANG_ENABLE_KITSUNE #error kitsune config included when CLANG_ENABLE_KITSUNE undefined. #endif #cmakedefine01 KITSUNE_ENABLE_KOKKOS_SUPPORT /* kitsune-centric cfg file search location */ #cmakedefine CLANG_CONFIG_FILE_KITSUNE_DIR "${CLANG_CONFIG_FILE_KITSUNE_DIR}" /* kitsune+tapir ABI/runtime codegen targets */ /* Note: The OpenCilk target is (now) always enabled */ #cmakedefine01 KITSUNE_ENABLE_OPENMP_TARGET #cmakedefine01 KITSUNE_ENABLE_QTHREADS_TARGET #cmakedefine01 KITSUNE_ENABLE_CUDATK_TARGET #cmakedefine01 KITSUNE_ENABLE_REALM_TARGET #cmakedefine01 KITSUNE_ENABLE_OPENCL_TARGET #cmakedefine01 KITSUNE_ENABLE_HIP_TARGET /* kitsune default kokkos configure (.cfg) filename */ #cmakedefine KITSUNE_KOKKOS_CFG_FILENAME "${KITSUNE_KOKKOS_CFG_FILENAME}" #cmakedefine KITSUNE_KOKKOS_EXTRA_LINK_FLAGS "${KITSUNE_KOKKOS_EXTRA_LINK_FLAGS}" #cmakedefine KITSUNE_KOKKOS_EXTRA_LINK_LIBS "${KITSUNE_KOKKOS_EXTRA_LINK_LIBS}" /* tapir default target-specific configure (.cfg) filenames */ #cmakedefine TAPIR_NONE_TARGET_CFG_FILENAME "${TAPIR_SERIAL_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_SERIAL_TARGET_CFG_FILENAME "${TAPIR_SERIAL_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_OPENCILK_TARGET_CFG_FILENAME "${TAPIR_OPENCILK_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_CUDA_TARGET_CFG_FILENAME "${TAPIR_CUDA_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_REALM_TARGET_CFG_FILENAME "${TAPIR_REALM_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_OPENMP_TARGET_CFG_FILENAME "${TAPIR_OPENMP_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_QTHREADS_TARGET_CFG_FILENAME "${TAPIR_QTHREADS_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_OPENCL_TARGET_CFG_FILENAME "${TAPIR_OPENCL_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_HIP_TARGET_CFG_FILENAME "${TAPIR_HIP_TARGET_CFG_FILENAME}" #endif Loading
.gitignore +3 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,9 @@ # Nested build directory /build* # External projects /cheetah #==============================================================================# # Explicit files to ignore (only matches one). #==============================================================================# Loading
clang/CMakeLists.txt +12 −5 Original line number Diff line number Diff line Loading @@ -123,7 +123,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR ) endif() include_directories("${LLVM_BINARY_DIR}/include" "${LLVM_MAIN_INCLUDE_DIR}") message(STATUS "kitsune dirs: ${KITSUNE_SOURCE_DIR} ${KITSUNE_BINARY_DIR}") link_directories("${LLVM_LIBRARY_DIR}") set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin ) Loading Loading @@ -206,8 +205,6 @@ endif() # we can include cmake files from this directory. list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") add_subdirectory(kitsune) if(LLVM_ENABLE_LIBXML2) # Don't look for libxml if we're using MSan, since uninstrumented third party # code may call MSan interceptors like strlen, leading to false positives. Loading Loading @@ -310,7 +307,8 @@ if (NOT DEFINED MATCHED_ARCH OR "${CMAKE_MATCH_1}" LESS 35) "Default architecture for OpenMP offloading to Nvidia GPUs." FORCE) endif() set(CLANG_DEFAULT_TAPIR_RUNTIME "cilk" CACHE STRING # Changed as 'cilk' target is deprecated. set(CLANG_DEFAULT_TAPIR_RUNTIME "opencilk" CACHE STRING "Default Tapir runtime used by -ftapir.") set(CLANG_VENDOR ${PACKAGE_VENDOR} CACHE STRING Loading Loading @@ -875,6 +873,15 @@ if(CLANG_BUILT_STANDALONE) llvm_distribution_add_targets() endif() option(CLANG_ENABLE_KITSUNE "Enable Kitsune features in Clang." ON) if(CLANG_ENABLE_KITSUNE) add_subdirectory(kitsune) endif() configure_file( ${CLANG_SOURCE_DIR}/include/clang/Config/config.h.cmake ${CLANG_BINARY_DIR}/include/clang/Config/config.h) configure_file( ${CLANG_SOURCE_DIR}/include/clang/Config/kitsune.h.cmake ${CLANG_BINARY_DIR}/include/clang/Config/kitsune.h)
clang/include/clang/Basic/DiagnosticDriverKinds.td +22 −33 Original line number Diff line number Diff line Loading @@ -488,37 +488,26 @@ def warn_drv_libstdcxx_not_found : Warning< def err_drv_cannot_mix_options : Error<"cannot specify '%1' along with '%0'">; // +----- kitsune FIXME: should probably use kitsune-centric naming here. def warn_cilkrts_missing_build_params : Warning< "'-ftapir=cilk' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_qthreads_missing_build_params : Warning< "'-ftapir=qthreads' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_realm_missing_build_params : Warning< "'-ftapir=realm' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_cuda_missing_build_params : Warning< "'-ftapir=cuda' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; def warn_opencl_missing_build_params : Warning< "'-ftapir=opencl' enabled but build configuration missing details for " "automatic argument generation. Target-centric link arguments must be" "provided on command line.">, InGroup<UnknownRuntime>; // FIXME: Probably the wrong group for this... def warn_kokkos_missing_build_params : Warning< "'-fkokkos' mode enabled but build configuration did not include support.">, InGroup<UnknownRuntime>; // -----+ def warn_drv_missing_cfg_file : Warning< "cannot find clang configuration file, %0, in support of option: %1.">; def err_drv_cannot_read_kitsune_cfg_file : Error< "cannot read clang configuration file, %0, in support of option: %1.">; // catching configuration issues at build is a pain w/out a ton of #ifdef // litter. we instead opt to warning users in cases where the options are // used but were not enabled at build time. def warn_drv_kokkos_disabled : Warning< "kokkos support was not enabled when clang was built.">; def warn_drv_openmp_target_disabled : Warning< "the openmp runtime ABI transform target was not enabled when clang was built.">; def warn_drv_qthreads_target_disabled: Warning< "the qthreads runtime ABI transform target was not enabled when clang was built.">; def warn_drv_realm_target_disabled: Warning< "the realm runtime ABI transform target was not enabled when clang was built.">; def warn_drv_cudatk_target_disabled: Warning< "the cuda toolkit runtime ABI transform target was not enabled when clang was built.">; def warn_drv_hip_target_disabled: Warning< "the hip runtime ABI transform target was not enabled when clang was built.">; def warn_drv_opencl_target_disabled: Warning< "the opencl toolkit runtime ABI transform target was not enabled when clang was built.">; }
clang/include/clang/Config/config.h.cmake +5 −27 Original line number Diff line number Diff line Loading @@ -47,7 +47,7 @@ /* Directories clang will search for headers */ #define C_INCLUDE_DIRS "${C_INCLUDE_DIRS}" /* Directories clang will search for configuration files */ /* Directories clang will search for configuration files w/ kitsune+tapir extensions */ #cmakedefine CLANG_CONFIG_FILE_SYSTEM_DIR "${CLANG_CONFIG_FILE_SYSTEM_DIR}" #cmakedefine CLANG_CONFIG_FILE_USER_DIR "${CLANG_CONFIG_FILE_USER_DIR}" Loading Loading @@ -86,31 +86,9 @@ /* Spawn a new process clang.exe for the CC1 tool invocation, when necessary */ #cmakedefine01 CLANG_SPAWN_CC1 /* ===== kitsune-centric settings */ #cmakedefine01 KITSUNE_ENABLE_KOKKOS #define KITSUNE_KOKKOS_INCLUDE_DIR "${KOKKOS_INCLUDE_DIR}" #define KITSUNE_KOKKOS_LIBRARY_DIR "${KOKKOS_LIBRARY_DIR}" #define KITSUNE_KOKKOS_LINK_LIBS "${KOKKOS_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_CILKRTS #define KITSUNE_CILKRTS_LIBRARY_DIR "${CILKRTS_LIBRARY_DIR}" #define KITSUNE_CILKRTS_LINK_LIBS "${CILKRTS_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_QTHREADS #define KITSUNE_QTHREADS_LIBRARY_DIR "${QTHREADS_LIBRARY_DIR}" #define KITSUNE_QTHREADS_LINK_LIBS "${QTHREADS_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_REALM #define KITSUNE_REALM_LIBRARY_DIR "${REALM_LIBRARY_DIR}" #define KITSUNE_REALM_WRAPPER_LIBRARY_DIR "${REALM_WRAPPER_LIBRARY_DIR}" #define KITSUNE_REALM_LINK_LIBS "${REALM_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_OPENMP #define KITSUNE_OPENMP_LIBRARY_DIR "${OPENMP_LIBRARY_DIR}" #define KITSUNE_OPENMP_LINK_LIBS "${OPENMP_LINK_LIBS}" #cmakedefine01 KITSUNE_ENABLE_CUDA #define KITSUNE_CUDA_LIBRARY_DIR "${CUDA_LIBRARY_DIR}" #define KITSUNE_CUDA_LINK_LIBS "${CUDA_LINK_LIBS}" #cmakedefine01 CLANG_ENABLE_KITSUNE #if defined(CLANG_ENABLE_KITSUNE) #include "kitsune.h" #endif #endif
clang/include/clang/Config/kitsune.h.cmake 0 → 100644 +48 −0 Original line number Diff line number Diff line /* * Copyright (c) 2020 Triad National Security, LLC * All rights reserved. * * This file is part of the kitsune/llvm project. It is released under * the LLVM license. */ #ifdef KITSUNE_CONFIG_H #error clang/Config/kitsune.h should only be included once. #else #define KITSUNE_CONFIG_H /* This shouldn't happen but could help us catch config issues. */ #ifndef CLANG_ENABLE_KITSUNE #error kitsune config included when CLANG_ENABLE_KITSUNE undefined. #endif #cmakedefine01 KITSUNE_ENABLE_KOKKOS_SUPPORT /* kitsune-centric cfg file search location */ #cmakedefine CLANG_CONFIG_FILE_KITSUNE_DIR "${CLANG_CONFIG_FILE_KITSUNE_DIR}" /* kitsune+tapir ABI/runtime codegen targets */ /* Note: The OpenCilk target is (now) always enabled */ #cmakedefine01 KITSUNE_ENABLE_OPENMP_TARGET #cmakedefine01 KITSUNE_ENABLE_QTHREADS_TARGET #cmakedefine01 KITSUNE_ENABLE_CUDATK_TARGET #cmakedefine01 KITSUNE_ENABLE_REALM_TARGET #cmakedefine01 KITSUNE_ENABLE_OPENCL_TARGET #cmakedefine01 KITSUNE_ENABLE_HIP_TARGET /* kitsune default kokkos configure (.cfg) filename */ #cmakedefine KITSUNE_KOKKOS_CFG_FILENAME "${KITSUNE_KOKKOS_CFG_FILENAME}" #cmakedefine KITSUNE_KOKKOS_EXTRA_LINK_FLAGS "${KITSUNE_KOKKOS_EXTRA_LINK_FLAGS}" #cmakedefine KITSUNE_KOKKOS_EXTRA_LINK_LIBS "${KITSUNE_KOKKOS_EXTRA_LINK_LIBS}" /* tapir default target-specific configure (.cfg) filenames */ #cmakedefine TAPIR_NONE_TARGET_CFG_FILENAME "${TAPIR_SERIAL_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_SERIAL_TARGET_CFG_FILENAME "${TAPIR_SERIAL_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_OPENCILK_TARGET_CFG_FILENAME "${TAPIR_OPENCILK_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_CUDA_TARGET_CFG_FILENAME "${TAPIR_CUDA_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_REALM_TARGET_CFG_FILENAME "${TAPIR_REALM_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_OPENMP_TARGET_CFG_FILENAME "${TAPIR_OPENMP_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_QTHREADS_TARGET_CFG_FILENAME "${TAPIR_QTHREADS_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_OPENCL_TARGET_CFG_FILENAME "${TAPIR_OPENCL_TARGET_CFG_FILENAME}" #cmakedefine TAPIR_HIP_TARGET_CFG_FILENAME "${TAPIR_HIP_TARGET_CFG_FILENAME}" #endif