| # 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) |