90 lines
3.7 KiB
INI
90 lines
3.7 KiB
INI
from lit.llvm import llvm_config
|
|
|
|
if not config.mlir_include_integration_tests:
|
|
config.unsupported = True
|
|
|
|
|
|
def configure_aarch64_lli_and_mcr_cmd():
|
|
lli_cmd = "lli"
|
|
mcr_cmd = "mlir-cpu-runner"
|
|
|
|
# NOTE: If the SVE tests are disabled and the SME tests are enabled to run
|
|
# under emulation, the SVE specific RUN lines in the SparseTensor tests
|
|
# will run under emulation.
|
|
if not (config.mlir_run_arm_sve_tests or config.mlir_run_arm_sme_tests):
|
|
return (lli_cmd, mcr_cmd)
|
|
|
|
config.substitutions.append(
|
|
(
|
|
"%mlir_native_utils_lib_dir",
|
|
config.arm_emulator_utils_lib_dir or config.mlir_lib_dir,
|
|
)
|
|
)
|
|
|
|
if config.arm_emulator_executable:
|
|
if config.arm_emulator_lli_executable:
|
|
lli_cmd = config.arm_emulator_lli_executable
|
|
else:
|
|
# Top-level lit config adds llvm_tools_dir to PATH but this is lost
|
|
# when running under an emulator. If the user didn't specify an lli
|
|
# executable, use absolute path %llvm_tools_dir/lli.
|
|
lli_cmd = llvm_config.use_llvm_tool(
|
|
"lli",
|
|
search_env="LLI",
|
|
required=True,
|
|
search_paths=[config.llvm_tools_dir],
|
|
use_installed=False,
|
|
)
|
|
|
|
if config.arm_emulator_mlir_cpu_runner_executable:
|
|
mcr_cmd = config.arm_emulator_mlir_cpu_runner_executable
|
|
else:
|
|
# Top-level LIT config adds llvm_tools_dir to PATH but this is lost
|
|
# when running under an emulator. If the user didn't specify an
|
|
# mlir-cpu-runner executable, use absolute path
|
|
# %llvm_tools_dir/mlir-cpu-runner.
|
|
mcr_cmd = llvm_config.use_llvm_tool(
|
|
"mlir-cpu-runner",
|
|
search_env="MLIR_CPU_RUNNER",
|
|
required=True,
|
|
search_paths=[config.mlir_tools_dir],
|
|
use_installed=False,
|
|
)
|
|
|
|
# Run test in emulator (qemu or armie)
|
|
emulation_cmd = (
|
|
f"{config.arm_emulator_executable} {config.arm_emulator_options}"
|
|
)
|
|
|
|
lli_cmd = f"{emulation_cmd} {lli_cmd}"
|
|
mcr_cmd = f"{emulation_cmd} {mcr_cmd}"
|
|
|
|
return (lli_cmd, mcr_cmd)
|
|
|
|
|
|
aarch64_lli_cmd, aarch64_mcr_cmd = configure_aarch64_lli_and_mcr_cmd()
|
|
|
|
# Configure the following AArch64 substitutions:
|
|
#
|
|
# * %lli_aarch64_cmd - Invokes lli. For tests that _will_ run on AArch64 (ArmSVE, ArmSME).
|
|
# * %lli_host_or_aarch64_cmd - Invokes lli. For tests that _may_ run on AArch64 (SparseTensor).
|
|
# * %mcr_aarch64_cmd - Invokes mlir-cpu-runner. For tests that _will_
|
|
# run on AArch64. May invoke mlir-cpu-runner under
|
|
# an AArch64 emulator (when
|
|
# `config.arm_emulator_executable` is set).
|
|
#
|
|
# AArch64 tests will run under emulation if configured at build time by the
|
|
# following CMake options:
|
|
#
|
|
# * ARM_EMULATOR_EXECUTABLE - emulator to use.
|
|
# * ARM_EMULATOR_OPTIONS - options for emulator.
|
|
# * ARM_EMULATOR_LLI_EXECUTABLE - AArch64 native lli to support cross-compilation.
|
|
# * ARM_EMULATOR_UTILS_LIB_DIR - AArch64 native utilites library to support cross-compilation.
|
|
#
|
|
# Functionally the two substitutions are equivalent, i.e. %lli_aarch64_cmd
|
|
# could be used in the SparseTensor tests where necessary, but the meaning
|
|
# conveyed by the substitution name would be a misnomer if the host target
|
|
# is not AArch64 and MLIR_RUN_ARM_SVE_TESTS=OFF.
|
|
config.substitutions.append(("%lli_aarch64_cmd", aarch64_lli_cmd))
|
|
config.substitutions.append(("%lli_host_or_aarch64_cmd", aarch64_lli_cmd))
|
|
config.substitutions.append(("%mcr_aarch64_cmd", aarch64_mcr_cmd))
|