28 lines
663 B
C++
28 lines
663 B
C++
#pragma once
|
|
|
|
#include "mlir/IR/BuiltinAttributes.h"
|
|
#include "mlir/IR/Operation.h"
|
|
#include "mlir/IR/Value.h"
|
|
|
|
#include "llvm/ADT/ArrayRef.h"
|
|
|
|
namespace onnx_mlir {
|
|
|
|
struct CompileTimeSource {
|
|
mlir::Operation* source;
|
|
size_t chainLength;
|
|
};
|
|
|
|
std::optional<CompileTimeSource> getCompileTimeSource(mlir::Operation* op);
|
|
|
|
bool isCompileTimeComputable(mlir::Value value);
|
|
|
|
bool isCompileTimeOp(mlir::Operation* op);
|
|
|
|
mlir::DenseElementsAttr getHostConstDenseElementsAttr(mlir::Value value);
|
|
|
|
mlir::FailureOr<mlir::DenseElementsAttr> transposeDenseElementsAttr(
|
|
mlir::DenseElementsAttr denseAttr, llvm::ArrayRef<int64_t> permutation);
|
|
|
|
} // namespace onnx_mlir
|