[Mlir-commits] [mlir] [mlir][Interfaces] Track and infer no-overflow flags in integer ranges (PR #191777)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Apr 13 02:58:15 PDT 2026


github-actions[bot] wrote:

<!--PREMERGE ADVISOR COMMENT: Windows-->
# :window: Windows x64 Test Results

The build failed before running any tests. Click on a failure below to see the details.

<details>
<summary>[code=1] tools/mlir/lib/Analysis/CMakeFiles/obj.MLIRAnalysis.dir/DataFlow/StridedMetadataRangeAnalysis.cpp.obj</summary>

```
FAILED: [code=1] tools/mlir/lib/Analysis/CMakeFiles/obj.MLIRAnalysis.dir/DataFlow/StridedMetadataRangeAnalysis.cpp.obj
sccache C:\clang\clang-msvc\bin\clang-cl.exe  /nologo -TP -DUNICODE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_GLIBCXX_ASSERTIONS -D_HAS_EXCEPTIONS=0 -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_EXTENSIVE -D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS -D_UNICODE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -IC:\_work\llvm-project\llvm-project\build\tools\mlir\lib\Analysis -IC:\_work\llvm-project\llvm-project\mlir\lib\Analysis -IC:\_work\llvm-project\llvm-project\build\tools\mlir\include -IC:\_work\llvm-project\llvm-project\mlir\include -IC:\_work\llvm-project\llvm-project\build\include -IC:\_work\llvm-project\llvm-project\llvm\include /DWIN32 /D_WINDOWS   /Zc:inline /Zc:__cplusplus /Oi /Brepro /bigobj /permissive- -Werror=unguarded-availability-new /W4  -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wno-pass-failed -Wmisleading-indentation -Wctad-maybe-unsupported /Gw -Wundef -Werror=mismatched-tags -Werror=global-constructors /O2 /Ob2  -std:c++17 -MD -UNDEBUG /EHs-c- /GR- /showIncludes /Fotools\mlir\lib\Analysis\CMakeFiles\obj.MLIRAnalysis.dir\DataFlow\StridedMetadataRangeAnalysis.cpp.obj /Fdtools\mlir\lib\Analysis\CMakeFiles\obj.MLIRAnalysis.dir\ -c -- C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp
In file included from C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlow/StridedMetadataRangeAnalysis.h:12:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlow/SparseAnalysis.h:18:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlowFramework.h:19:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/Operation.h:17:
C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/BuiltinAttributes.h(346,14): warning: 'complex' is deprecated: warning STL4037: The effect of instantiating the template std::complex for any type other than float, double, or long double is unspecified. You can define _SILENCE_NONFLOATING_COMPLEX_DEPRECATION_WARNING to suppress this warning. [-Wdeprecated-declarations]
346 |       return {APFloat(*smt, value.real()), APFloat(*smt, value.imag())};
|              ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\complex(1333,5): note: 'complex' has been explicitly marked deprecated here
1333 |     _DEPRECATE_NONFLOATING_COMPLEX
|     ^
C:\BuildTools\VC\Tools\MSVC\14.44.35207\include\yvals_core.h(1413,7): note: expanded from macro '_DEPRECATE_NONFLOATING_COMPLEX'
1413 |     [[deprecated("warning STL4037: "                                                   \
|       ^
In file included from C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlow/StridedMetadataRangeAnalysis.h:12:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlow/SparseAnalysis.h:18:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlowFramework.h:19:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/Operation.h:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/Block.h:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/BlockSupport.h:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/Value.h:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/Types.h:12:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/TypeSupport.h:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/MLIRContext.h:13:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Support/TypeID.h:21:
In file included from C:\_work\llvm-project\llvm-project\llvm\include\llvm/Support/Allocator.h:20:
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/SmallVector.h(1189,7): error: static assertion failed due to requirement 'sizeof(mlir::StridedMetadataRange) <= 256': You are trying to use a default number of inlined elements for `SmallVector<T>` but `sizeof(T)` is really big! Please use an explicit number of inlined elements with `SmallVector<T, N>` to make sure you really want that much inline storage.
1189 |       sizeof(T) <= 256,
|       ^~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/SmallVector.h(1221,24): note: in instantiation of template class 'llvm::CalculateSmallVectorDefaultInlinedElements<mlir::StridedMetadataRange>' requested here
1221 |           unsigned N = CalculateSmallVectorDefaultInlinedElements<T>::value>
|                        ^
C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp(107,3): note: in instantiation of default argument for 'SmallVector<StridedMetadataRange>' required here
107 |   SmallVector<StridedMetadataRange> argRanges = llvm::map_to_vector(
|   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/SmallVector.h(1189,17): note: expression evaluates to '272 <= 256'
1189 |       sizeof(T) <= 256,
|       ~~~~~~~~~~^~~~~~
In file included from C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp:16:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlow/StridedMetadataRangeAnalysis.h:12:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlow/SparseAnalysis.h:18:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/Analysis/DataFlowFramework.h:19:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/Operation.h:17:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/BuiltinAttributes.h:12:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/BuiltinAttributeInterfaces.h:12:
In file included from C:\_work\llvm-project\llvm-project\mlir\include\mlir/IR/AffineMap.h:23:
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/SmallVectorExtras.h(48,10): error: no matching function for call to 'to_vector'
48 |   return to_vector(
|          ^~~~~~~~~
C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp(107,55): note: in instantiation of function template specialization 'llvm::map_to_vector<llvm::ArrayRef<const mlir::dataflow::StridedMetadataRangeLattice *> &, (lambda at C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp:108:17)>' requested here
107 |   SmallVector<StridedMetadataRange> argRanges = llvm::map_to_vector(
|                                                       ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/SmallVector.h(1325,46): note: candidate template ignored: couldn't infer template argument 'Size'
1325 | SmallVector<ValueTypeFromRangeType<R>, Size> to_vector(R &&Range) {
|                                              ^
C:\_work\llvm-project\llvm-project\llvm\include\llvm/ADT/SmallVector.h(1329,40): note: candidate template ignored: substitution failure [with R = iterator_range<llvm::mapped_iterator<const mlir::dataflow::StridedMetadataRangeLattice *const *, (lambda at C:\_work\llvm-project\llvm-project\mlir\lib\Analysis\DataFlow\StridedMetadataRangeAnalysis.cpp:108:17), mlir::StridedMetadataRange>>]
1329 | SmallVector<ValueTypeFromRangeType<R>> to_vector(R &&Range) {
|                                        ^
1 warning and 2 errors generated.
```
</details>

If these failures are unrelated to your changes (for example tests are broken or flaky at HEAD), please open an issue at https://github.com/llvm/llvm-project/issues and add the `infrastructure` label.

https://github.com/llvm/llvm-project/pull/191777


More information about the Mlir-commits mailing list