GCC backend subtree sync#155978
Conversation
…nishearth Clippy subtree update r? @Manishearth 1 week late, due to vacation and some technical issues.
…update_cg_gcc_2026-02-14
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.
Simplify running tests
This allows us to get rid of box_new entirely
…ded in this case
Split `compile` tests from `run` tests
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.
Add regression test for rust-lang#298
Update GCC version
…4_29 Sync from rust 2026/04/29
…r-call Fix ICE when calling transmuted function pointers
…update_cg_gcc_2026-04-29
|
The GCC codegen subtree was changed cc @antoyo |
This comment has been minimized.
This comment has been minimized.
|
This comment has been minimized.
This comment has been minimized.
|
@bors r=antoyo rollup=never p=1 |
This comment has been minimized.
This comment has been minimized.
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 differencesShow 2 test diffs2 doctest diffs were found. These are ignored, as they are noisy. Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (57f772f): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis 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. CyclesThis perf run didn't have relevant results for this metric. Binary sizeThis perf run didn't have relevant results for this metric. Bootstrap: 480.95s -> 483.007s (0.43%) |
r? ghost