Skip to content

GCC backend subtree sync#155978

Merged
rust-bors[bot] merged 120 commits intorust-lang:mainfrom
GuillaumeGomez:subtree-update_cg_gcc_2026-04-29
Apr 30, 2026
Merged

GCC backend subtree sync#155978
rust-bors[bot] merged 120 commits intorust-lang:mainfrom
GuillaumeGomez:subtree-update_cg_gcc_2026-04-29

Conversation

@GuillaumeGomez
Copy link
Copy Markdown
Member

r? ghost

GuillaumeGomez and others added 30 commits February 12, 2026 14:57
…nishearth

Clippy subtree update

r? @Manishearth 

1 week late, due to vacation and some technical issues.
It was just a dummy implementation to workarround the fact that thin
local lto is the default in rustc. By adding a thin_lto_supported thin
local lto can be automatically disabled for cg_gcc, removing the need
for this dummy implementation. This makes improvements to the LTO
handling on the cg_ssa side a lot easier.
This allows us to get rid of box_new entirely
This allows removing the Metadata associated type from BackendTypes.
In Cranelift the regular Type enum can't represent function signatures.
Function pointers are represented as plain pointer sized integer.
Previously this was not correctly implemented. Each funclet may need its own terminate
block, so this changes the `terminate_block` into a `terminate_blocks` `IndexVec` which
can have a terminate_block for each funclet. We key on the first basic block of the
funclet -- in particular, this is the start block for the old case of the top level
terminate function.

Rather than using a catchswitch/catchpad pair, I used a cleanuppad. The reason for the
pair is to avoid catching foreign exceptions on MSVC. On wasm, it seems that the
catchswitch/catchpad pair is optimized back into a single cleanuppad and a catch_all
instruction is emitted which will catch foreign exceptions. Because the new logic is
only used on wasm, it seemed better to take the simpler approach seeing as they do the
same thing.
In Cranelift a Value can't hold arbitrarily sized values.
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 29, 2026

The GCC codegen subtree was changed

cc @antoyo

@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 Apr 29, 2026
@rustbot

This comment has been minimized.

@rustbot rustbot added has-merge-commits PR has merge commits, merge with caution. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 29, 2026
@rustbot
Copy link
Copy Markdown
Collaborator

rustbot commented Apr 29, 2026

⚠️ Warning ⚠️

Copy link
Copy Markdown
Contributor

@antoyo antoyo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rust-log-analyzer

This comment has been minimized.

@GuillaumeGomez
Copy link
Copy Markdown
Member Author

@bors r=antoyo rollup=never p=1

@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 29, 2026

📌 Commit f3d34dc has been approved by antoyo

It is now in the queue for this repository.

@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. S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Apr 29, 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 Apr 30, 2026
@rust-bors
Copy link
Copy Markdown
Contributor

rust-bors Bot commented Apr 30, 2026

☀️ Test successful - CI
Approved by: antoyo
Duration: 3h 15m 39s
Pushing 57f772f to main...

@rust-bors rust-bors Bot merged commit 57f772f into rust-lang:main Apr 30, 2026
12 checks passed
@rustbot rustbot added this to the 1.97.0 milestone Apr 30, 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 a021a77 (parent) -> 57f772f (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 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 --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. dist-aarch64-linux: 1h 43m -> 2h 30m (+45.0%)
  2. x86_64-gnu-llvm-21: 1h 13m -> 1h 39m (+35.1%)
  3. x86_64-gnu-gcc: 1h 6m -> 1h 24m (+28.4%)
  4. x86_64-rust-for-linux: 53m 50s -> 39m 2s (-27.5%)
  5. i686-msvc-1: 3h 7m -> 2h 16m (-27.3%)
  6. i686-gnu-nopt-1: 2h 22m -> 1h 49m (-23.4%)
  7. dist-i686-msvc: 2h 21m -> 1h 48m (-23.2%)
  8. dist-x86_64-apple: 2h 21m -> 1h 50m (-22.1%)
  9. dist-x86_64-msvc-alt: 2h 10m -> 2h 39m (+21.9%)
  10. x86_64-gnu-debug: 2h 1m -> 1h 36m (-20.5%)
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.

@rust-timer
Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (57f772f): 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

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

Binary size

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

Bootstrap: 480.95s -> 483.007s (0.43%)
Artifact size: 390.98 MiB -> 391.00 MiB (0.00%)

@GuillaumeGomez GuillaumeGomez deleted the subtree-update_cg_gcc_2026-04-29 branch April 30, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

has-merge-commits PR has merge commits, merge with caution. 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.