[Mlir-commits] [mlir] [mlir][scf]: Expose emitNormalizedLoopBounds/denormalizeInductionVariable util functions (NFC) (PR #94429)
Jakub Kuderski
llvmlistbot at llvm.org
Wed Jun 12 21:45:24 PDT 2024
================
@@ -100,12 +100,20 @@ llvm::SmallBitVector mlir::getPositionsOfShapeOne(unsigned rank,
return dimsToProject;
}
+Value mlir::getValueOrCreateConstantIntOp(OpBuilder &b, Location loc,
+ Type targetType, OpFoldResult ofr) {
+ if (auto value = dyn_cast_if_present<Value>(ofr))
+ return value;
+ auto attr = cast<IntegerAttr>(dyn_cast_if_present<Attribute>(ofr));
+ return b.create<arith::ConstantOp>(
+ loc, b.getIntegerAttr(targetType, attr.getValue().getSExtValue()));
+}
+
Value mlir::getValueOrCreateConstantIndexOp(OpBuilder &b, Location loc,
OpFoldResult ofr) {
- if (auto value = llvm::dyn_cast_if_present<Value>(ofr))
+ if (auto value = dyn_cast_if_present<Value>(ofr))
return value;
- auto attr = dyn_cast<IntegerAttr>(llvm::dyn_cast_if_present<Attribute>(ofr));
- assert(attr && "expect the op fold result casts to an integer attribute");
+ auto attr = cast<IntegerAttr>(dyn_cast_if_present<Attribute>(ofr));
----------------
kuhar wrote:
also here
https://github.com/llvm/llvm-project/pull/94429
More information about the Mlir-commits
mailing list