Skip to content
This repository was archived by the owner on Mar 17, 2026. It is now read-only.

pre-commit: PR171195#3316

Closed
zyw-bot wants to merge 3 commits intomainfrom
test-run20880296445
Closed

pre-commit: PR171195#3316
zyw-bot wants to merge 3 commits intomainfrom
test-run20880296445

Conversation

@zyw-bot
Copy link
Copy Markdown
Collaborator

@zyw-bot zyw-bot commented Jan 10, 2026

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

@github-actions github-actions Bot mentioned this pull request Jan 10, 2026
@zyw-bot
Copy link
Copy Markdown
Collaborator Author

zyw-bot commented Jan 10, 2026

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@c9f13b5
patch: llvm/llvm-project#171195
sha256: 4ddcb72515c2e44fad3d3520b22da841b0851c0de887162094c9bac10890a2c1
commit: 82a0190

188 files changed, 31138 insertions(+), 31796 deletions(-)

Improvements:
  instcombine.NumSunkInst 3378045 -> 3378233 +0.01%
  instcombine.NumDeadInst 41019865 -> 41021144 +0.00%
  correlated-value-propagation.NumAnd 44494 -> 44495 +0.00%
  instcombine.NumFactor 45548 -> 45549 +0.00%
  simplifycfg.NumFoldValueComparisonIntoPredecessors 512833 -> 512844 +0.00%
  instcount.NumSwitchInst 624500 -> 624511 +0.00%
  simplifycfg.NumFoldBranchToCommonDest 747846 -> 747858 +0.00%
  instsimplify.NumReassoc 815252 -> 815264 +0.00%
  reassociate.NumChanged 4978958 -> 4978997 +0.00%
  correlated-value-propagation.NumCmps 270819 -> 270821 +0.00%
Regressions:
  aggressive-instcombine.NumInstrsReduced 44900 -> 44885 -0.03%
  aggressive-instcombine.NumExprsReduced 15545 -> 15543 -0.01%
  instcount.NumTruncInst 2076846 -> 2076653 -0.01%
  instcount.NumAndInst 3894745 -> 3894434 -0.01%
  gvn.NumGVNSimpl 4421690 -> 4421630 -0.00%
  simplifycfg.NumHoistCommonInstrs 2507910 -> 2507878 -0.00%
  simplifycfg.NumHoistCommonCode 879088 -> 879078 -0.00%
  instcount.NumSelectInst 1785002 -> 1784985 -0.00%
  instcount.NumOrInst 1151831 -> 1151821 -0.00%
  gvn.NumGVNInstr 149559 -> 149558 -0.00%

+10 libigl/bijective_composite_harmonic_mapping.ll
+8 wasmi-rs/0ub1jde20vya53xoib9dbvqz5.ll
+5 hermes/JSProxy.ll
+3 openspiel/quoridor.ll
+2 libquic/tasn_enc.ll
+1 abc/sscSim.ll
+1 cpython/_ssl.ll
+1 libigl/ViewerCore.ll
+1 llvm/LoopUtils.ll
+1 llvm/SemaType.ll
+1 pingora-rs/031lstpg0hmrazohafgtmu7kw.ll
+1 pola-rs/cztbx1zaxsgh33rhqav0blwq7.ll
+0 arrow/value_parsing.ll
+0 boost/src.ll
+0 ffmpeg/vf_lut3d.ll
+0 folly/OpenSSLCertUtils.ll
+0 jq/jv.ll
+0 lvgl/lv_draw_buf.ll
+0 openssl/pkcs12.ll
+0 openssl/recordlentest.ll
+0 openssl/rsa_gen.ll
+0 openssl/ssl_rsa.ll
+0 wasmedge/wasifunc.ll
-1 abc/lpkCut.ll
-1 hermes/HiddenClass.ll
-1 hermes/JSObject.ll
-1 llvm/CheckObjCDealloc.ll
-1 openssl/p12_kiss.ll
-1 wolfssl/tls13.ll
-2 abc/abcOrchestration.ll
-2 abc/abcResub.ll
-2 llvm/DeadStoreElimination.ll
-2 llvm/InstCombineSelect.ll
-3 abc/giaMulFind.ll
-3 abc/giaUtil.ll
-3 fmt/format-test.ll
-3 fmt/std-test.ll
-3 libquic/source_address_token.pb.ll
-3 llvm/HeuristicResolver.ll
-3 llvm/ModuleSymbolTable.ll
-3 llvm/SemaARM.ll
-3 llvm/SemaDeclCXX.ll
-3 node/libnode.crypto_util.ll
-3 openexr/internal_dwa.ll
-3 openssl/apps.ll
-3 openssl/decode_pvk2key.ll
-3 openusd/openexr-c.ll
-4 cpython/posixmodule.ll
-4 llvm/Compiler.ll
-4 llvm/RISCVInstPrinter.ll
-4 node/libnode.crypto_keys.ll
-4 oiio/CineonHeader.ll
-5 openssl/speed.ll
-6 fmt/ranges-test.ll
-6 folly/Zlib.ll
-6 lightgbm/tree.ll
-6 llvm/InstCombineAndOrXor.ll
-6 openssl/asn1_internal_test.ll
-8 cmake/openssl.ll
-8 curl/openssl.ll
-9 icu/collationbuilder.ll
-9 openssl/bio_lib.ll
-10 llvm/VPlanRecipes.ll

@github-actions
Copy link
Copy Markdown
Contributor

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

  1. Boolean Logic Simplification: Multiple instances replace complex and/or/icmp chains with direct icmp eq/ne comparisons against combined bitmasks (e.g., and i64 X, MASK; icmp eq i64 ..., VALUE). This eliminates intermediate truncations and redundant comparisons.

  2. Bitmask Constant Folding: Bitwise constants are updated to reflect merged masks (e.g., 2305843009213693952 | 536870911 → 2305843009750564864) and comparison values adjusted accordingly (icmp eq i64 ..., 0 → icmp eq i64 ..., MASK), enabling more precise control flow.

  3. Phi Node & Branch Target Updates: Basic block predecessors in phi instructions and br terminator operands are updated to match new control-flow structure (e.g., %64 instead of %61, %._crit_edge40.i instead of %._crit_edge.i), ensuring correct SSA value merging after CFG changes.

  4. Pointer Arithmetic & Load/Store Adjustments: In libigl/ViewerCore.ll, pointer arithmetic uses full i64 values instead of truncated i32, and store/load addresses are updated to match new pointer types and offsets (e.g., %27%28 in store i64 ...).

  5. Exception Handling & Landing Pad Cleanup: Exception handling paths are simplified: some landingpad blocks are removed or redirected, phi nodes for exception payloads are updated with new predecessor blocks, and resume/unreachable blocks are adjusted to match revised unwind edges.

These changes collectively improve code clarity, reduce instruction count, and enhance optimization opportunities by simplifying boolean logic, folding constants, and maintaining correct SSA form after structural updates.

model: qwen-plus-latest
CompletionUsage(completion_tokens=425, prompt_tokens=112263, total_tokens=112688, completion_tokens_details=None, prompt_tokens_details=None)

%196 = trunc i64 %.0.i.i91 to i32
%197 = or i64 %.0.i.i91, %.0.i.i
%198 = and i64 %197, 4294967295
%or.cond.not = icmp eq i64 %198, 0
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Regression.

@dtcxzyw dtcxzyw closed this Jan 10, 2026
@dtcxzyw dtcxzyw deleted the test-run20880296445 branch January 10, 2026 16:07
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants