Skip to content

Conversation

GuillaumeGomez
Copy link
Member

cc @antoyo

r? ghost

RalfJung and others added 27 commits July 23, 2025 08:32
Make sure that compiler and linker don't optimize the section's contents
away by adding the global holding the data to "llvm.used". The volatile
load in the main shim is retained because "llvm.used", which translates
to SHF_GNU_RETAIN on ELF targets, requires a reasonably recent linker;
emitting the volatile load ensures compatibility with older linkers, at
least when libstd is used.

Pretty printers in dylib dependencies are now emitted by the main crate
instead of the dylib; apart from matching how rlibs are handled, this
approach has the advantage that `omit_gdb_pretty_printer_section` keeps
working with dylib dependencies.
The implementation of the linkage attribute inside extern blocks defines
symbols starting with _rust_extern_with_linkage_. If someone tries to
also define this symbol you will get a symbol conflict or even an ICE.
By adding an unpredictable component to the symbol name, this becomes
less of an issue.
atomicrmw on pointers: move integer-pointer cast hacks into backend

Conceptually, we want to have atomic operations on pointers of the form `fn atomic_add(ptr: *mut T, offset: usize, ...)`. However, LLVM does not directly support such operations (llvm/llvm-project#120837), so we have to cast the `offset` to a pointer somewhere.

This PR moves that hack into the LLVM backend, so that the standard library, intrinsic, and Miri all work with the conceptual operation we actually want. Hopefully, one day LLVM will gain a way to represent these operations without integer-pointer casts, and then the hack will disappear entirely.

Cc ```@nikic``` -- this is the best we can do right now, right?
Fixes rust-lang#134617
Update gccjit dependency and libgccjit commit
@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 26, 2025
@rustbot
Copy link
Collaborator

rustbot commented Aug 26, 2025

Some changes occurred in compiler/rustc_codegen_gcc

cc @antoyo, @GuillaumeGomez

@rust-log-analyzer

This comment has been minimized.

@GuillaumeGomez GuillaumeGomez force-pushed the subtree-update_cg_gcc_2025-08-26 branch from 70d06b3 to a03a0f1 Compare August 26, 2025 16:07
@rustbot
Copy link
Collaborator

rustbot commented Aug 26, 2025

⚠️ Warning ⚠️

@GuillaumeGomez
Copy link
Member Author

@bors r+ p=1

@bors
Copy link
Collaborator

bors commented Aug 26, 2025

📌 Commit 92104a6 has been approved by GuillaumeGomez

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 26, 2025
@bors
Copy link
Collaborator

bors commented Aug 26, 2025

⌛ Testing commit 92104a6 with merge 160e762...

@bors
Copy link
Collaborator

bors commented Aug 26, 2025

☀️ Test successful - checks-actions
Approved by: GuillaumeGomez
Pushing 160e762 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Aug 26, 2025
@bors bors merged commit 160e762 into rust-lang:master Aug 26, 2025
11 checks passed
@rustbot rustbot added this to the 1.91.0 milestone Aug 26, 2025
Copy link
Contributor

What is this? This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.

Comparing 91ee6a4 (parent) -> 160e762 (this PR)

Test differences

Show 2 test diffs

2 doctest diffs were found. These are ignored, as they are noisy.

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 160e7623e8cbbf1feab2b6e2a24733a98c7bde9c --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. x86_64-gnu-llvm-19: 2611.6s -> 3583.8s (37.2%)
  2. dist-aarch64-linux: 8868.2s -> 6181.3s (-30.3%)
  3. dist-apple-various: 5250.0s -> 4519.3s (-13.9%)
  4. i686-gnu-2: 6247.9s -> 5504.0s (-11.9%)
  5. x86_64-gnu-aux: 7515.0s -> 6632.7s (-11.7%)
  6. i686-gnu-nopt-1: 8413.8s -> 7439.7s (-11.6%)
  7. aarch64-gnu-llvm-19-1: 3714.9s -> 3291.3s (-11.4%)
  8. x86_64-rust-for-linux: 2850.4s -> 2539.0s (-10.9%)
  9. aarch64-gnu-llvm-19-2: 2522.6s -> 2257.6s (-10.5%)
  10. aarch64-msvc-2: 5397.0s -> 4901.6s (-9.2%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@GuillaumeGomez GuillaumeGomez deleted the subtree-update_cg_gcc_2025-08-26 branch August 26, 2025 22:06
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (160e762): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (secondary -2.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.2% [-2.2%, -2.1%] 2
All ❌✅ (primary) - - 0

Cycles

Results (primary -2.5%, secondary -1.9%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-2.5% [-2.5%, -2.5%] 2
Improvements ✅
(secondary)
-1.9% [-2.8%, -1.1%] 2
All ❌✅ (primary) -2.5% [-2.5%, -2.5%] 2

Binary size

Results (secondary 0.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
0.0% [0.0%, 0.0%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Bootstrap: 469.036s -> 466.645s (-0.51%)
Artifact size: 391.17 MiB -> 391.15 MiB (-0.00%)

@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
Prepare workflow directory
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v5' (SHA:08c6903cd8c0fde910a37f88322edcfb5dd907a8)
Complete job name: DockerHub mirror
##[group]Run actions/checkout@v5
with:
  persist-credentials: false
  repository: rust-lang/rust
  token: ***
---
http.https://github.com/.extraheader
[command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader
[command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :"
##[endgroup]
##[group]Run echo "***" | docker login ghcr.io -u rust-lang --password-stdin
echo "***" | docker login ghcr.io -u rust-lang --password-stdin
shell: /usr/bin/bash -e {0}
##[endgroup]
Error response from daemon: Get "https://ghcr.io/v2/": Get "https://ghcr.io/token?account=rust-lang&client_id=docker&offline_token=true&service=ghcr.io": net/http: request canceled (Client.Timeout exceeded while awaiting headers) (Client.Timeout exceeded while awaiting headers)
##[error]Process completed with exit code 1.
Post job cleanup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merged-by-bors This PR was explicitly merged by bors. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.