24 lines
643 B
C++
24 lines
643 B
C++
#include "mlir/IR/BuiltinAttributes.h"
|
|
|
|
#include "AttributeUtils.hpp"
|
|
|
|
using namespace mlir;
|
|
|
|
namespace onnx_mlir {
|
|
|
|
int64_t getI64Attr(ArrayAttr attr, size_t index) { return cast<IntegerAttr>(attr[index]).getInt(); }
|
|
|
|
int64_t getOptionalI64Attr(std::optional<ArrayAttr> attr, size_t index, int64_t defaultValue) {
|
|
return attr ? getI64Attr(*attr, index) : defaultValue;
|
|
}
|
|
|
|
llvm::SmallVector<int64_t> getI64ArrayAttrValues(ArrayAttr attr) {
|
|
llvm::SmallVector<int64_t> values;
|
|
values.reserve(attr.size());
|
|
for (Attribute value : attr)
|
|
values.push_back(cast<IntegerAttr>(value).getInt());
|
|
return values;
|
|
}
|
|
|
|
} // namespace onnx_mlir
|