62 lines · plain
1# -*- Python -*-2 3from lit import Test4import lit.formats5import lit.util6import os7import re8import subprocess9 10clang_bolt_mode = config.clang_bolt_mode.lower()11clang_binary = "clang"12perf_wrapper = f"{config.python_exe} {config.perf_helper_dir}/perf-helper.py perf "13 14if clang_bolt_mode == "instrument":15 perf_wrapper = ""16 clang_binary = config.clang_bolt_name17elif clang_bolt_mode == "lbr":18 perf_wrapper += " --lbr -- "19elif clang_bolt_mode == "perf":20 perf_wrapper += " -- "21else:22 assert 0, "Unsupported CLANG_BOLT_MODE variable"23 24clang_nowrapper = os.path.realpath(25 lit.util.which(clang_binary, config.clang_tools_dir)26).replace("\\", "/")27config.clang = perf_wrapper + clang_nowrapper28config.cmake_compiler_args = "-DCMAKE_C_COMPILER='{0}' -DCMAKE_CXX_COMPILER='{0};--driver-mode=g++'".format(29 re.sub(r"\s+", ";", clang_nowrapper)30)31 32config.name = "Clang Perf Training"33config.suffixes = [34 ".c",35 ".cc",36 ".cpp",37 ".m",38 ".mm",39 ".cu",40 ".ll",41 ".cl",42 ".s",43 ".S",44 ".modulemap",45 ".test",46]47 48use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL")49config.test_format = lit.formats.ShTest(use_lit_shell == "0")50config.substitutions.append(51 ("%clang_cpp_skip_driver", f" {config.clang} --driver-mode=g++ ")52)53config.substitutions.append(("%clang_cpp", f" {config.clang} --driver-mode=g++ "))54config.substitutions.append(("%clang_skip_driver", config.clang))55config.substitutions.append(("%clang", config.clang))56config.substitutions.append(("%test_root", config.test_exec_root))57config.substitutions.append(("%cmake_compiler_args", config.cmake_compiler_args))58config.substitutions.append(('%cmake_generator', config.cmake_generator))59config.substitutions.append(('%cmake', config.cmake_exe))60config.substitutions.append(('%llvm_src_dir', config.llvm_src_dir))61config.substitutions.append(('%perf_wrapper', perf_wrapper))62