mirror of
https://github.com/ROCm/ROCm.git
synced 2026-04-05 03:01:17 -04:00
Add infrastructure to be able to add and test custom LLVM passes in the backend. This will allow use to apply some low level optimizations and cleanup on LLVM IR. Add a first pass that breaks up phi of struct created by lowering to LLVM. Those can often pessimise the optimizer as it would block optimizations going through phi nodes.
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
# -*- Python -*-
|
|
|
|
import os
|
|
import platform
|
|
import re
|
|
import subprocess
|
|
import tempfile
|
|
|
|
import lit.formats
|
|
import lit.util
|
|
from lit.llvm import llvm_config
|
|
from lit.llvm.subst import FindTool, ToolSubst
|
|
|
|
# Configuration file for the 'lit' test runner
|
|
|
|
# name: The name of this test suite
|
|
config.name = 'TRITON'
|
|
|
|
config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell)
|
|
|
|
# suffixes: A list of file extensions to treat as test files.
|
|
config.suffixes = ['.mlir', '.ll']
|
|
|
|
# test_source_root: The root path where tests are located.
|
|
config.test_source_root = os.path.dirname(__file__)
|
|
|
|
# test_exec_root: The root path where tests should be run.
|
|
config.test_exec_root = os.path.join(config.triton_obj_root, 'test')
|
|
|
|
config.substitutions.append(('%PATH%', config.environment['PATH']))
|
|
config.substitutions.append(('%shlibext', config.llvm_shlib_ext))
|
|
|
|
llvm_config.with_system_environment(
|
|
['HOME', 'INCLUDE', 'LIB', 'TMP', 'TEMP'])
|
|
|
|
# llvm_config.use_default_substitutions()
|
|
|
|
# excludes: A list of directories to exclude from the testsuite. The 'Inputs'
|
|
# subdirectories contain auxiliary inputs for various tests in their parent
|
|
# directories.
|
|
config.excludes = [
|
|
'Inputs',
|
|
'Examples',
|
|
'CMakeLists.txt',
|
|
'README.txt',
|
|
'LICENSE.txt']
|
|
|
|
# test_source_root: The root path where tests are located.
|
|
config.test_source_root = os.path.dirname(__file__)
|
|
|
|
# test_exec_root: The root path where tests should be run.
|
|
config.test_exec_root = os.path.join(config.triton_obj_root, 'test')
|
|
config.triton_tools_dir = os.path.join(config.triton_obj_root, 'bin')
|
|
config.filecheck_dir = os.path.join(config.triton_obj_root, 'bin', 'FileCheck')
|
|
tool_dirs = [
|
|
config.triton_tools_dir,
|
|
config.llvm_tools_dir,
|
|
config.filecheck_dir]
|
|
|
|
# Tweak the PATH to include the tools dir.
|
|
for d in tool_dirs:
|
|
llvm_config.with_environment('PATH', d, append_path=True)
|
|
tools = [
|
|
'triton-opt',
|
|
'triton-llvm-opt',
|
|
ToolSubst('%PYTHON', config.python_executable, unresolved='ignore'),
|
|
]
|
|
|
|
llvm_config.add_tool_substitutions(tools, tool_dirs)
|
|
|
|
# TODO: what's this?
|
|
llvm_config.with_environment('PYTHONPATH', [
|
|
os.path.join(config.mlir_binary_dir, 'python_packages', 'triton'),
|
|
], append_path=True)
|