Renaming iree-run-mlir2 -> iree-run-mlir and making the other tool names consistent.
PiperOrigin-RevId: 287589722
diff --git a/build_tools/cmake/iree_bytecode_module.cmake b/build_tools/cmake/iree_bytecode_module.cmake
index 77476e9..88fa28c 100644
--- a/build_tools/cmake/iree_bytecode_module.cmake
+++ b/build_tools/cmake/iree_bytecode_module.cmake
@@ -62,10 +62,10 @@
set(_ARGS "${_TRANSLATION}")
list(APPEND _ARGS "${CMAKE_CURRENT_SOURCE_DIR}/${_RULE_SRC}")
list(APPEND _ARGS "-o")
- list(APPEND _ARGS "${_RULE_NAME}.emod")
+ list(APPEND _ARGS "${_RULE_NAME}.module")
add_custom_command(
- OUTPUT "${_RULE_NAME}.emod"
+ OUTPUT "${_RULE_NAME}.module"
COMMAND ${_TRANSLATION_TOOL_EXECUTABLE} ${_ARGS}
DEPENDS ${_TRANSLATION_TOOL}
)
@@ -81,7 +81,7 @@
IDENTIFIER
"${_RULE_NAME}"
GENERATED_SRCS
- "${_RULE_NAME}.emod"
+ "${_RULE_NAME}.module"
CC_FILE_OUTPUT
"${_RULE_NAME}.cc"
H_FILE_OUTPUT
diff --git a/docs/getting_started.md b/docs/getting_started.md
index e530b24..7e709de 100644
--- a/docs/getting_started.md
+++ b/docs/getting_started.md
@@ -88,18 +88,18 @@
-o /tmp/module.fb
```
-### run_module
+### iree-run-module
-The `run_module` program takes an already translated IREE module as input and
-executes an exported main function using the provided inputs.
+The `iree-run-module` program takes an already translated IREE module as input
+and executes an exported main function using the provided inputs.
This program can be used in sequence with `iree-translate` to translate a .mlir
file to an IREE module and then execute it. Here is an example command that runs
the `simple_mul` function in `simple_compute_test.mlir`.
```shell
-$ bazel build -c opt //iree/tools:iree-translate //iree/tools:run_module
-$ ./bazel-bin/iree/tools/run_module \
+$ bazel build -c opt //iree/tools:iree-translate //iree/tools:iree-run-module
+$ ./bazel-bin/iree/tools/iree-run-module \
--main_module=/tmp/module.fb \
--main_function=simple_mul \
--input_values="4xf32=1 2 3 4
diff --git a/iree/schemas/BUILD b/iree/schemas/BUILD
index 3d6255e..45c33af 100644
--- a/iree/schemas/BUILD
+++ b/iree/schemas/BUILD
@@ -65,15 +65,6 @@
],
)
-# TODO(benvanik): also expose as C using flatcc.
-iree_flatbuffer_cc_library(
- name = "bytecode_module_def_cc_fbs",
- srcs = ["bytecode_module_def.fbs"],
- flatc_args = FLATC_ARGS,
- includes = [
- ],
-)
-
iree_flatbuffer_cc_library(
name = "debug_service_cc_fbs",
srcs = ["debug_service.fbs"],
@@ -282,3 +273,12 @@
cpp_namespace = "iree::schemas",
h_file_output = "reflection_data.h",
)
+
+# TODO(benvanik): also expose as C using flatcc.
+iree_flatbuffer_cc_library(
+ name = "bytecode_module_def_cc_fbs",
+ srcs = ["bytecode_module_def.fbs"],
+ flatc_args = FLATC_ARGS,
+ includes = [
+ ],
+)
diff --git a/iree/schemas/bytecode_module_def.fbs b/iree/schemas/bytecode_module_def.fbs
index bb8eceb..cfccbf7 100644
--- a/iree/schemas/bytecode_module_def.fbs
+++ b/iree/schemas/bytecode_module_def.fbs
@@ -16,7 +16,7 @@
// 'Bytecode MODule'.
file_identifier "BMOD";
-file_extension "bmod";
+file_extension "module";
// Arbitrary key/value reflection attribute.
table ReflectionAttrDef {
diff --git a/iree/tools/BUILD b/iree/tools/BUILD
index 04cfff7..b01e7b7 100644
--- a/iree/tools/BUILD
+++ b/iree/tools/BUILD
@@ -32,6 +32,19 @@
"//iree/compiler/Dialect/HAL/Target/VulkanSPIRV",
]
+cc_binary(
+ name = "iree-dump-module",
+ srcs = ["dump_module_main.cc"],
+ deps = [
+ "//iree/base:file_io", # build-cleaner: keep
+ "//iree/base:flatbuffer_util",
+ "//iree/base:init",
+ "//iree/schemas",
+ "//iree/schemas:bytecode_module_def_cc_fbs",
+ "@com_github_google_flatbuffers//:flatbuffers",
+ ],
+)
+
cc_library(
name = "iree_opt_library",
deps = [
@@ -77,37 +90,6 @@
deps = [
"@com_google_absl//absl/flags:flag",
"@com_google_absl//absl/strings",
- "//iree/base:source_location",
- "//iree/rt",
- "//iree/vm:sequencer_module",
- "@llvm-project//llvm:support",
- "@llvm-project//mlir:IR",
- "@llvm-project//mlir:Parser",
- "@llvm-project//mlir:Support",
- "//iree/base:init",
- "//iree/base:status",
- "//iree/compiler/Translation/Sequencer",
- "//iree/compiler/Translation/Interpreter",
- "//iree/compiler/Translation/SPIRV",
- "//iree/compiler/Translation:IREEVM",
- "//iree/hal:buffer_view_string_util",
- "//iree/hal:driver_registry",
- "//iree/schemas",
- "//iree/rt/debug:debug_server_flags",
- ] + TARGET_COMPILER_BACKENDS + PLATFORM_VULKAN_DEPS + [
- "//iree/hal/interpreter:interpreter_driver_module",
- # TODO(b/142004903): enable when Dawn HAL implementation is functional
- # "//iree/hal/dawn:dawn_driver_module",
- "//iree/hal/vulkan:vulkan_driver_module",
- ],
-)
-
-cc_binary(
- name = "iree-run-mlir2",
- srcs = ["run_mlir_main2.cc"],
- deps = [
- "@com_google_absl//absl/flags:flag",
- "@com_google_absl//absl/strings",
"//iree/base:api",
"//iree/base:api_util",
"//iree/base:shaped_buffer",
@@ -153,7 +135,7 @@
cc_library(
name = "iree_translate_library",
- srcs = ["iree_translate_main.cc"],
+ srcs = ["translate_main.cc"],
deps = [
"//iree/compiler/Dialect/VM/Target/Bytecode",
"//iree/compiler/Translation:IREEVM",
@@ -181,7 +163,7 @@
)
cc_binary(
- name = "run_module",
+ name = "iree-run-module",
srcs = ["run_module_main.cc"],
deps = [
"//iree/base:file_io",
@@ -201,19 +183,6 @@
],
)
-cc_binary(
- name = "iree_dump_module",
- srcs = ["dump_module.cc"],
- deps = [
- "//iree/base:file_io", # build-cleaner: keep
- "//iree/base:flatbuffer_util",
- "//iree/base:init",
- "//iree/schemas",
- "//iree/schemas:reflection_data",
- "@com_github_google_flatbuffers//:flatbuffers",
- ],
-)
-
sh_binary(
name = "IreeFileCheck",
testonly = True,
diff --git a/iree/tools/CMakeLists.txt b/iree/tools/CMakeLists.txt
index 43c89a3..1194b09 100644
--- a/iree/tools/CMakeLists.txt
+++ b/iree/tools/CMakeLists.txt
@@ -105,7 +105,7 @@
OUT
iree-translate
SRCS
- "iree_translate_main.cc"
+ "translate_main.cc"
DEPS
${_ALWAYSLINK_LIBS}
iree::compiler::Translation::Interpreter
diff --git a/iree/tools/compilation.bzl b/iree/tools/compilation.bzl
index 6fdcc23..19c6dde 100644
--- a/iree/tools/compilation.bzl
+++ b/iree/tools/compilation.bzl
@@ -28,13 +28,13 @@
name = name,
srcs = [src],
outs = [
- "%s.emod" % (name),
+ "%s.module" % (name),
],
cmd = " && ".join([
" ".join([
"$(location %s)" % (translate_tool),
translation,
- "-o $(location %s.emod)" % (name),
+ "-o $(location %s.module)" % (name),
"$(location %s)" % (src),
]),
]),
@@ -49,7 +49,7 @@
cc_embed_data(
name = "%s_cc" % (name),
identifier = name,
- srcs = ["%s.emod" % (name)],
+ srcs = ["%s.module" % (name)],
cc_file_output = "%s.cc" % (name),
h_file_output = "%s.h" % (name),
cpp_namespace = cc_namespace,
diff --git a/iree/tools/dump_module.cc b/iree/tools/dump_module_main.cc
similarity index 91%
rename from iree/tools/dump_module.cc
rename to iree/tools/dump_module_main.cc
index 9beedf6..a55cc1a 100644
--- a/iree/tools/dump_module.cc
+++ b/iree/tools/dump_module_main.cc
@@ -14,6 +14,7 @@
#include <iostream>
#include <string>
+#include <utility>
#include "flatbuffers/flatbuffers.h"
#include "flatbuffers/minireflect.h"
@@ -21,13 +22,12 @@
#include "flatbuffers/util.h"
#include "iree/base/flatbuffer_util.h"
#include "iree/base/init.h"
-#include "iree/schemas/module_def_generated.h"
+#include "iree/schemas/bytecode_module_def_generated.h"
namespace {
using ::flatbuffers::ElementaryType;
using ::flatbuffers::NumToString;
-using ::flatbuffers::Offset;
using ::flatbuffers::String;
using ::flatbuffers::TypeTable;
@@ -38,7 +38,8 @@
bool is_truncating_vector = false;
int vector_depth = 0;
- explicit TruncatingToStringVisitor(std::string delimiter) : d(delimiter) {}
+ explicit TruncatingToStringVisitor(std::string delimiter)
+ : d(std::move(delimiter)) {}
void StartSequence() override {
if (is_truncating_vector) return;
@@ -157,16 +158,16 @@
} // namespace
-int main(int argc, char** argv) {
+extern "C" int main(int argc, char** argv) {
iree::InitializeEnvironment(&argc, &argv);
if (argc < 2) {
- std::cerr << "Syntax: iree_dump_module filename\n";
+ std::cerr << "Syntax: iree-dump-module filename\n";
return 1;
}
std::string module_path = argv[1];
- auto module_fb = iree::FlatBufferFile<iree::ModuleDef>::LoadFile(
- iree::ModuleDefIdentifier(), module_path)
+ auto module_fb = iree::FlatBufferFile<iree::vm::BytecodeModuleDef>::LoadFile(
+ iree::vm::BytecodeModuleDefIdentifier(), module_path)
.ValueOrDie();
TruncatingToStringVisitor tos_visitor("\n");
auto object = reinterpret_cast<const uint8_t*>(module_fb->root());
diff --git a/iree/tools/run_mlir_main.cc b/iree/tools/run_mlir_main.cc
index 147f702..b7f341f 100644
--- a/iree/tools/run_mlir_main.cc
+++ b/iree/tools/run_mlir_main.cc
@@ -16,85 +16,121 @@
// This is meant to be called from LIT for FileCheck tests, and tries to match
// the interface of mlir-opt (featuring -split-input-file, etc) so it's easier
// to work with there. If you want a more generalized runner for standalone
-// precompiled IREE modules use //third_party/iree/tools:run_module.
+// precompiled IREE modules use //third_party/iree/tools:iree-run-module.
//
// By default all exported functions in the module will be run in order.
// All input values, provided via -input-values, will be passed to the
// functions (this means all input signatures must match). Results from the
// executed functions will be printed to stdout for checking.
-// Use -output_types to set the function output data types, which like args will
-// be used for all functions executed.
//
// Example input:
-// // RUN: iree-run %s | FileCheck %s
+// // RUN: iree-run-mlir %s | IreeFileCheck %s
// // CHECK-LABEL: @foo
// // CHECK: 1xf32: 2
-// func @foo() -> memref<f32> attributes {iree.module.export} {
-// %0 = "iree.constant"() {value: dense<tensor<f32>, 2.0>} : () -> memref<f32>
-// return %0 : memref<f32>
+// func @foo() -> tensor<f32> attributes {iree.module.export} {
+// %0 = constant dense<2.0> : tensor<f32>
+// return %0 : tensor<f32>
// }
+//
+// Command line arguments are handled by LLVM's parser by default but -- can be
+// used to separate the compiler flags from the runtime flags, such as:
+// iree-run-mlir -iree-hal-target-backends=vulkan-spirv -- --logtostderr
#include <iostream>
+#include <utility>
#include "absl/flags/flag.h"
#include "absl/strings/numbers.h"
#include "absl/strings/str_replace.h"
#include "absl/strings/str_split.h"
#include "absl/strings/string_view.h"
+#include "iree/base/api.h"
+#include "iree/base/api_util.h"
#include "iree/base/init.h"
+#include "iree/base/shaped_buffer.h"
+#include "iree/base/shaped_buffer_string_util.h"
+#include "iree/base/signature_mangle.h"
#include "iree/base/source_location.h"
#include "iree/base/status.h"
-#include "iree/compiler/Translation/Sequencer/SequencerModuleTranslation.h"
-#include "iree/hal/buffer_view_string_util.h"
-#include "iree/hal/driver_registry.h"
-#include "iree/rt/context.h"
-#include "iree/rt/debug/debug_server_flags.h"
-#include "iree/rt/instance.h"
-#include "iree/rt/invocation.h"
-#include "iree/rt/module.h"
-#include "iree/rt/module_printer.h"
-#include "iree/schemas/module_def_generated.h"
-#include "iree/vm/sequencer_module.h"
+#include "iree/compiler/Dialect/Flow/Transforms/Passes.h"
+#include "iree/compiler/Dialect/HAL/Transforms/Passes.h"
+#include "iree/compiler/Dialect/VM/Target/Bytecode/BytecodeModuleTarget.h"
+#include "iree/compiler/Dialect/VM/Target/Bytecode/TranslationFlags.h"
+#include "iree/compiler/Dialect/VM/Transforms/Passes.h"
+#include "iree/compiler/Translation/IREEVM.h"
+#include "iree/hal/api.h"
+#include "iree/modules/hal/hal_module.h"
+#include "iree/vm2/api.h"
+#include "iree/vm2/bytecode_module.h"
#include "llvm/ADT/StringRef.h"
+#include "llvm/Support/CommandLine.h"
+#include "llvm/Support/InitLLVM.h"
#include "llvm/Support/SourceMgr.h"
#include "mlir/IR/Attributes.h"
#include "mlir/IR/Function.h"
#include "mlir/IR/MLIRContext.h"
#include "mlir/IR/Module.h"
#include "mlir/Parser.h"
+#include "mlir/Pass/PassManager.h"
#include "mlir/Support/FileUtilities.h"
-ABSL_FLAG(bool, split_input_file, true,
- "Split the input file into multiple modules.");
+static llvm::cl::opt<std::string> input_file_flag{
+ llvm::cl::Positional,
+ llvm::cl::desc("<input .mlir file>"),
+ llvm::cl::init("-"),
+};
-ABSL_FLAG(std::string, target_backends, "",
- "Comma-separated list of target backends to translate executables "
- "into. Omit to translate using all linked-in backend translators.");
-ABSL_FLAG(
- bool, export_all, true,
- "Automatically add the iree.module.export attribute to all functions.");
+static llvm::cl::opt<bool> split_input_file_flag{
+ "split-input-file",
+ llvm::cl::desc("Split the input file into multiple modules"),
+ llvm::cl::init(true),
+};
-ABSL_FLAG(std::string, input_values, "", "Input shapes and optional values.");
-ABSL_FLAG(std::string, output_types, "",
- "Output data types (comma delimited list of b/i/u/f for "
- "binary/signed int/unsigned int/float).");
+static llvm::cl::opt<bool> export_all_flag{
+ "export-all",
+ llvm::cl::desc("Adds iree.module.export to all functions"),
+ llvm::cl::init(true),
+};
-// TODO(benvanik): is there a more canonical flag we can use?
-ABSL_FLAG(bool, print_mlir, true, "Prints MLIR IR during translation.");
+static llvm::cl::opt<bool> print_mlir_flag{
+ "print-mlir",
+ llvm::cl::desc("Prints MLIR IR after translation"),
+ llvm::cl::init(false),
+};
-ABSL_FLAG(bool, print_bytecode, false,
- "Prints IREE bytecode after translation.");
+static llvm::cl::opt<bool> print_annotated_mlir_flag{
+ "print-annotated-mlir",
+ llvm::cl::desc("Prints MLIR IR with final serialization annotations"),
+ llvm::cl::init(false),
+};
-ABSL_FLAG(bool, run, true,
- "Option to run the file. Setting it to false just compiles it.");
+static llvm::cl::opt<bool> print_flatbuffer_flag{
+ "print-flatbuffer",
+ llvm::cl::desc("Prints Flatbuffer text after serialization"),
+ llvm::cl::init(false),
+};
+
+static llvm::cl::list<std::string> input_values_flag{
+ "input-value",
+ llvm::cl::desc("Input shapes and optional values"),
+ llvm::cl::ZeroOrMore,
+};
+
+static llvm::cl::opt<bool> run_flag{
+ "run",
+ llvm::cl::desc("Runs the module (vs. just compiling and verifing)"),
+ llvm::cl::init(true),
+};
+
+static llvm::cl::list<std::string> run_args_flag{
+ "run-arg",
+ llvm::cl::desc("Argument passed to the execution flag parser"),
+ llvm::cl::ZeroOrMore,
+};
namespace iree {
namespace {
-using ::iree::hal::BufferView;
-using ::iree::rt::Function;
-using ::iree::rt::Module;
-
// Returns a driver name capable of handling input from the given backend.
std::string BackendToDriverName(std::string backend) {
size_t dash = backend.find('-');
@@ -105,8 +141,30 @@
}
}
+// Returns a list of target compiler backends to use for file evaluation.
+StatusOr<std::vector<std::string>> GetTargetBackends() {
+ auto target_backends =
+ mlir::iree_compiler::IREE::HAL::getExecutableTargetOptionsFromFlags()
+ .targets;
+ if (target_backends.empty()) {
+ iree_string_view_t* driver_names = nullptr;
+ iree_host_size_t driver_count = 0;
+ RETURN_IF_ERROR(
+ FromApiStatus(iree_hal_driver_registry_query_available_drivers(
+ IREE_ALLOCATOR_SYSTEM, &driver_names, &driver_count),
+ IREE_LOC));
+ for (int i = 0; i < driver_count; ++i) {
+ target_backends.push_back(
+ std::string(driver_names[i].data, driver_names[i].size));
+ }
+ iree_allocator_free(IREE_ALLOCATOR_SYSTEM, driver_names);
+ }
+ return target_backends;
+}
+
// Prepares a module for evaluation by running MLIR import and IREE translation.
-StatusOr<ref_ptr<Module>> PrepareModule(
+// Returns the serialized flatbuffer data.
+StatusOr<std::string> PrepareModule(
std::string target_backend,
std::unique_ptr<llvm::MemoryBuffer> file_buffer) {
mlir::MLIRContext context;
@@ -117,33 +175,72 @@
mlir::OwningModuleRef mlir_module =
mlir::parseSourceFile(source_mgr, &context);
- if (absl::GetFlag(FLAGS_export_all)) {
+ if (export_all_flag) {
for (auto function : mlir_module->getOps<mlir::FuncOp>()) {
function.setAttr("iree.module.export", mlir::UnitAttr::get(&context));
}
}
// Translate from MLIR to IREE bytecode.
- mlir::iree_compiler::ModuleTranslationOptions options;
- options.print_mlir = absl::GetFlag(FLAGS_print_mlir);
- options.target_backends = {target_backend};
- auto iree_module_bytes =
- mlir::iree_compiler::translateMlirToIreeSequencerModule(mlir_module.get(),
- options);
- if (iree_module_bytes.empty()) {
- return iree::InternalErrorBuilder(IREE_LOC)
- << "Error translating MLIR to an IREE sequencer module";
+ LOG(INFO) << "Compiling for target backend '" << target_backend << "'...";
+ auto executable_options =
+ mlir::iree_compiler::IREE::HAL::getExecutableTargetOptionsFromFlags();
+ executable_options.targets = {std::move(target_backend)};
+ mlir::PassManager pass_manager(mlir_module->getContext());
+ mlir::iree_compiler::IREE::Flow::buildFlowTransformPassPipeline(pass_manager);
+ mlir::iree_compiler::IREE::HAL::buildHALTransformPassPipeline(
+ pass_manager, executable_options);
+ mlir::iree_compiler::IREE::VM::buildVMTransformPassPipeline(pass_manager);
+ if (failed(pass_manager.run(mlir_module.get()))) {
+ return InternalErrorBuilder(IREE_LOC)
+ << "Conversion from source -> vm failed";
}
- if (absl::GetFlag(FLAGS_print_mlir)) {
+ if (print_mlir_flag) {
mlir_module->dump();
}
- // Wrap module in a file handle.
- ASSIGN_OR_RETURN(auto iree_module_file,
- vm::ModuleFile::FromBuffer(ModuleDefIdentifier(),
- std::move(iree_module_bytes)));
- return vm::SequencerModule::FromFile(std::move(iree_module_file));
+ auto bytecode_options =
+ mlir::iree_compiler::IREE::VM::getBytecodeTargetOptionsFromFlags();
+ std::string binary_contents;
+ llvm::raw_string_ostream binary_output(binary_contents);
+ if (failed(mlir::iree_compiler::IREE::VM::translateModuleToBytecode(
+ mlir_module.get(), bytecode_options, binary_output))) {
+ return InternalErrorBuilder(IREE_LOC)
+ << "Serialization to flatbuffer bytecode (binary) failed";
+ }
+ binary_output.flush();
+
+ // Print the annotated MLIR and flatbuffer; easiest way right now is to just
+ // do it all again.
+ if (print_annotated_mlir_flag) {
+ bytecode_options.outputFormat =
+ mlir::iree_compiler::IREE::VM::BytecodeOutputFormat::kAnnotatedMlirText;
+ std::string text_contents;
+ llvm::raw_string_ostream text_output(text_contents);
+ if (failed(mlir::iree_compiler::IREE::VM::translateModuleToBytecode(
+ mlir_module.get(), bytecode_options, text_output))) {
+ return InternalErrorBuilder(IREE_LOC)
+ << "Serialization to annotated MLIR (text) failed";
+ }
+ text_output.flush();
+ std::cerr << text_contents << std::endl;
+ }
+ if (print_flatbuffer_flag) {
+ bytecode_options.outputFormat =
+ mlir::iree_compiler::IREE::VM::BytecodeOutputFormat::kFlatBufferText;
+ std::string text_contents;
+ llvm::raw_string_ostream text_output(text_contents);
+ if (failed(mlir::iree_compiler::IREE::VM::translateModuleToBytecode(
+ mlir_module.get(), bytecode_options, text_output))) {
+ return InternalErrorBuilder(IREE_LOC)
+ << "Serialization to flatbuffer bytecode (text) failed";
+ }
+ text_output.flush();
+ std::cerr << text_contents << std::endl;
+ }
+
+ return binary_contents;
}
// Parses a list of input shapes and values from a string of newline-separated
@@ -152,42 +249,127 @@
// [shape]xtype=[value]
// Example:
// 4x4xi8=0,1,2,3
-StatusOr<std::vector<BufferView>> ParseInputsFromFlags(
- hal::Allocator *allocator) {
- std::string file_contents =
- absl::StrReplaceAll(absl::GetFlag(FLAGS_input_values), {{"\\n", "\n"}});
- std::vector<BufferView> inputs;
- std::vector<std::string> lines = absl::StrSplit(
- file_contents, absl::ByAnyChar("\n;"), absl::SkipWhitespace());
- for (const auto &line : lines) {
- ASSIGN_OR_RETURN(auto input,
- hal::ParseBufferViewFromString(line, allocator));
- inputs.push_back(input);
+StatusOr<iree_vm_variant_list_t*> ParseInputsFromFlags(
+ iree_vm_function_t function, iree_hal_allocator_t* allocator) {
+ iree_vm_variant_list_t* inputs = nullptr;
+ RETURN_IF_ERROR(
+ FromApiStatus(iree_vm_variant_list_alloc(input_values_flag.size(),
+ IREE_ALLOCATOR_SYSTEM, &inputs),
+ IREE_LOC));
+ for (const auto& input_value : input_values_flag) {
+ ASSIGN_OR_RETURN(auto shaped_buffer,
+ ParseShapedBufferFromString(input_value),
+ _ << "Parsing input value '" << input_value << "'");
+ iree_hal_buffer_t* input_buffer = nullptr;
+ // TODO(benvanik): combined function for linear to optimal upload.
+ iree_device_size_t allocation_size =
+ shaped_buffer.shape().element_count() * shaped_buffer.element_size();
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_hal_allocator_allocate_buffer(
+ allocator,
+ static_cast<iree_hal_memory_type_t>(
+ IREE_HAL_MEMORY_TYPE_HOST_LOCAL |
+ IREE_HAL_MEMORY_TYPE_DEVICE_VISIBLE),
+ static_cast<iree_hal_buffer_usage_t>(
+ IREE_HAL_BUFFER_USAGE_ALL | IREE_HAL_BUFFER_USAGE_CONSTANT),
+ allocation_size, &input_buffer),
+ IREE_LOC))
+ << "Allocating input buffer";
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_hal_buffer_write_data(input_buffer, 0,
+ shaped_buffer.contents().data(),
+ shaped_buffer.contents().size()),
+ IREE_LOC))
+ << "Populating input buffer contents";
+ auto input_buffer_ref = iree_hal_buffer_move_ref(input_buffer);
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_vm_variant_list_append_ref_move(inputs, &input_buffer_ref),
+ IREE_LOC));
}
return inputs;
}
// Outputs all results from the function to stdout in IREE BufferView format.
-Status OutputFunctionResults(const Function &function,
- absl::Span<BufferView> results) {
- std::vector<std::string> output_types =
- absl::StrSplit(absl::GetFlag(FLAGS_output_types), absl::ByAnyChar(", "),
- absl::SkipWhitespace());
- if (!output_types.empty() && output_types.size() != results.size()) {
- return InvalidArgumentErrorBuilder(IREE_LOC)
- << "--output_types= specified but has " << output_types.size()
- << " types when the function returns " << results.size();
+Status OutputFunctionResults(iree_vm_function_t function,
+ iree_vm_variant_list_t* outputs) {
+ iree_string_view_t sig_fv =
+ iree_vm_function_reflection_attr(&function, iree_make_cstring_view("fv"));
+ if (iree_string_view_compare(sig_fv, iree_make_cstring_view("1")) != 0) {
+ return UnimplementedErrorBuilder(IREE_LOC) << "Unsupported function ABI";
}
- for (int i = 0; i < results.size(); ++i) {
- const auto &result = results[i];
+ iree_string_view_t sig_f =
+ iree_vm_function_reflection_attr(&function, iree_make_cstring_view("f"));
+ RawSignatureParser sig_parser;
+ absl::InlinedVector<RawSignatureParser::Description, 4> output_descs;
+ sig_parser.VisitResults(absl::string_view{sig_f.data, sig_f.size},
+ [&](const RawSignatureParser::Description& desc) {
+ output_descs.push_back(desc);
+ });
+ if (output_descs.size() != iree_vm_variant_list_size(outputs)) {
+ return FailedPreconditionErrorBuilder(IREE_LOC)
+ << "Result signature mismatch; expected " << output_descs.size()
+ << " results but VM returned " << iree_vm_variant_list_size(outputs);
+ }
+
+ for (int i = 0; i < iree_vm_variant_list_size(outputs); ++i) {
+ iree_vm_variant_t* variant = iree_vm_variant_list_get(outputs, i);
+ auto* buffer = iree_hal_buffer_deref(&variant->ref);
+
+ const auto& desc = output_descs[i];
+ std::string desc_str;
+ desc.ToString(desc_str);
auto print_mode = BufferDataPrintMode::kFloatingPoint;
- if (!output_types.empty()) {
- ASSIGN_OR_RETURN(print_mode, ParseBufferDataPrintMode(output_types[i]));
+ int8_t element_size = 4;
+ Shape shape;
+ switch (desc.type) {
+ case RawSignatureParser::Type::kBuffer:
+ switch (desc.buffer.scalar_type) {
+ case AbiConstants::ScalarType::kIeeeFloat16:
+ case AbiConstants::ScalarType::kIeeeFloat32:
+ case AbiConstants::ScalarType::kIeeeFloat64:
+ print_mode = BufferDataPrintMode::kFloatingPoint;
+ break;
+ case AbiConstants::ScalarType::kSint8:
+ case AbiConstants::ScalarType::kSint16:
+ case AbiConstants::ScalarType::kSint32:
+ case AbiConstants::ScalarType::kSint64:
+ print_mode = BufferDataPrintMode::kSignedInteger;
+ break;
+ case AbiConstants::ScalarType::kUint8:
+ case AbiConstants::ScalarType::kUint16:
+ case AbiConstants::ScalarType::kUint32:
+ case AbiConstants::ScalarType::kUint64:
+ print_mode = BufferDataPrintMode::kUnsignedInteger;
+ break;
+ default:
+ print_mode = BufferDataPrintMode::kBinary;
+ break;
+ }
+ element_size = AbiConstants::kScalarTypeSize[static_cast<unsigned>(
+ desc.buffer.scalar_type)];
+ shape = Shape{desc.dims};
+ break;
+ default:
+ return UnimplementedErrorBuilder(IREE_LOC)
+ << "Unsupported signature type: " << desc_str;
}
- ASSIGN_OR_RETURN(auto result_str,
- hal::PrintBufferViewToString(result, print_mode, 1024));
- LOG(INFO) << "result[" << i << "]: " << result.buffer->DebugString();
+
+ // TODO(benvanik): debug string C API: buffer->DebugString();
+ LOG(INFO) << "result[" << i << "]: " << desc_str;
+ iree_hal_mapped_memory_t mapped_memory;
+ RETURN_IF_ERROR(
+ FromApiStatus(iree_hal_buffer_map(buffer, IREE_HAL_MEMORY_ACCESS_READ,
+ 0, IREE_WHOLE_BUFFER, &mapped_memory),
+ IREE_LOC));
+ auto contents = absl::MakeConstSpan(mapped_memory.contents.data,
+ mapped_memory.contents.data_length);
+ ShapedBuffer shaped_buffer(
+ element_size, shape,
+ std::vector<uint8_t>(contents.begin(), contents.end()));
+ ASSIGN_OR_RETURN(auto result_str, PrintShapedBufferToString(
+ shaped_buffer, print_mode, 1024));
+ iree_hal_buffer_unmap(buffer, &mapped_memory);
std::cout << result_str << "\n";
}
@@ -195,105 +377,167 @@
}
// Evaluates a single function in its own fiber, printing the results to stdout.
-Status EvaluateFunction(const ref_ptr<rt::Context> &context,
- hal::Allocator *allocator, const Function &function) {
- std::cout << "EXEC @" << function.name() << std::endl;
+Status EvaluateFunction(iree_vm_context_t* context,
+ iree_hal_allocator_t* allocator,
+ iree_vm_function_t function) {
+ auto function_name = iree_vm_function_name(&function);
+ std::cout << "EXEC @"
+ << absl::string_view(function_name.data, function_name.size)
+ << std::endl;
- // Create invocation that will perform the execution.
- ASSIGN_OR_RETURN(auto arguments, ParseInputsFromFlags(allocator));
- ASSIGN_OR_RETURN(
- auto invocation,
- rt::Invocation::Create(add_ref(context), function, make_ref<rt::Policy>(),
- {}, absl::MakeConstSpan(arguments)));
+ // Parse inputs and create the required input buffers.
+ ASSIGN_OR_RETURN(auto* input_list, ParseInputsFromFlags(function, allocator));
- // Wait until invocation completes.
- RETURN_IF_ERROR(invocation->Await(absl::InfiniteFuture()));
+ // Prepare outputs list to accept the results from the invocation.
+ iree_vm_variant_list_t* output_list = nullptr;
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_vm_variant_list_alloc(16, IREE_ALLOCATOR_SYSTEM, &output_list),
+ IREE_LOC));
+
+ // Synchronously invoke the function.
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_vm_invoke(context, function, /*policy=*/nullptr, input_list,
+ output_list, IREE_ALLOCATOR_SYSTEM),
+ IREE_LOC));
+
+ iree_vm_variant_list_free(input_list);
// Print outputs.
- ASSIGN_OR_RETURN(auto results, invocation->ConsumeResults());
- RETURN_IF_ERROR(OutputFunctionResults(function, absl::MakeSpan(results)));
+ RETURN_IF_ERROR(OutputFunctionResults(function, output_list));
+ iree_vm_variant_list_free(output_list);
return OkStatus();
}
// Evaluates all exported functions within given module.
-Status EvaluateFunctions(absl::string_view target_backend,
- ref_ptr<Module> module) {
- // Create the context we'll use for this (ensuring that we can't interfere
- // with other running evaluations, such as when in a multithreaded test
- // runner).
- ASSIGN_OR_RETURN(auto debug_server, rt::debug::CreateDebugServerFromFlags());
- auto instance = make_ref<rt::Instance>(std::move(debug_server));
- ASSIGN_OR_RETURN(auto driver, hal::DriverRegistry::shared_registry()->Create(
- target_backend));
- ASSIGN_OR_RETURN(auto device, driver->CreateDefaultDevice());
- RETURN_IF_ERROR(instance->device_manager()->RegisterDevice(add_ref(device)));
+Status EvaluateFunctions(iree_vm_instance_t* instance,
+ absl::string_view target_backend,
+ const std::string& flatbuffer_data) {
+ LOG(INFO) << "Evaluating all functions in module for backend '"
+ << target_backend << "'...";
- if (absl::GetFlag(FLAGS_print_bytecode)) {
- RETURN_IF_ERROR(rt::PrintModuleToStream(
- *module, rt::PrintModuleFlag::kDisassemble, &std::cout));
+ // Load the bytecode module from the flatbuffer data.
+ // We do this first so that if we fail validation we know prior to dealing
+ // with devices.
+ iree_vm_module_t* bytecode_module = nullptr;
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_vm_bytecode_module_create(
+ iree_const_byte_span_t{
+ reinterpret_cast<const uint8_t*>(flatbuffer_data.c_str()),
+ flatbuffer_data.size()},
+ IREE_ALLOCATOR_NULL, IREE_ALLOCATOR_SYSTEM, &bytecode_module),
+ IREE_LOC))
+ << "Deserializing flatbuffer module";
+
+ if (!run_flag) {
+ // Just wanted verification; return without running.
+ iree_vm_module_release(bytecode_module);
+ return OkStatus();
}
+ // Create the driver/device as defined by the test and setup the HAL module.
+ LOG(INFO) << "Creating target backend driver '" << target_backend << "'...";
+ iree_hal_driver_t* driver = nullptr;
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_hal_driver_registry_create_driver(
+ iree_string_view_t{target_backend.data(), target_backend.size()},
+ IREE_ALLOCATOR_SYSTEM, &driver),
+ IREE_LOC))
+ << "Creating driver for " << target_backend;
+ iree_hal_device_t* device = nullptr;
+ RETURN_IF_ERROR(FromApiStatus(iree_hal_driver_create_default_device(
+ driver, IREE_ALLOCATOR_SYSTEM, &device),
+ IREE_LOC))
+ << "Creating default device for " << target_backend;
+ iree_vm_module_t* hal_module = nullptr;
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_hal_module_create(device, IREE_ALLOCATOR_SYSTEM, &hal_module),
+ IREE_LOC))
+ << "Creating HAL module";
+ iree_hal_driver_release(driver);
+
// Evaluate all exported functions.
- auto policy = make_ref<rt::Policy>();
auto run_function = [&](int ordinal) -> Status {
- // Setup a new context for this invocation.
- auto context = make_ref<rt::Context>(add_ref(instance), add_ref(policy));
- RETURN_IF_ERROR(context->RegisterModule(add_ref(module)));
+ iree_vm_function_t function;
+ RETURN_IF_ERROR(
+ FromApiStatus(iree_vm_module_lookup_function_by_ordinal(
+ bytecode_module, IREE_VM_FUNCTION_LINKAGE_EXPORT,
+ ordinal, &function),
+ IREE_LOC))
+ << "Looking up function export " << ordinal;
+ if (iree_string_view_starts_with(iree_vm_function_name(&function),
+ iree_make_cstring_view("__"))) {
+ // Skip internal functions.
+ return OkStatus();
+ }
+
+ // Create the context we'll use for this (ensuring that we can't interfere
+ // with other running evaluations, such as when in a multithreaded test
+ // runner).
+ iree_vm_context_t* context = nullptr;
+ std::vector<iree_vm_module_t*> modules = {hal_module, bytecode_module};
+ RETURN_IF_ERROR(FromApiStatus(iree_vm_context_create_with_modules(
+ instance, modules.data(), modules.size(),
+ IREE_ALLOCATOR_SYSTEM, &context),
+ IREE_LOC))
+ << "Creating context";
// Invoke the function and print results.
- ASSIGN_OR_RETURN(auto function,
- module->LookupFunctionByOrdinal(
- rt::Function::Linkage::kExport, ordinal));
- RETURN_IF_ERROR(EvaluateFunction(context, device->allocator(), function));
+ RETURN_IF_ERROR(
+ EvaluateFunction(context, iree_hal_device_allocator(device), function))
+ << "Evaluating export function " << ordinal;
+
+ iree_vm_context_release(context);
return OkStatus();
};
Status evaluate_status = OkStatus();
- for (int i = 0; i < module->signature().export_function_count(); ++i) {
+ auto module_signature = iree_vm_module_signature(bytecode_module);
+ for (int i = 0; i < module_signature.export_function_count; ++i) {
evaluate_status = run_function(i);
if (!evaluate_status.ok()) {
break;
}
}
- RETURN_IF_ERROR(instance->device_manager()->UnregisterDevice(device.get()));
- device.reset();
- driver.reset();
+ iree_vm_module_release(hal_module);
+ iree_vm_module_release(bytecode_module);
+ iree_hal_device_release(device);
return evaluate_status;
}
// Translates and runs a single LLVM file buffer.
Status EvaluateFile(std::unique_ptr<llvm::MemoryBuffer> file_buffer) {
- std::vector<std::string> target_backends;
- if (absl::GetFlag(FLAGS_target_backends).empty()) {
- target_backends =
- hal::DriverRegistry::shared_registry()->EnumerateAvailableDrivers();
- } else {
- // We need to map specific backends names to drivers (like 'vulkan-spirv' to
- // the driver 'vulkan').
- target_backends = absl::StrSplit(absl::GetFlag(FLAGS_target_backends), ',');
- }
+ // TODO(benvanik): move to instance-based registration.
+ RETURN_IF_ERROR(FromApiStatus(iree_hal_module_register_types(), IREE_LOC))
+ << "Registering HAL types";
- for (auto target_backend : target_backends) {
+ iree_vm_instance_t* instance = nullptr;
+ RETURN_IF_ERROR(FromApiStatus(
+ iree_vm_instance_create(IREE_ALLOCATOR_SYSTEM, &instance), IREE_LOC))
+ << "Create instance";
+
+ ASSIGN_OR_RETURN(auto target_backends, GetTargetBackends());
+ for (const auto& target_backend : target_backends) {
// Prepare the module for execution and evaluate it.
auto cloned_file_buffer = llvm::MemoryBuffer::getMemBufferCopy(
file_buffer->getBuffer(), file_buffer->getBufferIdentifier());
- ASSIGN_OR_RETURN(auto module, PrepareModule(target_backend + '*',
- std::move(cloned_file_buffer)));
- if (!absl::GetFlag(FLAGS_run)) {
- continue;
- }
- RETURN_IF_ERROR(EvaluateFunctions(BackendToDriverName(target_backend),
- std::move(module)));
+ ASSIGN_OR_RETURN(
+ auto flatbuffer_data,
+ PrepareModule(target_backend + '*', std::move(cloned_file_buffer)),
+ _ << "Translating module");
+ RETURN_IF_ERROR(EvaluateFunctions(
+ instance, BackendToDriverName(target_backend), flatbuffer_data))
+ << "Evaluating functions";
}
+ iree_vm_instance_release(instance);
return OkStatus();
}
// Runs the given .mlir file based on the current flags.
-Status RunFile(std::string mlir_filename) {
+Status RunFile(const std::string& mlir_filename) {
// Load input file/from stdin.
std::string error_message;
auto file = mlir::openInputFile(mlir_filename, &error_message);
@@ -303,7 +547,7 @@
<< error_message;
}
- if (!absl::GetFlag(FLAGS_split_input_file)) {
+ if (!split_input_file_flag) {
// Use entire buffer as a single module.
return EvaluateFile(std::move(file));
}
@@ -311,19 +555,19 @@
// Split the buffer into separate modules and evaluate independently.
// This matches the -split-input-file arg to mlir-opt.
const char kSplitMarker[] = "// -----\n";
- auto *full_buffer = file.get();
+ auto* full_buffer = file.get();
llvm::SmallVector<llvm::StringRef, 8> source_buffers;
full_buffer->getBuffer().split(source_buffers, kSplitMarker);
// Add the original buffer to the source manager.
- llvm::SourceMgr fileSourceMgr;
- fileSourceMgr.AddNewSourceBuffer(std::move(file), llvm::SMLoc());
+ llvm::SourceMgr file_source_mgr;
+ file_source_mgr.AddNewSourceBuffer(std::move(file), llvm::SMLoc());
// Process each chunk in turn. Only return the first error (but log all).
Status any_failure;
- for (auto &sub_source_buffer : source_buffers) {
+ for (auto& sub_source_buffer : source_buffers) {
auto split_loc = llvm::SMLoc::getFromPointer(sub_source_buffer.data());
- unsigned split_line = fileSourceMgr.getLineAndColumn(split_loc).first;
+ unsigned split_line = file_source_mgr.getLineAndColumn(split_loc).first;
auto sub_buffer = llvm::MemoryBuffer::getMemBufferCopy(
sub_source_buffer, full_buffer->getBufferIdentifier() +
llvm::Twine(" split at line #") +
@@ -343,15 +587,37 @@
} // namespace
-extern "C" int main(int argc, char **argv) {
- InitializeEnvironment(&argc, &argv);
- if (argc < 2) {
- LOG(ERROR) << "Must supply an input .mlir file.";
- return 1;
+extern "C" int main(int argc, char** argv) {
+ int argc_llvm = argc;
+ char** argv_llvm = argv;
+ int argc_absl = 1;
+ std::vector<char*> argv_absl = {argv[0]};
+ for (int i = 0; i < argc; ++i) {
+ if (std::strcmp(argv[i], "--") == 0) {
+ argc_llvm = i;
+ argc_absl = argc - i;
+ for (int j = i + 1; j < argc; ++j) {
+ argv_absl.push_back(argv[i + 1]);
+ }
+ break;
+ }
}
- auto status = RunFile(argv[1]);
+
+ mlir::registerPassManagerCLOptions();
+ llvm::InitLLVM init_llvm(argc_llvm, argv_llvm);
+ llvm::cl::ParseCommandLineOptions(argc_llvm, argv_llvm);
+
+ for (auto& run_arg : run_args_flag) {
+ argv_absl.push_back(const_cast<char*>(run_arg.c_str()));
+ }
+ argc_absl += run_args_flag.size();
+ char** argv_absl_ptr = argv_absl.data();
+ InitializeEnvironment(&argc_absl, &argv_absl_ptr);
+
+ auto status = RunFile(input_file_flag);
if (!status.ok()) {
- std::cerr << "ERROR running file (" << argv[1] << "): " << status << "\n";
+ std::cerr << "ERROR running file (" << input_file_flag << "): " << status
+ << "\n";
return 1;
}
return 0;
diff --git a/iree/tools/run_mlir_main2.cc b/iree/tools/run_mlir_main2.cc
index b7f341f..ed368be 100644
--- a/iree/tools/run_mlir_main2.cc
+++ b/iree/tools/run_mlir_main2.cc
@@ -458,19 +458,6 @@
// Evaluate all exported functions.
auto run_function = [&](int ordinal) -> Status {
- iree_vm_function_t function;
- RETURN_IF_ERROR(
- FromApiStatus(iree_vm_module_lookup_function_by_ordinal(
- bytecode_module, IREE_VM_FUNCTION_LINKAGE_EXPORT,
- ordinal, &function),
- IREE_LOC))
- << "Looking up function export " << ordinal;
- if (iree_string_view_starts_with(iree_vm_function_name(&function),
- iree_make_cstring_view("__"))) {
- // Skip internal functions.
- return OkStatus();
- }
-
// Create the context we'll use for this (ensuring that we can't interfere
// with other running evaluations, such as when in a multithreaded test
// runner).
@@ -482,6 +469,14 @@
IREE_LOC))
<< "Creating context";
+ iree_vm_function_t function;
+ RETURN_IF_ERROR(
+ FromApiStatus(iree_vm_module_lookup_function_by_ordinal(
+ bytecode_module, IREE_VM_FUNCTION_LINKAGE_EXPORT,
+ ordinal, &function),
+ IREE_LOC))
+ << "Looking up function export " << ordinal;
+
// Invoke the function and print results.
RETURN_IF_ERROR(
EvaluateFunction(context, iree_hal_device_allocator(device), function))
diff --git a/iree/tools/iree_translate_main.cc b/iree/tools/translate_main.cc
similarity index 100%
rename from iree/tools/iree_translate_main.cc
rename to iree/tools/translate_main.cc
diff --git a/test/e2e/xla/BUILD b/test/e2e/xla/BUILD
index ee17199..2a822db 100644
--- a/test/e2e/xla/BUILD
+++ b/test/e2e/xla/BUILD
@@ -23,7 +23,7 @@
iree_setup_lit_package(
data = [
- "//iree/tools:iree-run-mlir2",
+ "//iree/tools:iree-run-mlir",
],
)
diff --git a/test/e2e/xla/abs.mlir b/test/e2e/xla/abs.mlir
index 3055d86..884fdba 100644
--- a/test/e2e/xla/abs.mlir
+++ b/test/e2e/xla/abs.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/collatz.mlir b/test/e2e/xla/collatz.mlir
index af48c7c..e214609 100644
--- a/test/e2e/xla/collatz.mlir
+++ b/test/e2e/xla/collatz.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode -input-value="f32=178" %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode -input-value="f32=178" %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @collatz
func @collatz(%arg0: tensor<f32>) -> tensor<f32> {
diff --git a/test/e2e/xla/compare.mlir b/test/e2e/xla/compare.mlir
index bb73f68..b7395a9 100644
--- a/test/e2e/xla/compare.mlir
+++ b/test/e2e/xla/compare.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @compare_tensor
func @compare_tensor() -> tensor<4xi8> {
diff --git a/test/e2e/xla/concatenate.mlir b/test/e2e/xla/concatenate.mlir
index 51f1c34..0988d8c 100644
--- a/test/e2e/xla/concatenate.mlir
+++ b/test/e2e/xla/concatenate.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv -input-value="2x2xf32= 1 2 3 4" -input-value="2x3xf32= 5 6 7 8 9 10" -input-value="2x2xf32= 11 12 13 14" %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @xla_concatenate
func @xla_concatenate(%arg0: tensor<2x2xf32>, %arg1: tensor<2x3xf32>, %arg2: tensor<2x2xf32>) -> (tensor<2x5xf32>, tensor<2x5xf32>, tensor<2x7xf32>, tensor<4x2xf32>) {
diff --git a/test/e2e/xla/constants.mlir b/test/e2e/xla/constants.mlir
index f2dc5ca..a49f70f 100644
--- a/test/e2e/xla/constants.mlir
+++ b/test/e2e/xla/constants.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @xla_constant_i32
func @xla_constant_i32 () -> (tensor<2x2x3xi32>, tensor<2x2x3xi32>) {
diff --git a/test/e2e/xla/convert_int.mlir b/test/e2e/xla/convert_int.mlir
index d7a9b3e..6530c79 100644
--- a/test/e2e/xla/convert_int.mlir
+++ b/test/e2e/xla/convert_int.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value=1xi32=42 | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value=1xi32=42 | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value=1xi32=42 | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value=1xi32=42 | IreeFileCheck %s)
// CHECK-LABEL: EXEC @narrow_int
func @narrow_int(%arg : tensor<1xi32>) -> tensor<1xi8> {
diff --git a/test/e2e/xla/dot.mlir b/test/e2e/xla/dot.mlir
index 4ead947..c374e76 100644
--- a/test/e2e/xla/dot.mlir
+++ b/test/e2e/xla/dot.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode -input-value="2xf32=0.3, 0.5" %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv -input-value="2xf32=0.3, 0.5" %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode -input-value="2xf32=0.3, 0.5" %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv -input-value="2xf32=0.3, 0.5" %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @dot_passthrough
func @dot_passthrough(%arg0: tensor<2xf32>) -> tensor<1x3xf32> {
diff --git a/test/e2e/xla/exp.mlir b/test/e2e/xla/exp.mlir
index d972062..d731aa5 100644
--- a/test/e2e/xla/exp.mlir
+++ b/test/e2e/xla/exp.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/floor.mlir b/test/e2e/xla/floor.mlir
index cf1d56d..cd4809c 100644
--- a/test/e2e/xla/floor.mlir
+++ b/test/e2e/xla/floor.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/fragment_000.mlir b/test/e2e/xla/fragment_000.mlir
index d5f1dd7..a09f25d 100644
--- a/test/e2e/xla/fragment_000.mlir
+++ b/test/e2e/xla/fragment_000.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="f32=0" -input-value="5x1xf32=[1][-2][-3][4][-5]" -input-value="f32=1" -input-value="5x5xf32=[3.46499 -7.64389 -5.72249 5.98053 17.6892][2.9707 -6.20734 -4.25962 4.76055 13.8784][2.47641 -4.77079 -2.79675 3.54056 10.0675][1.98212 -3.33424 -1.33388 2.32058 6.25666][1.48783 -1.8977 0.12899 1.1006 2.4458]" -input-value="5xf32=0 0 0 0 0" | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]"
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="f32=0" -input-value="5x1xf32=[1][-2][-3][4][-5]" -input-value="f32=1" -input-value="5x5xf32=[3.46499 -7.64389 -5.72249 5.98053 17.6892][2.9707 -6.20734 -4.25962 4.76055 13.8784][2.47641 -4.77079 -2.79675 3.54056 10.0675][1.98212 -3.33424 -1.33388 2.32058 6.25666][1.48783 -1.8977 0.12899 1.1006 2.4458]" -input-value="5xf32=0 0 0 0 0" | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]")
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="f32=0" -input-value="5x1xf32=[1][-2][-3][4][-5]" -input-value="f32=1" -input-value="5x5xf32=[3.46499 -7.64389 -5.72249 5.98053 17.6892][2.9707 -6.20734 -4.25962 4.76055 13.8784][2.47641 -4.77079 -2.79675 3.54056 10.0675][1.98212 -3.33424 -1.33388 2.32058 6.25666][1.48783 -1.8977 0.12899 1.1006 2.4458]" -input-value="5xf32=0 0 0 0 0" | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]"
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="f32=0" -input-value="5x1xf32=[1][-2][-3][4][-5]" -input-value="f32=1" -input-value="5x5xf32=[3.46499 -7.64389 -5.72249 5.98053 17.6892][2.9707 -6.20734 -4.25962 4.76055 13.8784][2.47641 -4.77079 -2.79675 3.54056 10.0675][1.98212 -3.33424 -1.33388 2.32058 6.25666][1.48783 -1.8977 0.12899 1.1006 2.4458]" -input-value="5xf32=0 0 0 0 0" | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]")
// CHECK-LABEL: EXEC @main_entry_dispatch_3
func @main_entry_dispatch_3(
diff --git a/test/e2e/xla/fullyconnected.mlir b/test/e2e/xla/fullyconnected.mlir
index 4053411..e243255 100644
--- a/test/e2e/xla/fullyconnected.mlir
+++ b/test/e2e/xla/fullyconnected.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 %s -iree-hal-target-backends=interpreter-bytecode -input-value="1x5xf32=1,-2,-3,4,-5" -input-value="1x5x3x1xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 %s -iree-hal-target-backends=vulkan-spirv -input-value="1x5xf32=1,-2,-3,4,-5" -input-value="1x5x3x1xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s)
+// RUN: iree-run-mlir %s -iree-hal-target-backends=interpreter-bytecode -input-value="1x5xf32=1,-2,-3,4,-5" -input-value="1x5x3x1xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir %s -iree-hal-target-backends=vulkan-spirv -input-value="1x5xf32=1,-2,-3,4,-5" -input-value="1x5x3x1xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @main
func @main(%arg0: tensor<1x5xf32>, %arg1: tensor<1x5x3x1xf32>) -> tuple<tensor<5x1x5xf32>>
diff --git a/test/e2e/xla/gather.mlir b/test/e2e/xla/gather.mlir
index 26b7ac1..765f743 100644
--- a/test/e2e/xla/gather.mlir
+++ b/test/e2e/xla/gather.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="5x1x5xi32=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25]" -input-value="i64=2" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="5x1x5xi32=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25]" -input-value="i64=2" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="5x1x5xi32=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25]" -input-value="i64=2" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="5x1x5xi32=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25]" -input-value="i64=2" | IreeFileCheck %s)
module {
// CHECK-LABEL: EXEC @foo
diff --git a/test/e2e/xla/gather_concat.mlir b/test/e2e/xla/gather_concat.mlir
index 32efe0d..753f8ac 100644
--- a/test/e2e/xla/gather_concat.mlir
+++ b/test/e2e/xla/gather_concat.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode --input-value="1x2xf32= 1 2" -input-value="2x1x4xf32= 5 6 7 8 9 10 11 12" -input-value="i64= 0" %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv -input-value="1x2xf32= 1 2" -input-value="2x1x4xf32= 5 6 7 8 9 10 11 12" -input-value="i64= 0" %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode --input-value="1x2xf32= 1 2" -input-value="2x1x4xf32= 5 6 7 8 9 10 11 12" -input-value="i64= 0" %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv -input-value="1x2xf32= 1 2" -input-value="2x1x4xf32= 5 6 7 8 9 10 11 12" -input-value="i64= 0" %s | IreeFileCheck %s)
module {
func @gather_concat(%arg0: tensor<1x2xf32>, %arg1: tensor<2x1x4xf32>, %arg2: tensor<i64>) -> tensor<1x6xf32> {
diff --git a/test/e2e/xla/gemm.mlir b/test/e2e/xla/gemm.mlir
index 92ef721..82614b5 100644
--- a/test/e2e/xla/gemm.mlir
+++ b/test/e2e/xla/gemm.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 %s -iree-hal-target-backends=interpreter-bytecode -input-value="5x3xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" -input-value="3x5xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="5x3xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" -input-value="3x5xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s)
+// RUN: iree-run-mlir %s -iree-hal-target-backends=interpreter-bytecode -input-value="5x3xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" -input-value="3x5xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="5x3xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" -input-value="3x5xf32=15,14,13,12,11,10,9,8,7,6,5,4,3,2,1" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @main
func @main(%arg0: tensor<5x3xf32>, %arg1: tensor<3x5xf32>) -> tensor<5x5xf32>
diff --git a/test/e2e/xla/globals.mlir b/test/e2e/xla/globals.mlir
index 726f293..9eafdc3 100644
--- a/test/e2e/xla/globals.mlir
+++ b/test/e2e/xla/globals.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
module {
flow.variable @counter mutable dense<2.0> : tensor<f32>
diff --git a/test/e2e/xla/load_i8.mlir b/test/e2e/xla/load_i8.mlir
index d129844..22801f9 100644
--- a/test/e2e/xla/load_i8.mlir
+++ b/test/e2e/xla/load_i8.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="17xi8= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="17xi8= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="17xi8= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="17xi8= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @load_i8
func @load_i8(%arg : tensor<17xi8>) -> tensor<17xi32> {
diff --git a/test/e2e/xla/log.mlir b/test/e2e/xla/log.mlir
index 989ec9d..c388ae3 100644
--- a/test/e2e/xla/log.mlir
+++ b/test/e2e/xla/log.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/max_float.mlir b/test/e2e/xla/max_float.mlir
index df36dae..7bf0081 100644
--- a/test/e2e/xla/max_float.mlir
+++ b/test/e2e/xla/max_float.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/max_int.mlir b/test/e2e/xla/max_int.mlir
index a9299f9..bd0caba 100644
--- a/test/e2e/xla/max_int.mlir
+++ b/test/e2e/xla/max_int.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xi32> {
diff --git a/test/e2e/xla/min_float.mlir b/test/e2e/xla/min_float.mlir
index df36dae..7bf0081 100644
--- a/test/e2e/xla/min_float.mlir
+++ b/test/e2e/xla/min_float.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/min_int.mlir b/test/e2e/xla/min_int.mlir
index 1e6f8d0..c1da3c7 100644
--- a/test/e2e/xla/min_int.mlir
+++ b/test/e2e/xla/min_int.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xi32> {
diff --git a/test/e2e/xla/mnist.mlir b/test/e2e/xla/mnist.mlir
index fc848fe..c4f760d 100644
--- a/test/e2e/xla/mnist.mlir
+++ b/test/e2e/xla/mnist.mlir
@@ -1,7 +1,7 @@
// MNIST model with placeholder weights, for translation testing.
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="1x28x28x1xf32" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="1x28x28x1xf32" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="1x28x28x1xf32" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="1x28x28x1xf32" | IreeFileCheck %s)
module {
// CHECK-LABEL: EXEC @main
diff --git a/test/e2e/xla/pad.mlir b/test/e2e/xla/pad.mlir
index 96428ff..943ccd4 100644
--- a/test/e2e/xla/pad.mlir
+++ b/test/e2e/xla/pad.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="2x3xi32=[1 2 3 4 5 6]" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="2x3xi32=[1 2 3 4 5 6]" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="2x3xi32=[1 2 3 4 5 6]" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="2x3xi32=[1 2 3 4 5 6]" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @pad
func @pad(%0: tensor<2x3xi32>) -> tensor<4x13xi32>
diff --git a/test/e2e/xla/reduce_float.mlir b/test/e2e/xla/reduce_float.mlir
index 30b34fe..55de379 100644
--- a/test/e2e/xla/reduce_float.mlir
+++ b/test/e2e/xla/reduce_float.mlir
@@ -1,6 +1,6 @@
-// RUN: iree-run-mlir2 %s -iree-hal-target-backends=interpreter-bytecode | IreeFileCheck %s
+// RUN: iree-run-mlir %s -iree-hal-target-backends=interpreter-bytecode | IreeFileCheck %s
// TODO(b/142903911): figure out swiftshader+asan crash:
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 %s -iree-hal-target-backends=vulkan-spirv --run=false)
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir %s -iree-hal-target-backends=vulkan-spirv --run=false)
// Float sum values from [1.0, 10.0]
// CHECK-LABEL: EXEC @reduce_sum_1x10xf32
diff --git a/test/e2e/xla/reduce_int.mlir b/test/e2e/xla/reduce_int.mlir
index d99e479..07eaeb8 100644
--- a/test/e2e/xla/reduce_int.mlir
+++ b/test/e2e/xla/reduce_int.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// Int sum values from [1, 10]
// CHECK-LABEL: EXEC @reduce_sum_1x10xi32
diff --git a/test/e2e/xla/rem.mlir b/test/e2e/xla/rem.mlir
index 6dfa46d..167ac51 100644
--- a/test/e2e/xla/rem.mlir
+++ b/test/e2e/xla/rem.mlir
@@ -1,4 +1,4 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
// CHECK-LABEL: EXEC @scalar
func @scalar() -> tensor<f32> {
diff --git a/test/e2e/xla/reshape.mlir b/test/e2e/xla/reshape.mlir
index 46371c0..9c9b9b7 100644
--- a/test/e2e/xla/reshape.mlir
+++ b/test/e2e/xla/reshape.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="12xf32=[1 2 3 4 5 6 7 8 9 10 11 12]" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="12xf32=[1 2 3 4 5 6 7 8 9 10 11 12]" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="12xf32=[1 2 3 4 5 6 7 8 9 10 11 12]" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="12xf32=[1 2 3 4 5 6 7 8 9 10 11 12]" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @reshape_1D_2D
func @reshape_1D_2D(%arg : tensor<12xf32>) -> tensor<3x4xf32> {
diff --git a/test/e2e/xla/reshape_adddims.mlir b/test/e2e/xla/reshape_adddims.mlir
index ff4112d..c0e8657 100644
--- a/test/e2e/xla/reshape_adddims.mlir
+++ b/test/e2e/xla/reshape_adddims.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="2x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="2x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="2x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="2x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @reshape_3D_2D
func @reshape_3D_2D(%arg : tensor<2x6xf32>) -> tensor<2x1x6xf32> {
diff --git a/test/e2e/xla/reshape_dropdims.mlir b/test/e2e/xla/reshape_dropdims.mlir
index 5f110eb..923c4d4 100644
--- a/test/e2e/xla/reshape_dropdims.mlir
+++ b/test/e2e/xla/reshape_dropdims.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="2x1x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="2x1x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="2x1x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="2x1x6xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @reshape_3D_1D
func @reshape_3D_1D(%arg : tensor<2x1x6xf32>) -> tensor<2x6xf32> {
diff --git a/test/e2e/xla/reverse.mlir b/test/e2e/xla/reverse.mlir
index 2486608..c522a33 100644
--- a/test/e2e/xla/reverse.mlir
+++ b/test/e2e/xla/reverse.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @xla_reverse
func @xla_reverse () -> (tensor<2x3xf32>, tensor <2x3xf32>, tensor <2x3xf32>) {
diff --git a/test/e2e/xla/rsqrt.mlir b/test/e2e/xla/rsqrt.mlir
index fcba71d..f4207d6 100644
--- a/test/e2e/xla/rsqrt.mlir
+++ b/test/e2e/xla/rsqrt.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/select.mlir b/test/e2e/xla/select.mlir
index e57d8d5..eea55f2 100644
--- a/test/e2e/xla/select.mlir
+++ b/test/e2e/xla/select.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="4xi8=[1 0 200 0]" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="4xi8=[1 0 200 0]" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="4xi8=[1 0 200 0]" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="4xi8=[1 0 200 0]" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @select
func @select(%cond : tensor<4xi1>) -> tensor<4xf32> {
diff --git a/test/e2e/xla/slice.mlir b/test/e2e/xla/slice.mlir
index 5fe5692..4790f72 100644
--- a/test/e2e/xla/slice.mlir
+++ b/test/e2e/xla/slice.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="3x4xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="3x4xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="3x4xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="3x4xf32= 1 2 3 4 5 6 7 8 9 10 11 12" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @slice_whole_buffer
func @slice_whole_buffer(%arg : tensor<3x4xf32>) -> tensor<3x4xf32> {
diff --git a/test/e2e/xla/sqrt.mlir b/test/e2e/xla/sqrt.mlir
index b2e9263..da98e7c 100644
--- a/test/e2e/xla/sqrt.mlir
+++ b/test/e2e/xla/sqrt.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @tensor
func @tensor() -> tensor<4xf32> {
diff --git a/test/e2e/xla/store_i8.mlir b/test/e2e/xla/store_i8.mlir
index b93f621..d451bc6 100644
--- a/test/e2e/xla/store_i8.mlir
+++ b/test/e2e/xla/store_i8.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s -input-value="17xi32=-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8" | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s -input-value="17xi32=-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8" | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s -input-value="17xi32=-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8" | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s -input-value="17xi32=-8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8" | IreeFileCheck %s)
// CHECK-LABEL: EXEC @store_i8
func @store_i8(%arg : tensor<17xi32>) -> tensor<17xi8> {
diff --git a/test/e2e/xla/through_std.mlir b/test/e2e/xla/through_std.mlir
index 7af1b82..665effe 100644
--- a/test/e2e/xla/through_std.mlir
+++ b/test/e2e/xla/through_std.mlir
@@ -1,5 +1,5 @@
-// RUN: iree-run-mlir2 -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
+// RUN: iree-run-mlir -iree-hal-target-backends=interpreter-bytecode %s | IreeFileCheck %s
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir -iree-hal-target-backends=vulkan-spirv %s | IreeFileCheck %s)
// CHECK-LABEL: EXEC @xla_through_stdops
func @xla_through_stdops () -> (tensor<f32>, tensor<f32>) {
diff --git a/test/e2e/xla/unidirectional_lstm.mlir b/test/e2e/xla/unidirectional_lstm.mlir
index 79dc3b5..59aff4e 100644
--- a/test/e2e/xla/unidirectional_lstm.mlir
+++ b/test/e2e/xla/unidirectional_lstm.mlir
@@ -1,6 +1,6 @@
// An example LSTM exported from a python reference model with dummy weights.
-// RUN: iree-run-mlir2 %s -iree-hal-target-backends=interpreter-bytecode -input-value="1x5xf32=[0 1 0 3 4]" -input-value="1x5x2x2xf32=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]" -export-all=false | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]"
+// RUN: iree-run-mlir %s -iree-hal-target-backends=interpreter-bytecode -input-value="1x5xf32=[0 1 0 3 4]" -input-value="1x5x2x2xf32=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]" -export-all=false | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]"
// Exported via the XLA HLO Importer
// The resulting MLIR was modified by hand by changing all large constants to be
diff --git a/test/e2e/xla/while.mlir b/test/e2e/xla/while.mlir
index e786713..150cb01 100644
--- a/test/e2e/xla/while.mlir
+++ b/test/e2e/xla/while.mlir
@@ -1,7 +1,7 @@
// A simple while loop example.
-// RUN: iree-run-mlir2 %s -iree-hal-target-backends=interpreter-bytecode -input-value="f32=[1]" -input-value="f32=[3]" --export-all=false | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]"
-// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir2 %s -iree-hal-target-backends=vulkan-spirv -input-value="f32=[1]" -input-value="f32=[3]" --export-all=false | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]")
+// RUN: iree-run-mlir %s -iree-hal-target-backends=interpreter-bytecode -input-value="f32=[1]" -input-value="f32=[3]" --export-all=false | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]"
+// RUN: [[ $IREE_VULKAN_DISABLE == 1 ]] || (iree-run-mlir %s -iree-hal-target-backends=vulkan-spirv -input-value="f32=[1]" -input-value="f32=[3]" --export-all=false | IreeFileCheck %s --implicit-check-not="[" --implicit-check-not="]")
// CHECK-LABEL: EXEC @main
func @main(%arg0: tensor<f32>, %arg1: tensor<f32>) -> tensor<f32> attributes { iree.module.export } {