|  | #!/usr/bin/env python3 | 
|  |  | 
|  | # Copyright 2021 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 | 
|  | """Generates a flagfile for iree-benchmark-module.""" | 
|  |  | 
|  | import argparse | 
|  | import os | 
|  |  | 
|  |  | 
|  | def parse_arguments(): | 
|  | """Parses command line arguments.""" | 
|  | parser = argparse.ArgumentParser() | 
|  | parser.add_argument( | 
|  | "--module", | 
|  | type=str, | 
|  | required=True, | 
|  | metavar="<module>", | 
|  | help="The name of the module file", | 
|  | ) | 
|  | parser.add_argument( | 
|  | "--device", | 
|  | type=str, | 
|  | required=True, | 
|  | metavar="<device>", | 
|  | help="The name of the HAL device", | 
|  | ) | 
|  | parser.add_argument( | 
|  | "--function", | 
|  | type=str, | 
|  | required=True, | 
|  | metavar="<function>", | 
|  | help="The name of the entry function", | 
|  | ) | 
|  | parser.add_argument( | 
|  | "--inputs", | 
|  | type=str, | 
|  | required=True, | 
|  | metavar="<inputs>", | 
|  | help="A list of comma-separated function inputs", | 
|  | ) | 
|  | parser.add_argument( | 
|  | "--additional_args", | 
|  | type=str, | 
|  | required=True, | 
|  | metavar="<additional-cl-args>", | 
|  | help="Additional command-line arguments", | 
|  | ) | 
|  | parser.add_argument( | 
|  | "-o", | 
|  | "--output", | 
|  | type=str, | 
|  | required=True, | 
|  | metavar="<output-file>", | 
|  | help="Output file to write to", | 
|  | ) | 
|  | return parser.parse_args() | 
|  |  | 
|  |  | 
|  | def main(args): | 
|  | lines = [ | 
|  | f"--device={args.device}", | 
|  | f"--module={args.module}", | 
|  | f"--function={args.function}", | 
|  | ] | 
|  | lines.extend([("--input=" + e) for e in args.inputs.split(",")]) | 
|  | lines.extend(args.additional_args.split(";")) | 
|  | content = "\n".join(lines) + "\n" | 
|  |  | 
|  | with open(args.output, "w") as f: | 
|  | f.writelines(content) | 
|  |  | 
|  |  | 
|  | if __name__ == "__main__": | 
|  | main(parse_arguments()) |