about summary refs log tree commit diff
path: root/compiler/rustc_codegen_ssa/src/traits/intrinsic.rs
AgeCommit message (Collapse)AuthorLines
2025-07-11compiler: comment on some call-related codegen fn in cg_ssaJubilee Young-1/+7
Partially documents the situation due to LLVM CFI.
2025-06-03Remove type_test from IntrinsicCallBuilderMethodsbjorn3-2/+0
It is only used within cg_llvm.
2025-05-26Remove usage of FnAbi in codegen_intrinsic_callbjorn3-3/+1
2025-05-26Pass PlaceRef rather than Bx::Value to codegen_intrinsic_callbjorn3-1/+2
2024-11-03compiler: Directly use rustc_abi in codegenJubilee Young-1/+1
2024-09-19replace some deprecated functionsLuv-Ray-2/+2
2024-09-17Rename `{ArgAbi,IntrinsicCall}Methods`.Nicholas Nethercote-1/+1
They both are part of `BuilderMethods`, and so should have `Builder` in their name like all the other traits in `BuilderMethods`.
2024-07-29Reformat `use` declarations.Nicholas Nethercote-2/+3
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-02-12Teach llvm backend how to fall back to default bodiesOli Scherer-1/+3
2022-09-27rustc_typeck to rustc_hir_analysislcnr-1/+1
2022-06-14Add llvm.type.checked.load intrinsicflip1995-0/+8
Add the intrinsic declare {i8*, i1} @llvm.type.checked.load(i8* %ptr, i32 %offset, metadata %type) This is used in the VFE optimization when lowering loading functions from vtables to LLVM IR. The `metadata` is used to map the function to all vtables this function could belong to. This ensures that functions from vtables that might be used somewhere won't get removed.
2021-11-14Remove workaround for the forward progress handling in LLVMAndreas Jonson-4/+0
2021-10-25Add LLVM CFI support to the Rust compilerRamon de C Valle-0/+2
This commit adds LLVM Control Flow Integrity (CFI) support to the Rust compiler. It initially provides forward-edge control flow protection for Rust-compiled code only by aggregating function pointers in groups identified by their number of arguments. Forward-edge control flow protection for C or C++ and Rust -compiled code "mixed binaries" (i.e., for when C or C++ and Rust -compiled code share the same virtual address space) will be provided in later work as part of this project by defining and using compatible type identifiers (see Type metadata in the design document in the tracking issue #89653). LLVM CFI can be enabled with -Zsanitizer=cfi and requires LTO (i.e., -Clto).
2021-03-10Remove the -Zinsert-sideeffectSimonas Kazlauskas-3/+4
This removes all of the code we had in place to work-around LLVM's handling of forward progress. From this removal excluded is a workaround where we'd insert a `sideeffect` into clearly infinite loops such as `loop {}`. This code remains conditionally effective when the LLVM version is earlier than 12.0, which fixed the forward progress related miscompilations at their root.
2020-10-15Prevent miscompilation in trivial loop {}Mark Rousskov-1/+3
Ideally, we would want to handle a broader set of cases to fully fix the underlying bug here. That is currently relatively expensive at compile and runtime, so we don't do that for now.
2020-09-20Correct file path after some restructures in compilerLzu Tao-3/+3
2020-08-30mv compiler to compiler/mark-0/+30