Skip to content

pre-commit (diff): llvm/llvm-project/compare/main...fhahn:scev-howmanlessthans-no-overflow-2 - #1195

Open
zyw-bot wants to merge 3 commits into
task-33872420520-basefrom
task-33872420520-change
Open

pre-commit (diff): llvm/llvm-project/compare/main...fhahn:scev-howmanlessthans-no-overflow-2#1195
zyw-bot wants to merge 3 commits into
task-33872420520-basefrom
task-33872420520-change

Conversation

@zyw-bot

@zyw-bot zyw-bot commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

Please read the instructions in the README to reproduce the results locally.
cc @fhahn

Current: llvm/llvm-project@main...fhahn:scev-howmanlessthans-no-overflow-2
Baseline commit: llvm/llvm-project@230ba12

Changes in statistics

Top changes:

Metric Baseline Current Change
correlated-value-propagation.NumSMinMax 10332 10312 -0.19%
adce.NumRemoved 112099 112035 -0.06%
instsimplify.NumReassoc 1180094 1179598 -0.04%
instcombine.NumReassoc 414353 414208 -0.03%
instcount.NumPtrToAddrInst 100800 100782 -0.02%
reassociate.NumChanged 7253929 7253345 -0.01%
licm.NumBOAssociationsHoisted 16147 16146 -0.01%
instcount.NumXorInst 961266 961211 -0.01%
simplifycfg.NumHoistCommonInstrs 3533887 3533743 -0.00%
instcombine.NegatorNumInstructionsNegatedSuccess 91372 91369 -0.00%
basicaa.SearchLimitReached 3092223 3105439 +0.43%
loop-unroll.NumRuntimeUnrolled 177451 177651 +0.11%
instcount.NumUDivInst 127032 127124 +0.07%
instcount.NumSIToFPInst 103658 103722 +0.06%
loop-unroll.NumUnrolled 386691 386894 +0.05%
instcount.NumFPToUIInst 17226 17234 +0.05%
instcount.NumUIToFPInst 88005 88043 +0.04%
instcount.NumFAddInst 511839 512039 +0.04%
simple-loop-unswitch.NumSelects 6115 6116 +0.02%
bdce.NumSExt2ZExt 6430 6431 +0.02%

Diff report

Scope Files Added Lines Removed Lines
Original 275 13526 11207
Kept 120 3709 3048

Download the full diff list: z_fulldiff.csv

Delta Added Lines Removed Lines File
+187 241 54 linux/nfsacl
+140 192 52 ffmpeg/vf_waveform
+118 161 43 cpython/unicode_writer
+106 142 36 lightgbm/serial_tree_learner
+102 144 42 casadi/mx_node
+93 129 36 lightgbm/gradient_discretizer
+78 118 40 lightgbm/application
+56 70 14 linux/bug
+50 188 138 llvm-test-suite/lpbench
+49 81 32 cpython/listobject
+49 101 52 llvm-test-suite/linpack-pc
+47 63 16 lvgl/lv_draw_sw_blend_to_rgb888
+45 77 32 pola-rs/polars_expr-c150671a77946377.polars_expr.f440eb239ff47e82-cgu.07
+45 81 36 cpython/tupleobject
+41 57 16 ffmpeg/cyuv
+39 55 16 opencv/copy
+39 60 21 lightgbm/dataset_loader
+32 52 20 wireshark/traffic_tab
+31 52 21 wireshark/lte_rlc_statistics_dialog
+30 52 22 wireshark/io_graph_dialog
+28 49 21 wireshark/mocs_compilation
+28 51 23 ruff-rs/criterion-524b2807e12f564b.criterion.5ad8dacf280593c5-cgu.04
-2 2 4 oiio/smooth
-2 2 4 llvm-test-suite/closure
-2 2 4 icu/uniset
-2 2 4 gromacs/atomdata
-2 2 4 node/local-decl-encoder
-2 3 5 ruff-rs/ruff_python_ast-79536ef50c0fac99.ruff_python_ast.f1da3f06107471d8-cgu.0
-2 3 5 ruby/bignum
-2 3 5 ncnn/gemm_x86_avx2
-2 4 6 cvc5/Solver
-2 4 6 abc/solver
-2 4 6 velox/bitmap_ops
-2 4 6 tev/enc_fast_lossless
-2 4 6 node/maglev-code-generator
-2 4 6 node/csa-load-elimination
-2 5 7 node/verifier
-2 9 11 velox/zstd_v02
-2 16 18 velox/zstd_v07
-3 3 6 grpc/parse
-3 3 6 tev/image_description
-3 3 6 velox/LzoDecompressor
-3 5 8 velox/parse
-3 6 9 abc/ifDec16
-3 6 9 abc/kitTruth
-4 3 7 llvm/ProcessMinidump
-4 4 8 opencv/bagofwords_classification
-4 4 8 node/uniset
-4 5 9 node/maglev-regalloc
-4 5 9 node/graph-visualizer
-4 5 9 node/use-map
-4 6 10 pola-rs/polars_expr-c150671a77946377.polars_expr.f440eb239ff47e82-cgu.12
-4 6 10 ncnn/gemm_x86_avxvnni
-4 6 10 node/maglev-graph-builder
-4 6 10 node/modules
-4 7 11 node/state-values-utils
-4 8 12 ffmpeg/cbs_av1
-4 8 12 llvm-test-suite/conflicts
-4 12 16 abc/sfmDec
-5 2 7 linux/modpost
-5 2 7 freetype/cff
-5 3 8 libp2p-rs/ipfs_private_example.ipfs_private_example.c9cf337336d19c9e-cgu.06
-5 3 8 arrow/int_util
-5 4 9 duckdb/lz4
-5 4 9 abc/Glucose2
-5 4 9 abc/satSolver2
-5 7 12 lvgl/lv_draw_sw_blend_to_rgb565_swapped
-5 12 17 ncnn/gemm_x86_avx512vnni
-5 13 18 abc/extraUtilSupp
-6 2 8 icu/ucnv_u32
-6 6 12 ffmpeg/mlp
-6 6 12 tev/main
-6 8 14 icu/normalizer2impl
-6 15 21 icu/ucnv_u16
-6 75 81 php/php_glob
-7 3 10 ffmpeg/af_earwax
-7 4 11 ncnn/softmax_x86_avx512
-7 4 11 llvm-test-suite/takehiro
-7 6 13 abc/acbFunc
-7 6 13 abc/abcDetect
-7 17 24 ncnn/gemm_x86_avx512bf16
-8 5 13 oiio/ftbase
-8 7 15 z3/smt_context
-8 8 16 freetype/ftbase
-9 5 14 ruby/util
-9 6 15 opencv/depth_registration
-9 6 15 ruby/regexec
-9 10 19 protobuf/parse_context
-9 11 20 ffmpeg/flacenc
-9 12 21 opencv/dxt
-9 14 23 cpython/dtoa
-9 17 26 wireshark/dtoa
-9 22 31 ncnn/convolution_x86_xop
-10 20 30 gromacs/vsite
-10 21 31 boost/explicit_inst_flat_map_test
-10 121 131 arrow/UriNormalize
-10 324 334 pola-rs/polars_core-ad80a04fff11224b.polars_core.149bbfd31402d64a-cgu.15
-11 12 23 abc/giaDup
-11 12 23 abc/giaUtil
-11 12 23 abc/abcFx
-11 20 31 tev/enc_patch_dictionary
-11 41 52 ncnn/convolution_x86_avx2
-12 4 16 postgres/varbit
-12 8 20 velox/lz4
-12 14 26 ncnn/gemm_x86_fma
-12 18 30 snappy/snappy
-12 32 44 ncnn/convolution1d_x86_fma
-13 15 28 ncnn/convolution1d_x86_avx512bf16
-14 14 28 llvm-test-suite/LR0
-14 14 28 ncnn/gemm_x86
-15 9 24 stb/stb_image_resize2
-15 12 27 velox/Comparisons
-16 11 27 hermes/RegExp
-19 34 53 ncnn/convolution1d_x86_avx512
-20 59 79 ncnn/convolution_x86_avx512vnni
-22 19 41 ncnn/gemm_x86_avx512
-26 39 65 ffmpeg/vf_colorlevels
-27 43 70 ncnn/convolution_x86_avx512bf16
-37 30 67 cpython/unicode_format
-38 22 60 cpython/unicode_formatter

Artifacts

Selected raw llvm-relaxed-diff outputs (19 file pairs, up to 100 MB) can be downloaded from https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/actions/runs/33872420520.

Grouped changes

report: add > sub
report: add < sub

fhahn added a commit to fhahn/llvm-project that referenced this pull request Sep 4, 2026
Follow-up to

Re-use AddingStrideMinusOneMayOverflow (was MayAddOverflow) when
Start - Stride < RHS.

This is a generalization of using !IVMayOverflow (was added in
llvm#218694).

This handles 2 additional cases when Start < RHS:
 * Stride is known power-of-2:
 * Start == Stride and Start == Stride -1.

This moves up the existing MayAddOverflow with comments, and clarifies
the name to AddingStrideMinusOneMayOverflow.

This improves trip count computations in a number of real-world cases:
dtcxzyw/llvm-opt-benchmark-nightly#1195.

End-to-end Alive2 Proofs for both cases in unsigned:
https://alive2.llvm.org/ce/z/MQ2YLf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant