blob: dbb2dd3fd85879ae1ac43a9894db0caae818d7f5 [file] [log] [blame]
# -*- Python -*-
from lit import Test
import lit.formats
import lit.util
import os
import re
import subprocess
clang_bolt_mode = config.clang_bolt_mode.lower()
clang_binary = "clang"
perf_wrapper = f"{config.python_exe} {config.perf_helper_dir}/perf-helper.py perf "
if clang_bolt_mode == "instrument":
perf_wrapper = ""
clang_binary = config.clang_bolt_name
elif clang_bolt_mode == "lbr":
perf_wrapper += " --lbr -- "
elif clang_bolt_mode == "perf":
perf_wrapper += " -- "
else:
assert 0, "Unsupported CLANG_BOLT_MODE variable"
clang_nowrapper = os.path.realpath(
lit.util.which(clang_binary, config.clang_tools_dir)
).replace("\\", "/")
config.clang = perf_wrapper + clang_nowrapper
config.cmake_compiler_args = "-DCMAKE_C_COMPILER='{0}' -DCMAKE_CXX_COMPILER='{0};--driver-mode=g++'".format(
re.sub(r"\s+", ";", clang_nowrapper)
)
config.name = "Clang Perf Training"
config.suffixes = [
".c",
".cc",
".cpp",
".m",
".mm",
".cu",
".ll",
".cl",
".s",
".S",
".modulemap",
".test",
]
use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL")
config.test_format = lit.formats.ShTest(use_lit_shell == "0")
config.substitutions.append(
("%clang_cpp_skip_driver", f" {config.clang} --driver-mode=g++ ")
)
config.substitutions.append(("%clang_cpp", f" {config.clang} --driver-mode=g++ "))
config.substitutions.append(("%clang_skip_driver", config.clang))
config.substitutions.append(("%clang", config.clang))
config.substitutions.append(("%test_root", config.test_exec_root))
config.substitutions.append(("%cmake_compiler_args", config.cmake_compiler_args))
config.substitutions.append(('%cmake_generator', config.cmake_generator))
config.substitutions.append(('%cmake', config.cmake_exe))
config.substitutions.append(('%llvm_src_dir', config.llvm_src_dir))
config.substitutions.append(('%perf_wrapper', perf_wrapper))