xref: /llvm-project/clang/utils/perf-training/bolt.lit.cfg (revision ea6e13586ce22291e9e7a4e382f6b2409b406da9)
1# -*- Python -*-
2
3from lit import Test
4import lit.formats
5import lit.util
6import os
7import re
8import subprocess
9
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_name
17elif 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_nowrapper
28config.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