Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Dec 11, 2025

Link: llvm/llvm-project#170439
Requested by: @dtcxzyw

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

zyw-bot commented Dec 11, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@a9a05df
patch: llvm/llvm-project#170439
sha256: 84f87b1f2508f88b7d76d0b8c01602c11b15c24c83e17909c177837b7dbc5ffd
commit: c9bae95

1622 files changed, 1070828 insertions(+), 1112046 deletions(-)

Improvements:
  correlated-value-propagation.NumSelects 228013 -> 228368 +0.16%
  simplifycfg.NumInvokeSetsFormed 53033 -> 53071 +0.07%
  instcombine.NumSel 32448 -> 32466 +0.06%
  simplifycfg.NumInvokesMerged 144576 -> 144652 +0.05%
  gvn.NumGVNInstr 149687 -> 149765 +0.05%
  gvn.NumGVNPRE 149687 -> 149765 +0.05%
  instcombine.NumSunkInst 3378701 -> 3380076 +0.04%
  correlated-value-propagation.NumShlNUW 152459 -> 152507 +0.03%
  correlated-value-propagation.NumShlNW 269521 -> 269569 +0.02%
  capture-tracking.NumCapturedBefore 16175738 -> 16178083 +0.01%
Regressions:
  bdce.NumRemoved 384163 -> 382616 -0.40%
  gvn.NumGVNEqProp 427638 -> 426725 -0.21%
  dse.NumFastOther 497537 -> 496661 -0.18%
  dse.NumFastStores 1103236 -> 1101518 -0.16%
  simplifycfg.NumSinkCommonInstrs 828610 -> 827568 -0.13%
  gvn.NumPRELoad 946850 -> 945912 -0.10%
  jump-threading.NumThreads 2694333 -> 2692419 -0.07%
  dse.NumGetDomMemoryDefPassed 1302933 -> 1302135 -0.06%
  capture-tracking.NumNotCapturedBefore 19405107 -> 19395481 -0.05%
  globalopt.NumDeleted 1053457 -> 1052981 -0.05%

+13 ruff-rs/e2ejosr9keyhzyna9ksx8o1ej.ll
+10 lief/ProcessorFlags.ll
+9 node/libnode.js_native_api_v8.ll
+7 linux/hcd.ll
+6 pola-rs/40wah5zis7dsqiheha5veerhb.ll
+5 duckdb/pac.ll
+5 jemalloc/pac.ll
+4 image-rs/5ez7udly19o3uj1p.ll
+4 zed-rs/08rfmg7gqi4939tj99psx2cc1.ll
+3 jemalloc/pa.ll
+3 mimalloc/segment.ll
+3 openjdk/g1Allocator.ll
+3 pola-rs/3nt80iercx0wi47qdga52jux8.ll
+3 tls-rs/59h61akxu6z29dlt.ll
+3 wolfssl/chacha.ll
+2 clamav/clamdtop.ll
+2 cmake/cmWorkerPool.ll
+2 cpython/io.ll
+2 cxxopts/example.ll
+2 elfshaker-rs/9g25xiovadbzz8leri5a9ttiq.ll
+2 ffmpeg/vsrc_life.ll
+2 fish-rs/87c4l3sw5gd0mi55puarpe5kb.ll
+2 freetype/autofit.ll
+2 hyperscan/smallwrite_build.ll
+2 libcxx/operations.ll
+2 libjpeg-turbo/jcarith.ll
+2 libjpeg-turbo/jdhuff.ll
+2 libzmq/socket_base.ll
+2 lief/AArch64Feature.ll
+2 llvm/AArch64AsmParser.ll
+2 llvm/MasmParser.ll
+2 openusd/decodemv.ll
+2 pola-rs/dyvzogkr4de6dykkhg9ts44xu.ll
+2 protobuf/file.ll
+2 protobuf/helpers.ll
+2 quantlib/svd.ll
+2 ruff-rs/1vv0cvls1pdao2fgvt8eanzsm.ll
+2 spdlog/bundled_fmtlib_format.ll
+2 tev/Channel.ll
+2 tomlplusplus/toml.ll
+2 turborepo-rs/7r1ggvy9mvit53mkmhrbr5w1w.ll
+2 yara-x-rs/7kdrv2ks7wriy60c55s9rwzp3.ll
+1 abseil-cpp/str_cat_test.ll
+1 assimp/MDLMaterialLoader.ll
+1 cmake/cmGeneratorExpressionNode.ll
+1 duckdb/yyjson.ll
+1 flatbuffers/code_generators.ll
+1 fmt/chrono-test.ll
+1 glslang/GlslangToSpv.ll
+1 hermes/HBC.ll
+1 hyperscan/ue2string.ll
+1 libquic/hpack_decoder.ll
+1 linux/i915_gem_pages.ll
+1 linux/sch_generic.ll
+1 llvm/Driver.ll
+1 llvm/MCObjectStreamer.ll
+1 luau/TypePath.ll
+1 meshlab/qualitymapperdialog.ll
+1 minetest/game.ll
+1 nori/layout.ll
+1 openjdk/g1YoungGCPostEvacuateTasks.ll
+1 openjdk/relocator.ll
+1 openspiel/oh_hell.ll
+1 pingora-rs/6puyzmepeom97q47u2fxom2e9.ll
+1 quantlib/schedule.ll
+1 sentencepiece/model_interface.ll
+1 tls-rs/1oa4q9ydtxtlathz.ll
+1 turborepo-rs/667fw7b0fgqo2a1672jmft41u.ll
+1 vcpkg/cmakevars.ll
+1 vcpkg/commands.remove.ll
+1 wireshark/atap_data_model.ll
+0 darktable/Cr2LJpegDecoder.ll
+0 luajit/lib_jit.ll
+0 pingora-rs/63snncgsqpi17trm0hdteq5vk.ll
+0 uv-rs/6hx44a4qx8lu3jf6nhovb9ka5.ll
+0 yara-x-rs/6lvluxz0xcnue8xe38nauwxln.ll
-1 abc/giaNf.ll
-1 cmake/http_ntlm.ll
-1 curl/http_digest.ll
-1 ffmpeg/mss12.ll
-1 linux/nf_conntrack_core.ll
-1 pbrt-v4/camera.ll
-1 php/pcre2_substitute.ll
-1 z3/sat_lookahead.ll
-2 curl/vtls.ll
-2 darktable/NefDecoder.ll
-2 folly/SplitStringSimd.ll
-2 folly/VirtualEventBase.ll
-2 lief/DynamicRelocationBase.ll
-2 llvm/MemProfiler.ll
-2 openjdk/jfrStorage.ll
-2 rust-analyzer-rs/34epm85550lugb2d.ll
-2 zed-rs/a9n822469hhbvmntwly5c3zys.ll
-2 zed-rs/bx05yi7k15cz36qdtwh95aj38.ll
-3 cmake/vtls.ll
-3 gromacs/colvarbias.ll
-3 lz4/lz4hc.ll
-3 php/token.ll
-3 tokio-rs/2zetnb9vrfbe3smf.ll
-3 zed-rs/d7h2r6mystjn2jzwcl5ofeoiz.ll
-4 bullet3/btAxisSweep3.ll
-7 libquic/quic_config.ll
-8 openjdk/g1Analytics.ll
-24 lief/DyldChainedFormat.ll

@github-actions
Copy link
Contributor

Here is a concise summary of the major changes in this LLVM IR diff:

  1. Optimized Pointer Arithmetic via select + getelementptr: Multiple files replace chains of getelementptr instructions (e.g., gep A, i64 X; gep B, i64 Y) with direct offset computation using select to choose between two base offsets, followed by a single getelementptr. This reduces instruction count and improves locality (e.g., giaNf.ll, str_cat_test.ll, vtls.ll, Curl_ssl_conn_config_update).

  2. Refined Structure Layout Accesses: Several patches adjust hardcoded struct field offsets (e.g., 5254, 15041625) used in getelementptr instructions, likely reflecting updated type layouts or ABI changes in the source C++ code (btAxisSweep3.ll, vtls.ll, http_digest.ll).

  3. Improved Exception Handling Flow: In MDLMaterialLoader.ll, the invoke instruction’s unwind destination is updated from %28 to %46, correcting control flow after an exception is caught and rethrown.

  4. Elimination of Redundant Intermediate GEPs: Many locations remove unnecessary getelementptr steps that were used solely to compute an address before loading/storing. Instead, loads/stores now use the directly computed getelementptr (e.g., clamdtop.ll, cmGeneratorExpressionNode.ll, yyjson.ll). This simplifies the IR and removes dead pointer values.

  5. Corrected PHI Node Block References: Several files fix PHI node predecessor block references to match updated control flow (e.g., changing %107 to %108, %61 to %62), ensuring accurate SSA form after other IR transformations (str_cat_test.ll, clamdtop.ll, cmWorkerPool.ll).

model: qwen-plus-latest
CompletionUsage(completion_tokens=423, prompt_tokens=111469, total_tokens=111892, completion_tokens_details=None, prompt_tokens_details=None)

%53 = load ptr, ptr %51, align 8, !tbaa !25
%54 = getelementptr inbounds nuw i8, ptr %51, i64 8
%55 = load i64, ptr %54, align 8, !tbaa !28
%54 = select i1 %49, i64 40, i64 72
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multi-use regression.

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.

3 participants