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

pre-commit: PR184311 - #3531

Closed
zyw-bot wants to merge 3 commits into
mainfrom
test-run22622196608
Closed

pre-commit: PR184311#3531
zyw-bot wants to merge 3 commits into
mainfrom
test-run22622196608

Conversation

@zyw-bot

@zyw-bot zyw-bot commented Mar 3, 2026

Copy link
Copy Markdown
Collaborator

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

@github-actions github-actions Bot mentioned this pull request Mar 3, 2026
@zyw-bot

zyw-bot commented Mar 3, 2026

Copy link
Copy Markdown
Collaborator Author

Diff mode

runner: ariselab-64c-docker
baseline: llvm/llvm-project@36cced2
patch: llvm/llvm-project#184311
sha256: 5f5f98926264528edbb3efb649758dfecaaa2a7fbbfbe2c9cb5fba99438c3682
commit: a69c849

325 files changed, 25088 insertions(+), 24468 deletions(-)

Improvements:
  adce.NumBranchesRemoved 23116 -> 23120 +0.02%
  local.NumPHICSEs 185363 -> 185377 +0.01%
  licm.NumSunk 268559 -> 268573 +0.01%
  adce.NumRemoved 95528 -> 95532 +0.00%
  dse.NumFastStores 1080504 -> 1080537 +0.00%
  func-properties-stats.NumStoreInstCount 23149598 -> 23150173 +0.00%
  instcount.NumStoreInst 23149598 -> 23150173 +0.00%
  dse.NumGetDomMemoryDefPassed 1285491 -> 1285516 +0.00%
  dse.NumRemainingStores 43865550 -> 43866395 +0.00%
  simplifycfg.NumSinkCommonCode 376289 -> 376291 +0.00%
Regressions:
  dse.NumRedundantStores 36229 -> 35625 -1.67%
  simplifycfg.NumHoistCommonCode 879640 -> 879592 -0.01%
  bdce.NumRemoved 378049 -> 378036 -0.00%
  loop-delete.NumDeleted 112128 -> 112125 -0.00%
  simplifycfg.NumHoistCommonInstrs 2481920 -> 2481864 -0.00%
  licm.NumMovedLoads 622025 -> 622015 -0.00%
  sccp.NumInstRemoved 1920851 -> 1920836 -0.00%
  gvn.NumGVNSimpl 4416024 -> 4415995 -0.00%
  correlated-value-propagation.NumPhis 1238210 -> 1238204 -0.00%
  gvn.NumGVNInstr 9122713 -> 9122690 -0.00%

+94 postgres/planner.ll
+29 arrow/api_scalar.ll
+16 arrow/api_vector.ll
+16 z3/dl_mk_coi_filter.ll
+15 arrow/scalar_cast_string.ll
+13 spike/disasm.ll
+7 arrow/api_aggregate.ll
+7 opencv/message.ll
+6 luau/Config.ll
+6 opencv/map_field.ll
+5 hyperscan/gtest-all.ll
+5 luau/TypePath.ll
+5 z3/mpf.ll
+4 abseil-cpp/gtest-all.ll
+4 cmake/cmString.ll
+4 opencv/generated_message_reflection.ll
+4 proj/crs.ll
+4 zxing/CharacterSet.ll
+4 zxing/MCDecoder.ll
+3 arrow/type.ll
+3 gromacs/colvarparse.ll
+2 abc/gtest-all.ll
+2 abseil-cpp/beta_distribution_test.ll
+2 abseil-cpp/poisson_distribution_test.ll
+2 duckdb/ub_duckdb_common.ll
+2 opencv/extension_set.ll
+2 opencv/ts_gtest.ll
+2 protobuf/extension_set.ll
+1 abseil-cpp/bernoulli_distribution_test.ll
+1 abseil-cpp/cord_rep_btree_navigator_test.ll
+1 abseil-cpp/crc_memcpy_test.ll
+1 abseil-cpp/non_temporal_memcpy_test.ll
+1 arrow/cast.ll
+1 cmake/cmCxxModuleMapper.ll
+0 abseil-cpp/cord_rep_btree_reader_test.ll
+0 abseil-cpp/str_split_test.ll
+0 harfbuzz/hb-number.ll
+0 lief/exports_trie.ll
+0 nlohmann_json/unit-udt_macro.ll
-3 rocksdb/version_builder.ll
-7 arrow/io_util.ll
-46 vcpkg/vcpkgpaths.ll

@github-actions

github-actions Bot commented Mar 3, 2026

Copy link
Copy Markdown
Contributor
  1. String Move Optimization in std::string Move Constructors: The patch reorders and refines the sequence of stores in std::string move constructors (e.g., C2EOS4_) across multiple benchmarks (abseil-cpp, arrow, cmake, gromacs, opencv, postgres). Specifically, it moves the critical store ptr %src, ptr %dst, align 8, !tbaa !... instruction — which updates the internal pointer to the moved-from buffer — after computing the new capacity/size fields but before finalizing the destination’s size field. This ensures the string object remains in a valid state earlier during the move.

  2. Consistent Pointer Store Placement in String Move Logic: In many C2EOS4_ blocks, the store of the source data pointer into the destination’s internal pointer field (e.g., store ptr %13, ptr %9, align 8, !tbaa !19) was previously omitted or misplaced and is now consistently added — often right before the final store i64 0, ... for the size field. This fixes potential use-of-uninitialized-pointer bugs and improves correctness.

  3. TBAA Metadata Updates in Protocol Buffer Code: In opencv’s protobuf-related IR (extension_set.ll, generated_message_reflection.ll, map_field.ll, message.ll), the patch swaps TBAA metadata IDs (e.g., !164!165, !41!47, !197!208) in load/store instructions and updates corresponding !tbaa node definitions. This reflects refined type-based aliasing assumptions, likely improving optimization safety and precision.

  4. Phi Node Operand Correction in Exception Handling Paths: Several phi instructions in landing pad and exception cleanup paths (e.g., %eh.lpad-body = phi { ptr, i32 } [...]) were updated to reference the correct predecessor basic block labels (e.g., %72%72, %57%57, %64%64) instead of mismatched ones. This fixes malformed PHI nodes that could cause miscompilation or undefined behavior during exception unwinding.

  5. Memcpy Target Address Computation Fix: In multiple C2EOS4_ sequences (e.g., io_util.ll, non_temporal_memcpy_test.ll), the getelementptr used as the destination for llvm.memcpy was incorrectly computed before the relevant size value was updated. The patch reorders the getelementptr (e.g., %25 = getelementptr ...) to occur after the size computation (e.g., %26 = add nuw nsw i64 %24, 1) and uses the newly computed GEP as the memcpy destination — ensuring the copy goes to the correct location in the small-string buffer.

model: qwen-plus-latest
CompletionUsage(completion_tokens=639, prompt_tokens=112132, total_tokens=112771, completion_tokens_details=None, prompt_tokens_details=None)

@nikic

nikic commented Mar 3, 2026

Copy link
Copy Markdown

/close

@github-actions github-actions Bot closed this Mar 3, 2026
@dtcxzyw
dtcxzyw deleted the test-run22622196608 branch March 4, 2026 15:51
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants