rust/compiler/rustc_codegen_gcc/src
Matthias Krüger 644f06ec1f
Rollup merge of #141569 - workingjubilee:canonicalize-abi, r=bjorn3
Replace ad-hoc ABI "adjustments" with an `AbiMap` to `CanonAbi`

Our `conv_from_spec_abi`, `adjust_abi`, and `is_abi_supported` combine to give us a very confusing way of reasoning about what _actual_ calling convention we want to lower our code to and whether we want to compile the resulting code at all. Instead of leaving this code as a miniature adventure game in which someone tries to combine stateful mutations into a Rube Goldberg machine that will let them escape the maze and arrive at the promised land of codegen, we let `AbiMap` devour this complexity. Once you have an `AbiMap`, you can answer which `ExternAbi`s will lower to what `CanonAbi`s (and whether they will lower at all).

Removed:
- `conv_from_spec_abi` replaced by `AbiMap::canonize_abi`
- `adjust_abi` replaced by same
- `Conv::PreserveAll` as unused
- `Conv::Cold` as unused
- `enum Conv` replaced by `enum CanonAbi`

target-spec.json changes:
- If you have a target-spec.json then now your "entry-abi" key will be specified in terms of one of the `"{abi}"` strings Rust recognizes, e.g.
```json
    "entry-abi": "C",
    "entry-abi": "win64",
    "entry-abi": "aapcs",
```
2025-06-03 21:53:36 +02:00
..
back Merge commit '6ba33f5e1189a5ae58fb96ce3546e76b13d090f5' into subtree-update_cg_gcc_2025-05-14 2025-05-14 13:51:02 +02:00
intrinsic Remove type_test from IntrinsicCallBuilderMethods 2025-06-03 10:00:56 +00:00
abi.rs Rollup merge of #141569 - workingjubilee:canonicalize-abi, r=bjorn3 2025-06-03 21:53:36 +02:00
allocator.rs Remove implicit #[no_mangle] for #[rustc_std_internal_symbol] 2025-03-17 14:08:09 +00:00
asm.rs Rollup merge of #134232 - bjorn3:naked_asm_improvements, r=wesleywiser 2025-04-30 17:27:57 +02:00
attributes.rs Rollup merge of #140874 - mejrs:rads, r=WaffleLapkin 2025-05-19 13:24:54 +10:00
base.rs Make predefine methods take &mut self 2025-05-28 20:55:00 +00:00
builder.rs get rid of rustc_codegen_ssa::common::AtomicOrdering 2025-05-28 22:57:55 +02:00
callee.rs Remove rustc_attr_data_structures re-export from rustc_attr_parsing 2025-05-18 18:14:43 +02:00
common.rs Merge commit '4f83a4258deb99f3288a7122c0d5a78200931c61' into subtree-update_cg_gcc_2025-04-25 2025-04-25 10:44:19 -04:00
consts.rs Remove methods from StaticCodegenMethods that are not called in cg_ssa itself 2025-05-28 20:55:00 +00:00
context.rs Remove codegen_unit from MiscCodegenMethods 2025-05-28 20:55:00 +00:00
coverageinfo.rs Unbox and unwrap the contents of StatementKind::Coverage 2024-03-23 22:05:11 +11:00
debuginfo.rs Remove get_dbg_loc from DebugInfoBuilderMethods 2025-06-03 10:00:11 +00:00
declare.rs Merge commit '6ba33f5e1189a5ae58fb96ce3546e76b13d090f5' into subtree-update_cg_gcc_2025-05-14 2025-05-14 13:51:02 +02:00
errors.rs Merge commit '59a81c2ca1edc88ad3ac4b27a8e03977ffb8e73a' into subtree-update_cg_gcc_2025_01_12 2025-01-13 10:53:58 -05:00
gcc_util.rs Implement the internal feature cfg_target_has_reliable_f16_f128 2025-04-27 19:58:44 +00:00
int.rs cg_gcc: convert to CanonAbi 2025-06-03 10:04:19 -07:00
lib.rs Mark all optimize methods and the codegen method as safe 2025-05-28 20:55:00 +00:00
mono_item.rs Make predefine methods take &mut self 2025-05-28 20:55:00 +00:00
type_.rs Generalize BaseTypeCodegenMethods 2025-02-24 15:11:29 +00:00
type_of.rs Merge commit '4f83a4258deb99f3288a7122c0d5a78200931c61' into subtree-update_cg_gcc_2025-04-25 2025-04-25 10:44:19 -04:00