[llvm] [ValueTracking] Augment isImpliedByDomCondition by data-relation (PR #187224)
Kunqiu Chen via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 20 08:12:17 PDT 2026
Camsyn wrote:
I trigger a [llvm-opt-benchmark](https://github.com/llvm/llvm-project) locally, but fail to collect the comptime data as WSL environment does not support it.
```
2993 files changed, 99253 insertions(+), 101968 deletions(-)
+1236 Δ(+), -3951 Δ(-)
IR reduced files: top 20
-368 bench/boost/optimized/expand_on_spheroid.ll
-308 bench/boost/optimized/union_aa_geo.ll
-226 bench/boost/optimized/union_aa_sph.ll
-216 bench/boost/optimized/get_turns_linear_areal_sph.ll
-200 bench/boost/optimized/get_turns_areal_areal_sph.ll
-188 bench/boost/optimized/difference_l_a_sph.ll
-182 bench/boost/optimized/get_turns_linear_linear_geo.ll
-132 bench/boost/optimized/within_sph_geo.ll
-132 bench/openspiel/optimized/ultimate_tic_tac_toe.ll
-116 bench/boost/optimized/area_geo.ll
-116 bench/meshlab/optimized/filter_sampling.ll
-96 bench/boost/optimized/expand.ll
-78 bench/boost/optimized/area_sph_geo.ll
-70 bench/bullet3/optimized/b3ConvexHullContact.ll
-68 bench/opencv/optimized/connectedcomponents.ll
-59 bench/pola-rs/optimized/4h98aq07mwhgxxkngeaedo5d3.ll
-54 bench/boost/optimized/calculate_point_order.ll
-40 bench/boost/optimized/area.ll
-39 bench/pugixml/optimized/pugixml.ll
-38 bench/meshlab/optimized/filter_texture.ll
IR added files: top 20
+350 bench/ruby/optimized/compile.ll : inlined ibf_dump_align
+188 bench/boost/optimized/math_normalize_spheroidal.ll : inlined _Z8test_boxIdEvT_S0_S0_S0_RKS0_S2_S2_S2_, _Z8test_boxIfEvT_S0_S0_S0_RKS0_S2_S2_S2_
+110 bench/boost/optimized/basic_text_oprimitive.ll : the same as follows.
+110 bench/boost/optimized/basic_text_woprimitive.ll : New nuw flag hinders bdce to simplify `(a & 255) >>_{nuw} b` -> `a >> b`, and thus disinline a function.
- regression caused by missed-opt in bdse, failing to simplify `(a & 255) >>_{nuw} b` -> `a >> b`
+70 bench/velox/optimized/ArrayDuplicates.ll : std::make_heap, more aggresive jump-threading
+61 bench/abseil-cpp/optimized/cord_rep_btree.ll : inlined _ZN4absl13cord_internal12CordRepBtree7NewLeafILNS1_8EdgeTypeE0EEEPS1_St17basic_string_viewIcSt11char_traitsIcEEm)
+51 bench/postgres/optimized/queryjumblefuncs.ll : more aggresive jump-threading
+48 bench/openvdb/optimized/Prune.ll : std::make_heap, more aggresive jump-threading
+47 bench/open3d/optimized/EstimateNormals.ll : < threshold -> promote simple-loop-unswitch
+42 bench/velox/optimized/ArraySort.ll : std::make_heap, more aggresive jump-threading
+36 bench/clamav/optimized/pe_icons.ll : not a regression; narrowUDivOrURem does it deliberately
+18 bench/yalantinglibs/optimized/test_messages_proto2.pb.ll : std::make_heap, more aggresive jump-threading
+18 bench/yalantinglibs/optimized/test_messages_proto3.pb.ll : std::make_heap, more aggresive jump-threading
+6 bench/eastl/optimized/BenchmarkSort.ll : std::make_heap, more aggresive jump-threading
+6 bench/opencv/optimized/lda.ll : complex loop-transformation
+5 bench/re2/optimized/prog.ll : std::make_heap, more aggresive jump-threading
+4 bench/darktable/optimized/IiqDecoder.ll : drop-unnecessary-assumes fails to drop some assumes
- regression caused by drop-unnecessary-assumes : better LICM -> assume(...) shares common value
``` diff
loop:
- assume(x + 4 <= y) ; drop assume as x + 4 and y are ephemeral
assume(x <= y - 4) ; after LICM, cannot drop assume as x is not ephemeral
use(x);
```
+4 bench/ffmpeg/optimized/mjpegdec.ll : more aggresive jump-threading
+4 bench/pbrt-v4/optimized/lights.ll : use-order issue, causing simplifycfg fails to eliminate UB branch.
- regression caused by order-dependent UB branch elimination of simplifycfg.
See https://github.com/llvm/llvm-project/issues/98799 too.
+3 bench/eastl/optimized/TestHeap.ll : std::make_heap, more aggresive jump-threading
```
https://github.com/llvm/llvm-project/pull/187224
More information about the llvm-commits
mailing list