Skip to content

pre-commit: PR132007 #2218

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

pre-commit: PR132007 #2218

wants to merge 3 commits into from

Conversation

dtcxzyw
Copy link
Owner

@dtcxzyw dtcxzyw commented Mar 19, 2025

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

@github-actions github-actions bot mentioned this pull request Mar 19, 2025
@dtcxzyw
Copy link
Owner Author

dtcxzyw commented Mar 19, 2025

Diff mode

runner: ariselab-64c-v2
baseline: llvm/llvm-project@6dba5f6
patch: llvm/llvm-project#132007
sha256: fc8d406337c4cffcd90c27255828242c639513567f322cd30baa81a80d8071a4
commit: 13b929f

3503 files changed, 57483 insertions(+), 57396 deletions(-)

Improvements:
  function-attrs.NumNoAlias 60899 -> 61143 +0.40%
  function-attrs.NumCapturesPartial 429521 -> 430066 +0.13%
  indvars.NumElimIdentity 1760 -> 1762 +0.11%
  licm.NumLoadPromoted 66100 -> 66119 +0.03%
  instsimplify.NumReassoc 344865 -> 344909 +0.01%
  capture-tracking.NumNotCapturedBefore 16121377 -> 16122928 +0.01%
  function-attrs.NumCapturesNone 2931895 -> 2932095 +0.01%
  memdep.NumUncacheNonLocal 25204 -> 25205 +0.00%
  licm.NumMovedCalls 25424 -> 25425 +0.00%
  sccp.NumInstReplaced 140313 -> 140318 +0.00%
Regressions:
  gvn.IsValueFullyAvailableInBlockNumSpeculationsMax 524883 -> 524613 -0.05%
  licm.NumLoadStorePromoted 56886 -> 56857 -0.05%
  capture-tracking.NumCapturedBefore 14930889 -> 14928478 -0.02%
  dse.NumFastStores 949756 -> 949647 -0.01%
  loop-simplify.NumNested 9558 -> 9557 -0.01%
  early-cse.NumCSECall 24313 -> 24311 -0.01%
  dse.NumCFGTries 49054 -> 49050 -0.01%
  dse.NumCFGChecks 537760 -> 537724 -0.01%
  memdep.NumCacheNonLocal 19585 -> 19584 -0.01%
  gvn.NumGVNSimpl 4095160 -> 4094964 -0.00%

4 3 bench/abc/optimized/cbaNtk.ll
12 5 bench/abc/optimized/cmdPlugin.ll
19 20 bench/abc/optimized/mioUtils.ll
1 1 bench/abseil-cpp/optimized/beta_distribution_test.ll
74 67 bench/abseil-cpp/optimized/str_replace.ll
3 3 bench/brotli/optimized/brotli.ll
9 10 bench/chibicc/optimized/preprocess.ll
36 30 bench/clamav/optimized/clamdcom.ll
7 5 bench/clamav/optimized/clamdtop.ll
10 22 bench/clamav/optimized/pdf.ll
6 5 bench/clamav/optimized/phishcheck.ll
64 62 bench/clamav/optimized/sigtool.ll
6 11 bench/cmake/optimized/hostip.ll
128 127 bench/cpython/optimized/initconfig.ll
5 6 bench/crow/optimized/example.ll
42 40 bench/curl/optimized/smtp.ll
70 71 bench/curl/optimized/tool_ssls.ll
3 5 bench/flac/optimized/foreign_metadata.ll
2 1 bench/folly/optimized/Format.ll
5 2 bench/git/optimized/add-patch.ll
12 10 bench/git/optimized/files-backend.ll
19 16 bench/glog/optimized/logging.ll
29 18 bench/glog/optimized/symbolize.ll
266 218 bench/graphviz/optimized/prune.ll
20 25 bench/gromacs/optimized/mdoutf.ll
24 24 bench/gromacs/optimized/tng_io.ll
24 20 bench/grpc/optimized/service_config_impl.ll
45 53 bench/hdf5/optimized/H5FDlog.ll
9 8 bench/hdf5/optimized/H5Lint.ll
46 45 bench/hwloc/optimized/hwloc-annotate.ll
48 45 bench/hwloc/optimized/hwloc-distrib.ll
69 61 bench/hwloc/optimized/traversal.ll
6 10 bench/icu/optimized/uresbund.ll
6 6 bench/imgui/optimized/imgui.ll
9 21 bench/libjpeg-turbo/optimized/jsimd.ll
57 87 bench/libjpeg-turbo/optimized/strtest.ll
3 2 bench/libquic/optimized/connect.ll
113 120 bench/libsodium/optimized/aegis128l_aesni.ll
22 24 bench/libsodium/optimized/aegis256_aesni.ll
61 67 bench/meshlab/optimized/meshio.ll
2 2 bench/nanobind/optimized/nb_func.ll
9 9 bench/nanosvg/optimized/nanosvgrast.ll
22 20 bench/nlohmann_json/optimized/main.ll
21 19 bench/openjdk/optimized/ps_proc.ll
35 30 bench/openmpi/optimized/schizo_base_frame.ll
6 4 bench/openssl/optimized/app_provider.ll
21 20 bench/openssl/optimized/cmp.ll
7 5 bench/php/optimized/ftp_fopen_wrapper.ll
41 49 bench/postgres/optimized/string_utils.ll
7 7 bench/proj/optimized/init.ll
34 40 bench/qemu/optimized/pci.ll
23 24 bench/raylib/optimized/rcore.ll
8 8 bench/raylib/optimized/rtext.ll
7 5 bench/redis/optimized/setproctitle.ll
79 75 bench/ruby/optimized/load.ll
9 14 bench/ruby/optimized/raddrinfo.ll
5 4 bench/sentencepiece/optimized/trainer_interface.ll
5 5 bench/sentencepiece/optimized/unigram_model.ll
11 6 bench/slurm/optimized/cred.ll
37 27 bench/slurm/optimized/proc_args.ll
26 25 bench/slurm/optimized/slurm_protocol_defs.ll
8 6 bench/slurm/optimized/slurmd.ll
8 6 bench/slurm/optimized/slurmdbd_agent.ll
11 9 bench/slurm/optimized/update_job.ll
10 7 bench/slurm/optimized/x11_util.ll
4 4 bench/sqlite/optimized/shell.ll
5 5 bench/stb/optimized/stb_include.ll
8 10 bench/wireshark/optimized/packet-6lowpan.ll
41 43 bench/wireshark/optimized/packet-aeron.ll
13 14 bench/wireshark/optimized/packet-c1222.ll
23 44 bench/wireshark/optimized/packet-ieee80211.ll
28 37 bench/wireshark/optimized/packet-smb2.ll
10 14 bench/wireshark/optimized/stats_tree.ll
6 6 bench/yosys/optimized/fstapi.ll

Copy link
Contributor

Based on the provided LLVM IR diffs, here is a summary of up to 5 major changes:

  1. Memory Provenance and Return Capture Annotations:

    • Several declarations for string manipulation functions (e.g., strchr, strrchr, memchr, strcpy, strncpy, etc.) now include additional annotations such as captures(ret: address, provenance) or captures(ret: address). These annotations likely enhance the analysis of memory provenance and ensure that the returned pointer is properly tracked in terms of its origin and lifetime.
    • Example: declare ptr @strchr(ptr noundef captures(ret: address, provenance), i32 noundef).
  2. Optimization of Lifetime Management:

    • Numerous instances of llvm.lifetime.start and llvm.lifetime.end calls have been added or reordered. This indicates improved tracking of object lifetimes, which can help with optimizations like dead store elimination and better register allocation.
    • Example: call void @llvm.lifetime.start.p0(i64 6256, ptr nonnull %19).
  3. Improved Phi Node Usage:

    • Phi nodes have been refined or added in several places to improve control flow merging and value propagation. This change enhances the clarity of data flow and may lead to better optimization opportunities.
    • Example: %17 = phi i64 [ %16, %.outer ], [ 0, %4 ].
  4. Use of freeze Intrinsic:

    • The freeze intrinsic has been introduced in some cases to indicate that a value will not be modified by subsequent operations. This allows the compiler to make stronger assumptions about the value's constancy.
    • Example: %.val.fr = freeze i64 %.val.
  5. Reordering and Simplification of Control Flow:

    • Some blocks have been restructured or eliminated, leading to simpler and more efficient control flow. For example, redundant stores and branches have been removed or replaced with more direct logic.
    • Example: Removal of .thread231.loopexit and consolidation of logic into .backedge.

These changes collectively aim to improve memory safety, optimize control flow, and enhance the clarity of data dependencies in the LLVM IR. They also reflect updates to function attributes and metadata to better support alias analysis, loop optimizations, and other passes in the LLVM pipeline.

model: qwen-plus-latest
CompletionUsage(completion_tokens=503, prompt_tokens=100799, total_tokens=101302, 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