[Mlir-commits] [mlir] [mlir][Interfaces] Track and infer no-overflow flags in integer ranges (PR #191777)
Mehdi Amini
llvmlistbot at llvm.org
Mon Apr 13 04:51:41 PDT 2026
================
@@ -65,8 +176,11 @@ void arith::ConstantOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges,
void arith::AddIOp::inferResultRanges(ArrayRef<ConstantIntRanges> argRanges,
SetIntRangeFn setResultRange) {
- setResultRange(getResult(), inferAdd(argRanges, convertArithOverflowFlags(
- getOverflowFlags())));
+ OverflowFlags declaredFlags = convertArithOverflowFlags(getOverflowFlags());
+ ConstantIntRanges range = inferAdd(argRanges, declaredFlags);
+ OverflowFlags overflowFlags =
+ proveNoOverflowForAdd(argRanges) | declaredFlags;
----------------
joker-eph wrote:
We should skip recomputing flags when they are set. I would pass in the declaredFlags into `proveNoOverflowForAdd` (rename to `updateNswNuwFlags()` or something like this) and there you can check if the flag is set before trying to infer it).
https://github.com/llvm/llvm-project/pull/191777
More information about the Mlir-commits
mailing list