Add CMake files and lit configurations, enough for `ninja check-mlir-hlo` to pass on all the tests
PiperOrigin-RevId: 325172984
This commit is contained in:
parent
c340367702
commit
701312720c
|
@ -0,0 +1,94 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
cmake_minimum_required(VERSION 3.13.4)
|
||||
|
||||
if(POLICY CMP0068)
|
||||
cmake_policy(SET CMP0068 NEW)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR ON)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0075)
|
||||
cmake_policy(SET CMP0075 NEW)
|
||||
endif()
|
||||
|
||||
if(POLICY CMP0077)
|
||||
cmake_policy(SET CMP0077 NEW)
|
||||
endif()
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Project setup and globals
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
project(mlir-hlo LANGUAGES CXX C)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 14)
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Options and settings
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# MSVC defaults
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
if(MSVC)
|
||||
add_compile_options(
|
||||
$<$<CONFIG:>:/MD>
|
||||
$<$<CONFIG:Debug>:/MD>
|
||||
$<$<CONFIG:Release>:/MD>
|
||||
)
|
||||
endif()
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# MLIR/LLVM Configuration
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
find_package(MLIR REQUIRED CONFIG)
|
||||
message(STATUS "Using MLIRConfig.cmake in: ${MLIR_DIR}")
|
||||
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${MLIR_CMAKE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${LLVM_CMAKE_DIR}")
|
||||
|
||||
if(LLVM_ENABLE_ZLIB)
|
||||
find_package(ZLIB)
|
||||
endif()
|
||||
|
||||
include(TableGen)
|
||||
include(AddLLVM)
|
||||
include(AddMLIR)
|
||||
include(HandleLLVMOptions)
|
||||
include_directories(${LLVM_INCLUDE_DIRS})
|
||||
include_directories(${MLIR_INCLUDE_DIRS})
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include)
|
||||
include_directories(${PROJECT_BINARY_DIR}/include)
|
||||
include_directories(${PROJECT_BINARY_DIR}/)
|
||||
link_directories(${LLVM_BUILD_LIBRARY_DIR})
|
||||
add_definitions(${LLVM_DEFINITIONS})
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Directory setup
|
||||
#-------------------------------------------------------------------------------
|
||||
|
||||
set(MLIR_HLO_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(MLIR_HLO_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_custom_target(check-mlir-hlo)
|
||||
|
||||
add_subdirectory(include/mlir-hlo)
|
||||
add_subdirectory(lib)
|
||||
add_subdirectory(tools)
|
||||
add_subdirectory(tests)
|
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
add_subdirectory(Dialect)
|
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
add_subdirectory(mhlo)
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
add_subdirectory(IR)
|
||||
add_subdirectory(transforms)
|
|
@ -0,0 +1,31 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# Need a separate function because of the .cc vs .cpp used in the one provided by MLIR
|
||||
function(add_mlir_hlo_dialect dialect dialect_namespace)
|
||||
set(LLVM_TARGET_DEFINITIONS ${dialect}.td)
|
||||
mlir_tablegen(${dialect}.h.inc -gen-op-decls)
|
||||
mlir_tablegen(${dialect}.cc.inc -gen-op-defs)
|
||||
mlir_tablegen(${dialect}_structs.h.inc -gen-struct-attr-decls)
|
||||
mlir_tablegen(${dialect}_structs.cc.inc -gen-struct-attr-defs)
|
||||
add_public_tablegen_target(MLIR${dialect}IncGen)
|
||||
add_dependencies(mlir-headers MLIR${dialect}IncGen)
|
||||
endfunction()
|
||||
|
||||
add_mlir_hlo_dialect(chlo_ops chlo)
|
||||
add_mlir_hlo_dialect(hlo_ops mhlo)
|
||||
add_mlir_hlo_dialect(lhlo_ops lmhlo)
|
||||
|
||||
add_mlir_interface(infer_fusibility_op_interface)
|
|
@ -0,0 +1,23 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set(LLVM_TARGET_DEFINITIONS mhlo_passes.td)
|
||||
mlir_tablegen(mhlo_passes.h.inc -gen-pass-decls)
|
||||
add_public_tablegen_target(MLIRMhloPassIncGen)
|
||||
|
||||
set(LLVM_TARGET_DEFINITIONS lmhlo_passes.td)
|
||||
mlir_tablegen(lmhlo_passes.h.inc -gen-pass-decls)
|
||||
add_public_tablegen_target(MLIRLmhloPassIncGen)
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
add_subdirectory(Dialect)
|
||||
add_subdirectory(utils)
|
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
add_subdirectory(mhlo)
|
|
@ -0,0 +1,17 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
add_subdirectory(IR)
|
||||
add_subdirectory(transforms)
|
|
@ -0,0 +1,82 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
include_directories(BEFORE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
set(LLVM_TARGET_DEFINITIONS hlo_patterns.td)
|
||||
mlir_tablegen(hlo_patterns.cc.inc -gen-rewriters)
|
||||
add_public_tablegen_target(MLIRMhloRewriterIncGen)
|
||||
|
||||
set(LLVM_TARGET_DEFINITIONS mhlo_canonicalize.td)
|
||||
mlir_tablegen(mhlo_canonicalize.inc -gen-rewriters)
|
||||
add_public_tablegen_target(MLIRMhloCanonicalizeIncGen)
|
||||
|
||||
add_mlir_dialect_library(ChloDialect
|
||||
chlo_ops.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRchlo_opsIncGen
|
||||
)
|
||||
target_link_libraries(ChloDialect PUBLIC MLIRIR)
|
||||
|
||||
add_mlir_library(MhloInferFusibilityOpInterface
|
||||
infer_fusibility_op_interface.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRinfer_fusibility_op_interfaceIncGen
|
||||
)
|
||||
|
||||
|
||||
add_mlir_dialect_library(MhloDialect
|
||||
hlo_ops.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRhlo_opsIncGen
|
||||
MLIRMhloCanonicalizeIncGen
|
||||
MLIRMhloRewriterIncGen
|
||||
MLIRinfer_fusibility_op_interfaceIncGen
|
||||
)
|
||||
target_link_libraries(MhloDialect
|
||||
PUBLIC
|
||||
MLIRIR
|
||||
MhloInferFusibilityOpInterface
|
||||
MLIRMhloUtils
|
||||
)
|
||||
|
||||
|
||||
add_mlir_dialect_library(LmhloDialect
|
||||
lhlo_ops.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRlhlo_opsIncGen
|
||||
)
|
||||
target_link_libraries(LmhloDialect PUBLIC MLIRIR)
|
||||
|
||||
|
||||
add_mlir_dialect_library(MhloRegisterDialects
|
||||
init.cc
|
||||
DEPENDS
|
||||
MLIRchlo_opsIncGen
|
||||
MLIRhlo_opsIncGen
|
||||
MLIRlhlo_opsIncGen
|
||||
)
|
||||
target_link_libraries(MhloRegisterDialects
|
||||
PUBLIC
|
||||
ChloDialect
|
||||
MhloDialect
|
||||
LmhloDialect
|
||||
)
|
|
@ -0,0 +1,155 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
include_directories(BEFORE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
set(LLVM_TARGET_DEFINITIONS lower_complex_patterns.td)
|
||||
mlir_tablegen(generated_lower_complex.inc -gen-rewriters)
|
||||
add_public_tablegen_target(MLIRMhloLowerComplexIncGen)
|
||||
|
||||
set(LLVM_TARGET_DEFINITIONS legalize_to_standard_patterns.td)
|
||||
mlir_tablegen(generated_legalize_to_standard.inc -gen-rewriters)
|
||||
add_public_tablegen_target(MLIRMhloLegalizeToStandardIncGen)
|
||||
|
||||
|
||||
add_mlir_library(ChloPasses
|
||||
chlo_legalize_to_hlo.cc
|
||||
chlo_legalize_to_hlo_pass.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRhlo_opsIncGen
|
||||
|
||||
LINK_COMPONENTS
|
||||
Core
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
ChloDialect
|
||||
MLIRIR
|
||||
MLIRPass
|
||||
)
|
||||
|
||||
add_mlir_library(MhloPasses
|
||||
legalize_gather_to_torch_index_select.cc
|
||||
legalize_tanh_to_approximation.cc
|
||||
lower_complex.cc
|
||||
lower_complex_patterns.td
|
||||
lower_general_dot.cc
|
||||
materialize_broadcasts.cc
|
||||
materialize_broadcasts_pass.cc
|
||||
mhlo_fusion.cc
|
||||
optimize_mhlo.cc
|
||||
optimize_mhlo_pass.cc
|
||||
sink_constants_to_control_flow.cc
|
||||
test_infer_shaped_type_pass.cc
|
||||
transform_unranked_hlo.cc
|
||||
unfuse_batch_norm.cc
|
||||
unfuse_batch_norm_pass.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRhlo_opsIncGen
|
||||
MLIRMhloLowerComplexIncGen
|
||||
|
||||
LINK_COMPONENTS
|
||||
Core
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
MLIRIR
|
||||
MLIRMhloUtils
|
||||
MLIRPass
|
||||
MLIRTransformUtils
|
||||
)
|
||||
|
||||
add_mlir_library(MhloToLhloConversion
|
||||
hlo_legalize_to_lhlo.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRhlo_opsIncGen
|
||||
MLIRlhlo_opsIncGen
|
||||
|
||||
LINK_COMPONENTS
|
||||
Core
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
MhloDialect
|
||||
LmhloDialect
|
||||
MLIRIR
|
||||
MLIRPass
|
||||
)
|
||||
|
||||
add_mlir_library(MhloToStandard
|
||||
legalize_control_flow.cc
|
||||
legalize_to_standard.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRhlo_opsIncGen
|
||||
MLIRlhlo_opsIncGen
|
||||
MLIRMhloLegalizeToStandardIncGen
|
||||
|
||||
LINK_COMPONENTS
|
||||
Core
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
MLIRIR
|
||||
MLIRPass
|
||||
)
|
||||
|
||||
add_mlir_library(MhloLhloToLinalg
|
||||
legalize_to_linalg.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRhlo_opsIncGen
|
||||
MLIRlhlo_opsIncGen
|
||||
|
||||
LINK_COMPONENTS
|
||||
Core
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
MhloDialect
|
||||
MLIRIR
|
||||
MLIRPass
|
||||
)
|
||||
|
||||
add_mlir_library(LmhloPasses
|
||||
lhlo_copy_removal.cc
|
||||
lhlo_fuse_linalg.cc
|
||||
lhlo_legalize_to_affine.cc
|
||||
lhlo_legalize_to_gpu.cc
|
||||
lhlo_legalize_to_llvm.cc
|
||||
lhlo_legalize_to_llvm_pass.cc
|
||||
lhlo_legalize_to_parallel_loops.cc
|
||||
|
||||
DEPENDS
|
||||
MLIRlhlo_opsIncGen
|
||||
|
||||
LINK_COMPONENTS
|
||||
Core
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
LmhloDialect
|
||||
MLIRIR
|
||||
MLIRPass
|
||||
)
|
||||
|
||||
add_library(AllMhloPasses INTERFACE)
|
||||
target_link_libraries(AllMhloPasses INTERFACE
|
||||
ChloPasses
|
||||
MhloPasses
|
||||
MhloToLhloConversion
|
||||
MhloToStandard
|
||||
MhloLhloToLinalg
|
||||
LmhloPasses
|
||||
)
|
|
@ -0,0 +1,25 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
add_mlir_library(MLIRMhloUtils
|
||||
broadcast_utils.cc
|
||||
convert_op_folder.cc
|
||||
cycle_detector.cc
|
||||
hlo_utils.cc
|
||||
|
||||
LINK_LIBS PUBLIC
|
||||
MLIRSupport
|
||||
)
|
|
@ -0,0 +1,36 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
configure_lit_site_cfg(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.py.in
|
||||
${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg.py
|
||||
MAIN_CONFIG
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lit.cfg.py
|
||||
)
|
||||
|
||||
set(MLIR_HLO_TEST_DEPENDS
|
||||
FileCheck count not
|
||||
mlir-hlo-opt
|
||||
)
|
||||
|
||||
add_lit_testsuite(check-mlir-hlo-lit "Running the mlir-hlo regression tests"
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
DEPENDS ${MLIR_HLO_TEST_DEPENDS}
|
||||
)
|
||||
set_target_properties(check-mlir-hlo-lit PROPERTIES FOLDER "Tests")
|
||||
|
||||
add_lit_testsuites(MLIR_HLO_OPT ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${MLIR_HLO_TEST_DEPENDS})
|
||||
|
||||
add_dependencies(check-mlir-hlo check-mlir-hlo-lit)
|
|
@ -0,0 +1,82 @@
|
|||
"""Lit configuration to drive test in this repo."""
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# -*- Python -*-
|
||||
# pylint: disable=undefined-variable
|
||||
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
|
||||
import os
|
||||
|
||||
import lit.formats
|
||||
from lit.llvm import llvm_config
|
||||
from lit.llvm.subst import ToolSubst
|
||||
import lit.util
|
||||
|
||||
# Configuration file for the 'lit' test runner.
|
||||
|
||||
# name: The name of this test suite.
|
||||
config.name = 'MLIR_HLO_OPT'
|
||||
|
||||
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', '.mlir.py']
|
||||
|
||||
# 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.mlir_hlo_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.mlir_hlo_obj_root, 'test')
|
||||
config.mlir_hlo_tools_dir = os.path.join(config.mlir_hlo_obj_root, 'tools')
|
||||
|
||||
# Tweak the PATH to include the tools dir.
|
||||
llvm_config.with_environment('PATH', config.llvm_tools_dir, append_path=True)
|
||||
|
||||
tool_dirs = [
|
||||
os.path.join(config.mlir_hlo_tools_dir, 'mlir-hlo-opt'),
|
||||
config.llvm_tools_dir,
|
||||
]
|
||||
tools = [
|
||||
'mlir-hlo-opt',
|
||||
'mlir-cpu-runner',
|
||||
ToolSubst(
|
||||
'%mlir_runner_utils_dir',
|
||||
config.mlir_runner_utils_dir,
|
||||
unresolved='ignore'),
|
||||
]
|
||||
|
||||
llvm_config.add_tool_substitutions(tools, tool_dirs)
|
|
@ -0,0 +1,50 @@
|
|||
@LIT_SITE_CFG_IN_HEADER@
|
||||
|
||||
import sys
|
||||
|
||||
config.host_triple = "@LLVM_HOST_TRIPLE@"
|
||||
config.target_triple = "@TARGET_TRIPLE@"
|
||||
config.llvm_src_root = "@LLVM_SOURCE_DIR@"
|
||||
config.llvm_obj_root = "@LLVM_BINARY_DIR@"
|
||||
config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"
|
||||
config.llvm_lib_dir = "@LLVM_LIBRARY_DIR@"
|
||||
config.llvm_shlib_dir = "@SHLIBDIR@"
|
||||
config.llvm_shlib_ext = "@SHLIBEXT@"
|
||||
config.llvm_exe_ext = "@EXEEXT@"
|
||||
config.lit_tools_dir = "@LLVM_LIT_TOOLS_DIR@"
|
||||
config.python_executable = "@PYTHON_EXECUTABLE@"
|
||||
config.gold_executable = "@GOLD_EXECUTABLE@"
|
||||
config.ld64_executable = "@LD64_EXECUTABLE@"
|
||||
config.enable_shared = @ENABLE_SHARED@
|
||||
config.enable_assertions = @ENABLE_ASSERTIONS@
|
||||
config.targets_to_build = "@TARGETS_TO_BUILD@"
|
||||
config.native_target = "@LLVM_NATIVE_ARCH@"
|
||||
config.llvm_bindings = "@LLVM_BINDINGS@".split(' ')
|
||||
config.host_os = "@HOST_OS@"
|
||||
config.host_cc = "@HOST_CC@"
|
||||
config.host_cxx = "@HOST_CXX@"
|
||||
# Note: ldflags can contain double-quoted paths, so must use single quotes here.
|
||||
config.host_ldflags = '@HOST_LDFLAGS@'
|
||||
config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@"
|
||||
config.llvm_host_triple = '@LLVM_HOST_TRIPLE@'
|
||||
config.host_arch = "@HOST_ARCH@"
|
||||
config.mlir_hlo_src_root = "@CMAKE_SOURCE_DIR@"
|
||||
config.mlir_hlo_obj_root = "@CMAKE_BINARY_DIR@"
|
||||
config.mlir_runner_utils_dir = os.path.join(config.llvm_obj_root, "lib")
|
||||
|
||||
# Support substitution of the tools_dir with user parameters. This is
|
||||
# used when we can't determine the tool dir at configuration time.
|
||||
try:
|
||||
config.llvm_tools_dir = config.llvm_tools_dir % lit_config.params
|
||||
config.llvm_shlib_dir = config.llvm_shlib_dir % lit_config.params
|
||||
except KeyError:
|
||||
e = sys.exc_info()[1]
|
||||
key, = e.args
|
||||
lit_config.fatal("unable to find %r parameter, use '--param=%s=VALUE'" % (key,key))
|
||||
|
||||
|
||||
import lit.llvm
|
||||
lit.llvm.initialize(lit_config, config)
|
||||
|
||||
# Let the main config do the real work.
|
||||
lit_config.load_config(config, "@CMAKE_SOURCE_DIR@/tests/lit.cfg.py")
|
|
@ -0,0 +1,16 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
add_subdirectory(mlir-hlo-opt)
|
|
@ -0,0 +1,32 @@
|
|||
#
|
||||
# Copyright 2020 The TensorFlow Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
|
||||
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
|
||||
set(LIBS
|
||||
${dialect_libs}
|
||||
${conversion_libs}
|
||||
MLIROptLib
|
||||
|
||||
MhloRegisterDialects
|
||||
AllMhloPasses
|
||||
)
|
||||
add_llvm_executable(mlir-hlo-opt mlir-hlo-opt.cpp
|
||||
DEPENDS
|
||||
MLIRLmhloPassIncGen
|
||||
MLIRMhloPassIncGen
|
||||
)
|
||||
llvm_update_compile_flags(mlir-hlo-opt)
|
||||
target_link_libraries(mlir-hlo-opt PRIVATE ${LIBS})
|
Loading…
Reference in New Issue