Skip to content

Conversation

@zyw-bot
Copy link
Collaborator

@zyw-bot zyw-bot commented Nov 6, 2025

Link: llvm/llvm-project#166800

Requested by: @Camsyn

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

zyw-bot commented Nov 6, 2025

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@7227030
patch: llvm/llvm-project#166800
sha256: 38bdfeaf0a513e2ebc44f39d6a9d6c134a4dc6516761dc14c04c26f7dfa01055
commit: 69aa1ae

11877 files changed, 1434393 insertions(+), 1449432 deletions(-)

Improvements:
  correlated-value-propagation.NumReturns 145 -> 180 +24.14%
  deadargelim.NumRetValsEliminated 15212 -> 15277 +0.43%
  sccp.NumInstRemoved 1940395 -> 1944905 +0.23%
  deadargelim.NumArgumentsReplacedWithPoison 103359 -> 103465 +0.10%
  memory-builtins.ObjectVisitorLoad 23209 -> 23227 +0.08%
  deadargelim.NumArgumentsEliminated 19191 -> 19200 +0.05%
  correlated-value-propagation.NumAddNUW 212129 -> 212190 +0.03%
  correlated-value-propagation.NumAddNW 432556 -> 432678 +0.03%
  correlated-value-propagation.NumAddNSW 220427 -> 220488 +0.03%
  correlated-value-propagation.NumNSW 569761 -> 569914 +0.03%
Regressions:
  dse.NumModifiedStores 9815 -> 9723 -0.94%
  count-visits.MaxVisited 44054 -> 43781 -0.62%
  scalar-evolution.NumBruteForceTripCountsComputed 66475 -> 66261 -0.32%
  indvars.NumFoldedUser 2099 -> 2093 -0.29%
  constraint-elimination.NumCondsRemoved 3349852 -> 3345280 -0.14%
  memdep.NumUncacheNonLocal 25309 -> 25275 -0.13%
  capture-tracking.NumCapturedBefore 16172409 -> 16151349 -0.13%
  memdep.NumUncacheNonLocalPtr 251620785 -> 251334259 -0.11%
  memdep.NumCacheNonLocalPtr 266910794 -> 266653107 -0.10%
  memdep.NumCacheNonLocal 19759 -> 19740 -0.10%

+21 llvm/Localizer.ll
+20 llvm/Symbol.ll
+19 node/libnode.environment.ll
+11 luau/TypeInfer.ll
+8 abseil-cpp/mutex.ll
+8 z3/sat_anf_simplifier.ll
+1 abseil-cpp/usage.ll
+1 folly/AsyncBase.ll
+1 llvm/InvalidPtrChecker.ll
+1 z3/qe_mbi.ll
+0 abc/abcAig.ll
+0 bdwgc/gc.ll
+0 c3c/linker.ll
+0 csmith/FunctionInvocationUser.ll
+0 elfshaker-rs/3a1f053714hdbf2r1u9m19s6u.ll
+0 foundations-rs/0uhtkdzva2a9kciz5ikpsa8ze.ll
+0 foundations-rs/erkslivvuaq2p4ulgpbnuovit.ll
+0 hyper-rs/5drhzjx8c241ue20.ll
+0 jq/regexec.ll
+0 libcxx/locale.ll
+0 lightgbm/tree.ll
+0 lua/lbaselib.ll
+0 memcached/testapp.ll
+0 miniaudio/unity.ll
+0 mold/lto-unix.cc.X86_64.ll
+0 msdfgen/import-font.ll
+0 nghttp2/llhttp.ll
+0 oniguruma/regexec.ll
+0 oniguruma/regparse.ll
+0 ozz-animation/jsoncpp.ll
+0 pocketpy/expr.ll
+0 raylib/raudio.ll
+0 raylib/rcore.ll
+0 raylib/rtextures.ll
+0 recastnavigation/catch_amalgamated.ll
+0 rustfmt-rs/3sx1t619hmuq0zz7.ll
+0 rustfmt-rs/4ext43viwbyeinhu.ll
+0 softposit-rs/1jooigl29qhneyer.ll
+0 sqlite/shell.ll
+0 tokenizers-rs/2mot01sr7ebui81b.ll
+0 tokenizers-rs/40hmx6rev8evi2bx.ll
+0 wasmedge/vm.ll
-3 abseil-cpp/symbolize.ll
-3 draco/parser_utils.ll
-3 rust-analyzer-rs/hajha7nvyoiczny.ll
-4 ipopt/IpTNLPAdapter.ll
-4 lodepng/lodepng_util.ll
-4 openssl/quic_demux.ll
-4 protobuf/helpers.ll
-4 qemu/job.ll
-4 wireshark/packet-mikey.ll
-5 lief/Builder.ll
-6 delta-rs/4yzqn3zldbxccs8p.ll
-6 php/softmagic.ll
-6 tokio-rs/1k577qo9p6sw2dlc.ll
-7 hermes/Runtime.ll
-7 wireshark/tap-diameter-avp.ll
-11 node/libnode.crypto_dsa.ll
-16 slurm/data.ll
-23 node/libnode.crypto_random.ll

@github-actions
Copy link
Contributor

github-actions bot commented Nov 6, 2025

The provided patch introduces several range attributes to function return types in LLVM IR, indicating that the return values of these functions fall within specific numerical bounds. These changes are purely metadata additions and do not alter the actual control flow or instruction sequence.

Key changes include:

  1. Addition of range attributes to numerous function declarations across multiple benchmarks (e.g., Abc_AigReplace, GC_get_version, dynamic_lib_linker) to specify valid output ranges for integer and boolean returns.
  2. Conversion of functions returning error/status codes (e.g., in hermes/Runtime.ll, jq/regexec.ll) to use range(i32 0, 1) or similar, indicating they return only 0 or 1 (success/failure).
  3. Modification of string/memory handling functions (e.g., in abseil-cpp/mutex.ll, folly/AsyncBase.ll) to reflect that certain operations always succeed (ret i1 false or ret void) and are annotated with appropriate range metadata.
  4. Updates to internal utility functions (e.g., data_offset, get_pointer_mask) to document known constant or bounded return values via range annotations.
  5. Refactoring of call sites and cleanup paths, particularly in exception-heavy code (e.g., ipopt/IpTNLPAdapter.ll), where control flow is simplified and return values are made consistent with added range constraints.

These changes enhance optimization opportunities by providing stronger guarantees about return values, enabling better dead code elimination, constant propagation, and assertion synthesis.

model: qwen-plus-latest
CompletionUsage(completion_tokens=333, prompt_tokens=94955, total_tokens=95288, completion_tokens_details=None, prompt_tokens_details=None)

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