Commit 2b646c27 authored by Stelle, George Widgery's avatar Stelle, George Widgery
Browse files

Merged PR#34

parents 4f536b8e 300667db
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -24,6 +24,9 @@
# Nested build directory
/build*

# External projects 
/cheetah 

#==============================================================================#
# Explicit files to ignore (only matches one).
#==============================================================================#
+12 −5
Original line number Diff line number Diff line
@@ -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 )
@@ -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.
@@ -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
@@ -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)
+22 −33
Original line number Diff line number Diff line
@@ -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.">;
}
+5 −27
Original line number Diff line number Diff line
@@ -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}"

@@ -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
+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