blob: 0cee411ebf3e36819ad7e512e44d9cbfe1b46910 [file] [log] [blame]
// Copyright 2020 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
#include "iree/compiler/Dialect/VM/Conversion/TargetOptions.h"
#include "llvm/Support/CommandLine.h"
IREE_DEFINE_COMPILER_OPTION_FLAGS(mlir::iree_compiler::IREE::VM::TargetOptions);
namespace mlir::iree_compiler::IREE::VM {
void TargetOptions::bindOptions(OptionsBinder &binder) {
static llvm::cl::OptionCategory vmTargetOptionsCategory(
"IREE VM target options");
binder.opt<int>("iree-vm-target-index-bits", indexBits,
llvm::cl::desc("Bit width of index types."),
llvm::cl::cat(vmTargetOptionsCategory));
binder.opt<bool>("iree-vm-target-extension-f32", f32Extension,
llvm::cl::desc("Support f32 target opcode extensions."),
llvm::cl::cat(vmTargetOptionsCategory));
binder.opt<bool>("iree-vm-target-extension-f64", f64Extension,
llvm::cl::desc("Support f64 target opcode extensions."),
llvm::cl::cat(vmTargetOptionsCategory));
binder.opt<bool>("iree-vm-target-truncate-unsupported-floats",
truncateUnsupportedFloats,
llvm::cl::desc("Truncate f64 to f32 when unsupported."),
llvm::cl::cat(vmTargetOptionsCategory));
binder.opt<bool>(
"iree-vm-target-optimize-for-stack-size", optimizeForStackSize,
llvm::cl::desc(
"Prefer optimizations that reduce VM stack usage over performance."),
llvm::cl::cat(vmTargetOptionsCategory));
}
} // namespace mlir::iree_compiler::IREE::VM