from lit.llvm import llvm_config
if not config.mlir_include_integration_tests:
config.unsupported = True
def configure_aarch64_mcr_cmd():
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 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_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}"
)
mcr_cmd = f"{emulation_cmd} {mcr_cmd}"
return mcr_cmd
aarch64_mcr_cmd = configure_aarch64_mcr_cmd()
# 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_MLIR_CPU_RUNNER_EXECUTABLE - AArch64 native mlir-cpu-runner to
# support cross-compilation
# * ARM_EMULATOR_UTILS_LIB_DIR - AArch64 native utilites library to support
# cross-compilation.
config.substitutions.append(("%mcr_aarch64_cmd", aarch64_mcr_cmd))