rust/compiler/rustc_codegen_llvm/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 Mark all optimize methods and the codegen method as safe 2025-05-28 20:55:00 +00:00
builder add custom enzyme markers to target methods 2025-04-25 11:09:52 +05:30
coverageinfo Remove methods from StaticCodegenMethods that are not called in cg_ssa itself 2025-05-28 20:55:00 +00:00
debuginfo Remove get_dbg_loc from DebugInfoBuilderMethods 2025-06-03 10:00:11 +00:00
llvm get rid of rustc_codegen_ssa::common::AtomicOrdering 2025-05-28 22:57:55 +02: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 Flatten control-flow in inline_asm_call after verification 2025-05-11 14:38:42 +10:00
attributes.rs don't depend on rustc_attr_parsing if rustc_data_structures will do 2025-05-09 23:16:55 +02:00
base.rs Make predefine methods take &mut self 2025-05-28 20:55:00 +00:00
builder.rs Remove type_test from IntrinsicCallBuilderMethods 2025-06-03 10:00:56 +00:00
callee.rs don't depend on rustc_attr_parsing if rustc_data_structures will do 2025-05-09 23:16:55 +02:00
common.rs Rename OperandBundleOwned to OperandBundleBox 2025-05-11 21:21:38 +10: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 Auto merge of #139385 - joboet:threadlocal_address, r=nikic 2025-05-30 15:39:56 +00:00
declare.rs Make allocator shim creation mostly use safe code 2025-02-24 15:11:29 +00:00
errors.rs KCFI: Add KCFI arity indicator support 2025-04-05 04:05:04 +00:00
intrinsic.rs Remove type_test from IntrinsicCallBuilderMethods 2025-06-03 10:00:56 +00:00
lib.rs Mark all optimize methods and the codegen method as safe 2025-05-28 20:55:00 +00:00
llvm_util.rs Added apxf target feature support, under flag apx_target_feature 2025-05-06 23:28:27 +05:30
mono_item.rs Make predefine methods take &mut self 2025-05-28 20:55:00 +00:00
type_.rs remove noinline attribute and add alwaysinline after AD pass 2025-04-28 21:10:32 +05:30
type_of.rs rename BackendRepr::Vector → SimdVector 2025-02-28 17:17:45 +01:00
va_arg.rs implement va_arg for powerpc 2025-06-01 00:51:01 +02:00
value.rs Add warn(unreachable_pub) to rustc_codegen_llvm. 2024-08-16 08:46:57 +10:00