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
|
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%) |
…29, r=antoyo GCC backend subtree sync r? ghost
…jorn3 Reflect current PR title names for subtree syncs in triagebot no-merges Noticed that the current PR title names for subtree syncs seems to have changed (or at least for some) and is now "Subtree sync" (or it's lower-cased variant). Let's update the triagebot config so the merge commit handler don't for those expected cases. - rust-lang#157533 (comment) - rust-lang#155978 (comment)
…jorn3 Reflect current PR title names for subtree syncs in triagebot no-merges Noticed that the current PR title names for subtree syncs seems to have changed (or at least for some) and is now "Subtree sync" (or it's lower-cased variant). Let's update the triagebot config so the merge commit handler don't for those expected cases. - rust-lang#157533 (comment) - rust-lang#155978 (comment)
…jorn3 Reflect current PR title names for subtree syncs in triagebot no-merges Noticed that the current PR title names for subtree syncs seems to have changed (or at least for some) and is now "Subtree sync" (or it's lower-cased variant). Let's update the triagebot config so the merge commit handler don't for those expected cases. - rust-lang#157533 (comment) - rust-lang#155978 (comment)
Rollup merge of #161367 - Urgau:triagebot-no-merges-upd, r=bjorn3 Reflect current PR title names for subtree syncs in triagebot no-merges Noticed that the current PR title names for subtree syncs seems to have changed (or at least for some) and is now "Subtree sync" (or it's lower-cased variant). Let's update the triagebot config so the merge commit handler don't for those expected cases. - #157533 (comment) - #155978 (comment)
Reflect current PR title names for subtree syncs in triagebot no-merges Noticed that the current PR title names for subtree syncs seems to have changed (or at least for some) and is now "Subtree sync" (or it's lower-cased variant). Let's update the triagebot config so the merge commit handler don't for those expected cases. - rust-lang/rust#157533 (comment) - rust-lang/rust#155978 (comment)
r? ghost