blob: 565015f6391ae22d2626e7ebd569fe70fe36f3fe [file] [log] [blame]
# Copyright 2022 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
# iree_microbenchmark_suite()
#
# Generates microbenchmark suites for MLIR input modules.
# Parameters:
# NAME: Name of target.
# SRCS: Source files to compile into a bytecode module (list of strings).
# FLAGS: Flags to pass to the compiler tool (list of strings).
function(iree_microbenchmark_suite)
if(NOT IREE_BUILD_MICROBENCHMARKS)
return()
endif()
cmake_parse_arguments(
_RULE
""
"NAME"
"SRCS;FLAGS"
${ARGN}
)
iree_package_name(PACKAGE_NAME)
foreach(_SRC IN LISTS _RULE_SRCS)
set(_COMPILE_TOOL "iree-compile")
set(_TRANSLATE_SRC "${_SRC}")
set(_MODULE_FILE_NAME "${_RULE_NAME}_${_SRC}.vmfb")
set(_TARGET_NAME "${PACKAGE_NAME}_${_MODULE_FILE_NAME}")
set(_ARGS "${_RULE_FLAGS}")
get_filename_component(_TRANSLATE_SRC_PATH "${_TRANSLATE_SRC}" REALPATH)
list(APPEND _ARGS "${_TRANSLATE_SRC_PATH}")
list(APPEND _ARGS "-o")
list(APPEND _ARGS "${_MODULE_FILE_NAME}")
add_custom_command(
OUTPUT
"${_MODULE_FILE_NAME}"
COMMAND
${_COMPILE_TOOL}
${_ARGS}
DEPENDS
${_COMPILE_TOOL}
${_TRANSLATE_SRC}
VERBATIM
)
add_custom_target("${_TARGET_NAME}"
DEPENDS
"${_MODULE_FILE_NAME}"
)
add_dependencies(iree-microbenchmark-suites "${_TARGET_NAME}")
endforeach(_SRC IN LISTS _SRCS)
endfunction(iree_microbenchmark_suite)