Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Oct 29, 2025

Link: llvm/llvm-project#157559
Requested by: @nikic

@github-actions github-actions bot mentioned this pull request Oct 29, 2025
@zyw-bot
Copy link
Collaborator Author

zyw-bot commented Oct 29, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@dda95d9
patch: llvm/llvm-project#157559
sha256: 1cabc1693c7083eb55d954bd3e4326e39f1885352097c43ab0080eec22d93632
commit: bd19bd2

6662 files changed, 1639436 insertions(+), 1638551 deletions(-)

Improvements:
  correlated-value-propagation.NumAShrsRemoved 183 -> 185 +1.09%
  div-rem-pairs.NumHoisted 3241 -> 3251 +0.31%
  adce.NumRemoved 95136 -> 95338 +0.21%
  correlated-value-propagation.NumMinMax 12149 -> 12160 +0.09%
  instcombine.NumSunkInst 3400742 -> 3402772 +0.06%
  correlated-value-propagation.NumSICmps 62530 -> 62559 +0.05%
  jump-threading.NumDupes 129592 -> 129641 +0.04%
  correlated-value-propagation.NumAnd 44183 -> 44197 +0.03%
  correlated-value-propagation.NumPhis 1239029 -> 1239305 +0.02%
  correlated-value-propagation.NumSMinMax 9142 -> 9144 +0.02%
Regressions:
  instsimplify.NumReassoc 800583 -> 798882 -0.21%
  correlated-value-propagation.NumAddNUW 212257 -> 212076 -0.09%
  loop-simplify.NumNested 11696 -> 11689 -0.06%
  correlated-value-propagation.NumAddNW 432632 -> 432478 -0.04%
  simplifycfg.NumHoistCommonInstrs 2423344 -> 2422526 -0.03%
  correlated-value-propagation.NumNUW 571308 -> 571144 -0.03%
  correlated-value-propagation.NumSDivs 16935 -> 16931 -0.02%
  simplifycfg.NumHoistCommonCode 836772 -> 836578 -0.02%
  memdep.NumCacheDirtyNonLocalPtr 23074 -> 23069 -0.02%
  licm.NumMovedCalls 36917 -> 36911 -0.02%

+10 quantlib/garch.ll
+9 box2d/geometry.ll
+8 ffmpeg/silk.ll
+8 yalantinglibs/test_messages_proto3.pb.ll
+7 llvm/DwarfCompileUnit.ll
+6 assimp/BlenderTessellator.ll
+6 freetype/truetype.ll
+6 hermes/DebugInfo.ll
+6 lodepng/lodepng_util.ll
+6 mold/multi-glob.ll
+6 oiio/filesystem.ll
+6 spike/htif_pthread.ll
+5 openexr/internal_piz.ll
+5 quantlib/fftengine.ll
+4 clamav/encname.ll
+4 flac/options.ll
+4 jq/regerror.ll
+4 node/libnode.node_buffer.ll
+4 openusd/write.ll
+4 ruby/regerror.ll
+4 wolfssl/pwdbased.ll
+4 yyjson/yyjson.ll
+3 actix-rs/19s5ghr2x6s6bmh4.ll
+3 arrow/decimal.ll
+3 bullet3/MultiBodyTreeImpl.ll
+3 ceres/program.ll
+3 cmake/archive_cmdline.ll
+3 darktable/introspection_temperature.ll
+3 gromacs/enerdata_utils.ll
+3 gromacs/gmx_bar.ll
+3 gromacs/make_ndx.ll
+3 just-rs/1uppz7l1e89fp8n7.ll
+3 libigl/comb_frame_field.ll
+3 linux/alps.ll
+3 luajit/lj_ctype.ll
+3 luau/Parser.ll
+3 meshlab/filter_sdfgpu.ll
+3 ncnn/fold.ll
+3 nghttp2/nghttp2_hd.ll
+3 node/libnode.node_http2.ll
+3 nuttx/lib_strtold.ll
+3 ocio/CTFTransform.ll
+3 opencv/lrn_layer.ll
+3 postgres/gistscan.ll
+3 postgres/preptlist.ll
+3 wasmtime-rs/yijsgxkf5yj6ls1.ll
+3 wireshark/packet-smb.ll
+3 wireshark/to_str.ll
+3 z3/sat_probing.ll
+2 assimp/MakeVerboseFormat.ll
+2 faiss/IndexPQ.ll
+2 ffmpeg/jpegxl_parser.ll
+2 libwebp/picture_psnr_enc.ll
+2 openssl/asn_mime.ll
+2 rust-analyzer-rs/2bwlvqntjk72kr6f.ll
+2 wasmi-rs/0q3l37db1lfk5vitgppp099r5.ll
+1 cpp-httplib/httplib.ll
+1 darktable/CrwDecompressor.ll
+1 ffmpeg/aeval.ll
+1 folly/Random.ll
+1 git/submodule.ll
+1 openjdk/jcphuff.ll
+1 wireshark/packet-cops.ll
-1 abc/abcMerge.ll
-1 abc/giaMini.ll
-1 duckdb/ub_duckdb_core_functions_string.ll
-1 ocio/ConfigUtils.ll
-2 qemu/virtio.ll
-2 ruby/bignum.ll
-3 abseil-cpp/symbolize.ll
-3 casadi/einstein.ll
-3 ceres/schur_eliminator.ll
-3 cvc5/resolution_proofs_util.ll
-3 eastl/TestVectorMap.ll
-3 hermes/ISel.ll
-3 libcxx/abi_tag_on_virtual.ll
-3 libevent/http.ll
-3 libigl/hausdorff.ll
-3 libquic/bio.ll
-3 libsodium/core_ed25519.ll
-3 libwebp/webpinfo.ll
-3 lief/gcm.ll
-3 linux/chan.ll
-3 llvm/AsmMatcherEmitter.ll
-3 minetest/CMeshCache.ll
-3 open3d/ControlGrid.ll
-3 opencv/perf_norm.ll
-3 openexr/ImfImage.ll
-3 openspiel/dynamic_routing_utils.ll
-3 proxygen/HTTP2PriorityQueue.ll
-3 rocksdb/compaction_job.ll
-3 rocksdb/fs_on_demand.ll
-3 rocksdb/import_column_family_job.ll
-3 ruff-rs/8lgogilf7vbskewz0a9izgnge.ll
-3 spike/processor.ll
-3 syn/ofvfd67uyaewjlc.ll
-3 xgboost/version.ll
-3 yosys/mutate.ll
-3 yosys/register.ll
-4 abc/extraUtilDsd.ll
-4 cvc5/sygus_grammar_red.ll
-4 linux/xfrm_policy.ll
-4 postgres/gistbuild.ll
-4 sundials/sunlinsol_spfgmr.ll
-6 eastl/BenchmarkTupleVector.ll
-6 hermes/ProfileAnalyzer.ll
-6 libcxx/header_exportable_declarations.ll
-6 minetest/CGUIEnvironment.ll
-6 minetest/COpenGLDriver.ll
-6 php/var_unserializer.ll
-8 git/pack-redundant.ll
-8 openmpi/bfrop_base_macro_backers.ll
-9 eastl/TestSList.ll
-9 lean4/equiv_manager.ll
-9 libphonenumber/generate_geocoding_data.ll
-9 qemu/tcg.ll
-9 vcpkg/commands.depend-info.ll

@github-actions
Copy link
Contributor

Here are the major changes observed in the provided LLVM IR diff:

  1. Simplification of Control Flow and PHI Nodes: Several functions have been restructured to simplify control flow, often by introducing preheader blocks for loops and adjusting PHI node placements. This includes moving loads and computations into loop preheaders or splitting exit paths to reduce complexity (e.g., in abcMerge.ll, extraUtilDsd.ll, and giaMini.ll).

  2. Elimination of Redundant Arithmetic Operations: In multiple files (abcMerge.ll, actix-rs, assimp), redundant add operations were removed after a conditional check was optimized. For example, an add instruction followed by a comparison was replaced with just the comparison when the addition was unnecessary.

  3. Reordering and Removal of Memory Operations: Some diffs show reordering of GEP (getelementptr) and load instructions, as well as removal of redundant memset calls that were moved or folded into other basic blocks (e.g., in darktable, gromacs, faiss).

  4. Optimization of Loop Exit Logic: Loops now often use dedicated .loopexit blocks to compute values before merging back into the main control flow. This improves clarity and enables better optimization, such as hoisting invariant loads out of loops (seen in arrow, cvc5, git).

  5. Fixing PHI Node Merges Across Multiple Paths: Several instances update PHI nodes at merge points to correctly account for new control flow paths introduced during restructuring. This ensures correct dominance and value selection, particularly after splitting exit edges or adding new predecessors (e.g., in cvc5, hermes, jq).

model: qwen-plus-latest
CompletionUsage(completion_tokens=358, prompt_tokens=107292, total_tokens=107650, completion_tokens_details=None, prompt_tokens_details=None)

@nikic
Copy link

nikic commented Oct 29, 2025

Very similar to previous run.

/close

@github-actions github-actions bot closed this Oct 29, 2025
@dtcxzyw dtcxzyw deleted the test-run18904723889 branch October 29, 2025 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants