blob: 2c12ebabba8ee0efa82aafd038afea094587678d [file] [log] [blame]
# 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
import io
import subprocess
from iree.compiler import ir
from iree.compiler import passmanager
from iree.compiler import version
from iree.compiler.dialects import arith
from iree.compiler.dialects import chlo
from iree.compiler.dialects import mhlo
from iree.compiler.dialects import iree_input
from iree.compiler.dialects import builtin
from iree.compiler.dialects import std
from iree.compiler.dialects import linalg
from iree.compiler.dialects import linalg
from iree.compiler.dialects import math
from iree.compiler.dialects import memref
from iree.compiler.dialects import shape
from iree.compiler.dialects import tensor
from iree.compiler.dialects import tosa
from iree.compiler.dialects import vector
from iree.compiler.transforms import ireec
# Test the compiler API.
with ir.Context() as ctx:
chlo.register_chlo_dialect(ctx)
mhlo.register_mhlo_dialect(ctx)
iree_input.register_dialect(ctx)
input_module = ir.Module.parse(r"""
builtin.module {
builtin.func @fabs(%arg0: tensor<1x4xf32>, %arg1: tensor<4x1xf32>) -> tensor<4x4xf32> {
%0 = chlo.broadcast_add %arg0, %arg1 : (tensor<1x4xf32>, tensor<4x1xf32>) -> tensor<4x4xf32>
%1 = "mhlo.abs"(%0) : (tensor<4x4xf32>) -> tensor<4x4xf32>
return %1 : tensor<4x4xf32>
}
}
""")
options = ireec.CompilerOptions("--iree-input-type=mhlo",
"--iree-hal-target-backends=cpu")
print(options)
pm = passmanager.PassManager()
ireec.build_iree_vm_pass_pipeline(options, pm)
pm.run(input_module)
print(input_module)
bytecode_io = io.BytesIO()
ireec.translate_module_to_vm_bytecode(options, input_module, bytecode_io)
print(f"Bytecode module len = {len(bytecode_io.getbuffer())}")
# Check version.
print(f"PACKAGE_SUFFIX={version.PACKAGE_SUFFIX}")
print(f"VERSION={version.VERSION}")
print(f"REVISIONS={version.REVISIONS!r}")
# Check console scripts.
subprocess.check_output(["iree-compile", "-help"])