Skip to content

rustc_codegen_gcc subtree update - #162499

Merged
rust-bors[bot] merged 163 commits into
rust-lang:mainfrom
GuillaumeGomez:subtree-update_cg_gcc_2026-09-08
Sep 22, 2026
Merged

rust-bors[bot] merged 163 commits into
rust-lang:mainfrom
GuillaumeGomez:subtree-update_cg_gcc_2026-09-08

Conversation

@GuillaumeGomez

@GuillaumeGomez GuillaumeGomez commented Sep 8, 2026 •

Copy link
Copy Markdown
Member

View all comments

r? antoyo

nbdd0121 and others added 30 commits July 22, 2026 13:47
This gives the asm-const code the basic ability to deal wiht pointer and
provenances, which lays the ground work for asm_const_ptr.

Note that `SymStatic` is not fully removed, a specialized is kept and
renamed as `SymThreadLocalStatic`, for `#[thread_local]` statics where CTFE
does not support naming. The `#[thread_local]` is unstable feature and it's
not clear if we want to support this in `sym`, but removal of it should be
a separate PR.
With the previous commit, now we can see there are some code duplication
for the handling of `GlobalAlloc` inside backends. Do some clean up to
unify them.
This will allow introducing a separate incr comp session dir for the
post LTO artifacts in the future. In addition it statically encodes the
lifetime of the incr comp session rather than requiring an enum behind a
mutex stored in the Session.
Support using const pointers in asm `const` operand

Implements [RFC#3848](rust-lang/rfcs#3848) with tracking issue rust-lang#128464

This adds support of const pointers for asm `const` in addition to plain integers.

The inline `asm!` support is implemented using `i` constraint, and the `global_asm!` and `naked_asm!` support is implemented by inserting `symbol + offset` and make `symbol` compiler-used. For unnamed consts, it will create additional internal & hidden symbols so that they can be referenced by global_asm.

~~The feature is also implemented for GCC backend but it's untested.~~ Tested now.
…nathanBrouwer

Rename `errors.rs` file to `diagnostics.rs` (15/N)

Follow-up of rust-lang#157485.

r? @JonathanBrouwer
This is already *supposed* to be impossible in layout, but this emphasizes that better.

Ironically I was inspired to do this as part of looking at making `Simd<T, 0>` *work*, but importantly if that's going to happen I think it should be `BackendRepr::Memory` like other ZSTs, *not* a `BackendRepr::ScalarVector` that would need to carry around a useless LLVM value in `OperandValue::Immediate` (where it's not even clear what the LLVM type of that value would be).
Structurally prevent zero-count `BackendRepr::SimdVector`s

This is already *supposed* to be impossible in layout, but this emphasizes that better.  This PR makes no behaviour changes; just `BackendLaneCount` instead of `u64` in https://doc.rust-lang.org/nightly/nightly-rustc/rustc_abi/enum.BackendRepr.html

Ironically I was inspired to do this as part of [looking at making `Simd<T, 0>` *work*](https://rust-lang.zulipchat.com/#narrow/channel/257879-project-portable-simd/topic/Allow.20N.3D.3D0.3F/with/613345298), but importantly if that's going to happen I think it should be `BackendRepr::Memory` like other ZSTs, *not* a `BackendRepr::ScalarVector` that would need to carry around a useless LLVM value in `OperandValue::Immediate` (where it's not even clear what the LLVM type of that value would be).
Only emit -fno-asynchronous-unwind-tables when we should not emit unwind tables
…e_cg_gcc_2026-07-24, r=GuillaumeGomez"

This reverts commit 5048696, reversing
changes made to 7c329d6.
…oli-obk

Split IncrCompSession out of Session

This will allow introducing a separate incr comp session dir for the post LTO artifacts in the future. In addition it statically encodes the lifetime of the incr comp session rather than requiring an enum behind a mutex stored in the Session.

Based on rust-lang#159000
Part of rust-lang/compiler-team#908
doc/tips.md links to ./doc/gimple.md, but tips.md is itself inside doc/,
so the link resolves to doc/doc/gimple.md and 404s. The file sits next
to it.

Readme.md links to ./doc/debugging-gcc-lto.md. That file was added in
79316d4 and removed again in 79a6e4e, which replaced it with the
broader doc/debugging.md; the Readme entry was not updated. The GCC LTO
material is still there, as the first section of that file.
CONTRIBUTING.md already refers to it as [Debugging](doc/debugging.md),
so the Readme entry now matches that name.
Remove passing tests from failing-ui-tests.txt
@JonathanBrouwer

Copy link
Copy Markdown
Member

@bors rollup=never historic issues

@rust-bors

This comment has been minimized.

rust-bors Bot pushed a commit that referenced this pull request Sep 19, 2026
…08, r=antoyo

`rustc_codegen_gcc` subtree update



r? antoyo
@rust-bors rust-bors Bot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 19, 2026
@rust-bors

rust-bors Bot commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

💔 Test for 4b31130 failed: CI. Failed job:

JonathanBrouwer added a commit to JonathanBrouwer/rust that referenced this pull request Sep 21, 2026
Use newer `make` version when building GCC

Needed for rust-lang#162499. One day we'll finish this sync... :')

cc @antoyo
r? @Kobzol
rust-bors Bot pushed a commit that referenced this pull request Sep 21, 2026
Rollup merge of #163031 - GuillaumeGomez:update-make, r=Kobzol

Use newer `make` version when building GCC

Needed for #162499. One day we'll finish this sync... :')

cc @antoyo
r? @Kobzol
@Kobzol

Kobzol commented Sep 22, 2026

Copy link
Copy Markdown
Member

@bors r=antoyo

Let's try again after #163031, the queue is mostly empty anyway.

@rust-bors

rust-bors Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

📌 Commit cf4bee6 has been approved by antoyo

It is now in the queue for this repository.

A failed build status on this PR was cleared due to the approval.

@rust-bors rust-bors Bot 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 Sep 22, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors Bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Sep 22, 2026
@rust-bors

rust-bors Bot commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

☀️ Test successful - CI
Approved by: antoyo
Duration: 3h 6m 27s
Pushing c64de18 to main...

@rust-bors
rust-bors Bot merged commit c64de18 into rust-lang:main Sep 22, 2026
14 checks passed
@rustbot rustbot added this to the 1.100.0 milestone Sep 22, 2026
@github-actions

Copy link
Copy Markdown
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 e5b9509 (parent) -> c64de18 (this PR)

Test differences

Show 8 test diffs

Stage 2

  • [run-make] tests/run-make/comment-section: pass -> ignore (gcc backend is marked as ignore) (J0)
  • [run-make] tests/run-make/dirty-incr-due-to-hard-link: pass -> ignore (gcc backend is marked as ignore) (J0)
  • [run-make] tests/run-make/emit: pass -> ignore (gcc backend is marked as ignore) (J0)
  • [run-make] tests/run-make/extra-filename-with-temp-outputs: pass -> ignore (gcc backend is marked as ignore) (J0)
  • [run-make] tests/run-make/parallel-reproducible-build: pass -> ignore (gcc backend is marked as ignore) (J0)
  • [run-make] tests/run-make/parallel-reproducible-inline-asm-cookie: pass -> ignore (gcc backend is marked as ignore) (J0)

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

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard c64de18c55c70d62aa88a5722dea8f8e263bacf3 --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. test-various: 1h 23m -> 2h 10m (+56.6%)
  2. test-x86_64-gnu-gcc-core-tests: 10m 41s -> 16m 27s (+54.0%)
  3. dist-x86_64-solaris: 1h 12m -> 1h 42m (+40.9%)
  4. test-x86_64-msvc-ext3: 1h 56m -> 1h 11m (-38.7%)
  5. test-x86_64-gnu-llvm-22-2: 1h 38m -> 1h (-38.5%)
  6. test-x86_64-gnu-parallel-frontend: 1h 12m -> 1h 39m (+38.1%)
  7. test-x86_64-gnu-miri: 1h 18m -> 49m 29s (-37.0%)
  8. test-i686-msvc: 1h 54m -> 2h 36m (+36.8%)
  9. optional-test-x86_64-gnu-autodiff: 53m 41s -> 34m 46s (-35.2%)
  10. test-x86_64-gnu-debug: 2h 4m -> 1h 25m (-31.6%)
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.

pull Bot pushed a commit to xtqqczze/rust-lang-miri that referenced this pull request Sep 22, 2026
Use newer `make` version when building GCC

Needed for rust-lang/rust#162499. One day we'll finish this sync... :')

cc @antoyo
r? @Kobzol
@bjorn3

bjorn3 commented Sep 22, 2026

Copy link
Copy Markdown
Member

🎉 🥳 🚀

@GuillaumeGomez
GuillaumeGomez deleted the subtree-update_cg_gcc_2026-09-08 branch September 22, 2026 11:38
@GuillaumeGomez

Copy link
Copy Markdown
Member Author

Finally! T_T

@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (c64de18): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This perf run didn't have relevant results for this metric.

Max RSS (memory usage)

This perf run didn't have relevant results for this metric.

Cycles

Results (secondary 2.8%)

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)
2.8% [2.8%, 2.8%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

This perf run didn't have relevant results for this metric.

Bootstrap: 487.336s -> 488.215s (0.18%)
Artifact size: 406.32 MiB -> 406.35 MiB (0.01%)

JonathanBrouwer pushed a commit to JonathanBrouwer/rust that referenced this pull request Sep 24, 2026
…_2026-09-08, r=antoyo

`rustc_codegen_gcc` subtree update



r? antoyo
theemathas added a commit to theemathas/rust that referenced this pull request Sep 25, 2026
Previously, in rust-lang#161972,
this test was skipped on gcc, due to a bug in rustc_codegen_gcc.
The bug was fixed by the subtree update at
rust-lang#162499.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. 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.