As with the other update scripts this takes the output of -passes=print<gisel-value-tracking> and inserts the results into an existing mir file. This means that the input is a lot like update_analysis_test_checks.py, and the output needs to insert into a mir file similarly to update_mir_test_checks.py. The code used to do the inserting has been moved to common, to allow it to be reused. Otherwise it tries to reuse the existing infrastructure, and update_givaluetracking_test_checks is kept relatively short.
60 lines
2.3 KiB
INI
60 lines
2.3 KiB
INI
import os
|
|
|
|
import lit.formats
|
|
import lit.util
|
|
|
|
# python 2.7 backwards compatibility
|
|
try:
|
|
from shlex import quote as shell_quote
|
|
except ImportError:
|
|
from pipes import quote as shell_quote
|
|
|
|
|
|
def add_update_script_substitution(
|
|
name, python_exe=config.python_executable, extra_args=""
|
|
):
|
|
assert name.startswith("%")
|
|
script_path = os.path.join(config.llvm_src_root, "utils", name[1:] + ".py")
|
|
assert os.path.isfile(script_path)
|
|
# Specify an explicit default version in UTC tests, so that the --version
|
|
# embedded in UTC_ARGS does not change in all test expectations every time
|
|
# the default is bumped.
|
|
if name != "%update_test_body":
|
|
extra_args += " --version=1"
|
|
config.substitutions.append(
|
|
(name, "'%s' %s %s" % (python_exe, script_path, extra_args))
|
|
)
|
|
|
|
|
|
config.test_format = lit.formats.ShTest(execute_external=False)
|
|
config.suffixes = [".test"]
|
|
|
|
llc_path = os.path.join(config.llvm_tools_dir, "llc")
|
|
if os.path.isfile(llc_path):
|
|
config.available_features.add("llc-binary")
|
|
llc_arg = "--llc-binary " + shell_quote(llc_path)
|
|
add_update_script_substitution("%update_llc_test_checks", extra_args=llc_arg)
|
|
add_update_script_substitution("%update_mir_test_checks", extra_args=llc_arg)
|
|
add_update_script_substitution("%update_givaluetracking_test_checks", extra_args=llc_arg)
|
|
|
|
opt_path = os.path.join(config.llvm_tools_dir, "opt")
|
|
if os.path.isfile(opt_path):
|
|
config.available_features.add("opt-binary")
|
|
opt_arg = "--opt-binary " + shell_quote(opt_path)
|
|
add_update_script_substitution("%update_test_checks", extra_args=opt_arg)
|
|
add_update_script_substitution("%update_analyze_test_checks", extra_args=opt_arg)
|
|
|
|
llvm_mca_path = os.path.join(config.llvm_tools_dir, "llvm-mca")
|
|
if os.path.isfile(llvm_mca_path):
|
|
config.available_features.add("llvm-mca-binary")
|
|
mca_arg = "--llvm-mca-binary " + shell_quote(llvm_mca_path)
|
|
add_update_script_substitution("%update_test_checks", extra_args=mca_arg)
|
|
|
|
split_file_path = os.path.join(config.llvm_tools_dir, "split-file")
|
|
if os.path.isfile(split_file_path):
|
|
add_update_script_substitution("%update_test_body")
|
|
|
|
llvm_mc_path = os.path.join(config.llvm_tools_dir, "llvm-mc")
|
|
if os.path.isfile(llvm_mc_path):
|
|
add_update_script_substitution("%update_mc_test_checks")
|