mirror of
https://github.com/rust-lang/rust.git
synced 2025-05-13 10:29:16 +00:00

Adds `#[rustc_force_inline]` which is similar to always inlining but reports an error if the inlining was not possible, and which always attempts to inline annotated items, regardless of optimisation levels. It can only be applied to free functions to guarantee that the MIR inliner will be able to resolve calls.
22 lines
412 B
Diff
22 lines
412 B
Diff
- // MIR for `caller` before ForceInline
|
|
+ // MIR for `caller` after ForceInline
|
|
|
|
fn caller() -> () {
|
|
let mut _0: ();
|
|
let _1: ();
|
|
+ scope 1 (inlined callee_forced) {
|
|
+ }
|
|
|
|
bb0: {
|
|
StorageLive(_1);
|
|
- _1 = callee_forced() -> [return: bb1, unwind continue];
|
|
- }
|
|
-
|
|
- bb1: {
|
|
StorageDead(_1);
|
|
_0 = const ();
|
|
return;
|
|
}
|
|
}
|
|
|