about summary refs log tree commit diff
path: root/compiler/stable_mir/src/abi.rs
AgeCommit message (Collapse)AuthorLines
2025-07-14rename `stable_mir` to `rustc_public`, and `rustc_smir` to `rustc_public_bridge`Makai-493/+0
2025-07-06move `stable_mir` back to its own crate and move `rustc_internal` to ↵Makai-0/+493
the`stable_mir` crate As part of this reorganization, some traits need to be moved from `rustc_smir::context::traits` to `stable_mir::unstable::internal_cx`. These traits are specifically designed for `InternalCx` to clarify the behavior of different functions that share the same name. This move is necessary to avoid orphan rule violations.
2025-04-05let `rustc_smir` host `stable_mir` for refactoringMakai-456/+0
2025-02-20Remove `BackendRepr::Uninhabited`, replaced with an `uninhabited: bool` ↵Zachary S-5/+1
field in `LayoutData`. Also update comments that refered to BackendRepr::Uninhabited.
2025-01-16Add gpu-kernel calling conventionFlakebi-0/+2
The amdgpu-kernel calling convention was reverted in commit f6b21e90d1ec01081bc2619efb68af6788a63d65 due to inactivity in the amdgpu target. Introduce a `gpu-kernel` calling convention that translates to `ptx_kernel` or `amdgpu_kernel`, depending on the target that rust compiles for.
2024-12-18make no-variant types a dedicated Variants variantRalf Jung-1/+3
2024-12-18Variants::Single: do not use invalid VariantIdx for uninhabited enumsRalf Jung-0/+1
2024-09-22Reformat using the new identifier sorting from rustfmtMichael Goulet-1/+1
2024-09-21add `C-cmse-nonsecure-entry` ABIFolkert de Vries-0/+1
2024-09-02chore: Fix typos in 'compiler' (batch 3)Alexander Cyon-1/+1
2024-07-29Reformat `use` declarations.Nicholas Nethercote-7/+7
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-06-26add serde derive Serialize to stable_mirStephen Skeirik-17/+18
2024-05-08Use generic `NonZero`.Markus Reiter-2/+2
2024-03-13Fix StableMIR is_full computationCelina G. Val-1/+1
`WrappingRange::is_full` computation assumed that to be full the range couldn't wrap, which is not necessarily true. For example, a range of 1..=0 is a valid representation of a full wrapping range.
2024-03-01Add support to new float typesCelina G. Val-4/+24
2024-03-01Implement missing ABI structures in StableMIRCelina G. Val-4/+155
2024-01-30Remove the `abi_amdgpu_kernel` featureclubby789-1/+0
2023-12-19Fix c_variadic flag and add opaque info to PassModeCelina G. Val-9/+6
We should expand the information in PassMode later.
2023-12-18Add function ABI and type layout to StableMIRCelina G. Val-0/+286
This change introduces a new module to StableMIR named `abi` with information from `rustc_target::abi` and `rustc_abi`, that allow users to retrieve more low level information required to perform bit-precise analysis. The layout of a type can be retrieved via `Ty::layout`, and the instance ABI can be retrieved via `Instance::fn_abi()`. To properly handle errors while retrieve layout information, we had to implement a few layout related traits.