forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Auto merge of rust-lang#127113 - scottmcm:retune-inlining-again, r=<try>
Avoid MIR bloat in inlining try-job: test-various In rust-lang#126578 we ended up with more binary size increases than expected. This change attempts to avoid inlining large things into small things, to avoid that kind of increase, in cases when top-down inlining will still be able to do that inlining later. r? ghost
- Loading branch information
Showing
18 changed files
with
385 additions
and
845 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 22 additions & 0 deletions
22
...ir-opt/inline/inline_more_in_non_inline.marked_inline_direct.Inline.after.panic-abort.mir
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// MIR for `marked_inline_direct` after Inline | ||
|
||
fn marked_inline_direct(_1: i32) -> () { | ||
debug x => _1; | ||
let mut _0: (); | ||
let _2: (); | ||
let mut _3: i32; | ||
|
||
bb0: { | ||
StorageLive(_2); | ||
StorageLive(_3); | ||
_3 = _1; | ||
_2 = call_twice(move _3) -> [return: bb1, unwind unreachable]; | ||
} | ||
|
||
bb1: { | ||
StorageDead(_3); | ||
StorageDead(_2); | ||
_0 = const (); | ||
return; | ||
} | ||
} |
22 changes: 22 additions & 0 deletions
22
...r-opt/inline/inline_more_in_non_inline.marked_inline_direct.Inline.after.panic-unwind.mir
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// MIR for `marked_inline_direct` after Inline | ||
|
||
fn marked_inline_direct(_1: i32) -> () { | ||
debug x => _1; | ||
let mut _0: (); | ||
let _2: (); | ||
let mut _3: i32; | ||
|
||
bb0: { | ||
StorageLive(_2); | ||
StorageLive(_3); | ||
_3 = _1; | ||
_2 = call_twice(move _3) -> [return: bb1, unwind continue]; | ||
} | ||
|
||
bb1: { | ||
StorageDead(_3); | ||
StorageDead(_2); | ||
_0 = const (); | ||
return; | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...-opt/inline/inline_more_in_non_inline.marked_inline_indirect.Inline.after.panic-abort.mir
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
// MIR for `marked_inline_indirect` after Inline | ||
|
||
fn marked_inline_indirect(_1: i32) -> () { | ||
debug x => _1; | ||
let mut _0: (); | ||
let _2: (); | ||
let mut _3: i32; | ||
scope 1 (inlined marked_inline_direct) { | ||
let _4: (); | ||
} | ||
|
||
bb0: { | ||
StorageLive(_2); | ||
StorageLive(_3); | ||
_3 = _1; | ||
StorageLive(_4); | ||
_4 = call_twice(move _3) -> [return: bb1, unwind unreachable]; | ||
} | ||
|
||
bb1: { | ||
StorageDead(_4); | ||
StorageDead(_3); | ||
StorageDead(_2); | ||
_0 = const (); | ||
return; | ||
} | ||
} |
27 changes: 27 additions & 0 deletions
27
...opt/inline/inline_more_in_non_inline.marked_inline_indirect.Inline.after.panic-unwind.mir
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
// MIR for `marked_inline_indirect` after Inline | ||
|
||
fn marked_inline_indirect(_1: i32) -> () { | ||
debug x => _1; | ||
let mut _0: (); | ||
let _2: (); | ||
let mut _3: i32; | ||
scope 1 (inlined marked_inline_direct) { | ||
let _4: (); | ||
} | ||
|
||
bb0: { | ||
StorageLive(_2); | ||
StorageLive(_3); | ||
_3 = _1; | ||
StorageLive(_4); | ||
_4 = call_twice(move _3) -> [return: bb1, unwind continue]; | ||
} | ||
|
||
bb1: { | ||
StorageDead(_4); | ||
StorageDead(_3); | ||
StorageDead(_2); | ||
_0 = const (); | ||
return; | ||
} | ||
} |
34 changes: 34 additions & 0 deletions
34
...-opt/inline/inline_more_in_non_inline.monomorphic_not_inline.Inline.after.panic-abort.mir
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
// MIR for `monomorphic_not_inline` after Inline | ||
|
||
fn monomorphic_not_inline(_1: i32) -> () { | ||
debug x => _1; | ||
let mut _0: (); | ||
let _2: (); | ||
let mut _3: i32; | ||
scope 1 (inlined call_twice) { | ||
let _4: (); | ||
let _5: (); | ||
} | ||
|
||
bb0: { | ||
StorageLive(_2); | ||
StorageLive(_3); | ||
_3 = _1; | ||
StorageLive(_4); | ||
StorageLive(_5); | ||
_4 = other_thing(_3) -> [return: bb2, unwind unreachable]; | ||
} | ||
|
||
bb1: { | ||
StorageDead(_5); | ||
StorageDead(_4); | ||
StorageDead(_3); | ||
StorageDead(_2); | ||
_0 = const (); | ||
return; | ||
} | ||
|
||
bb2: { | ||
_5 = other_thing(move _3) -> [return: bb1, unwind unreachable]; | ||
} | ||
} |
34 changes: 34 additions & 0 deletions
34
...opt/inline/inline_more_in_non_inline.monomorphic_not_inline.Inline.after.panic-unwind.mir
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
// MIR for `monomorphic_not_inline` after Inline | ||
|
||
fn monomorphic_not_inline(_1: i32) -> () { | ||
debug x => _1; | ||
let mut _0: (); | ||
let _2: (); | ||
let mut _3: i32; | ||
scope 1 (inlined call_twice) { | ||
let _4: (); | ||
let _5: (); | ||
} | ||
|
||
bb0: { | ||
StorageLive(_2); | ||
StorageLive(_3); | ||
_3 = _1; | ||
StorageLive(_4); | ||
StorageLive(_5); | ||
_4 = other_thing(_3) -> [return: bb2, unwind continue]; | ||
} | ||
|
||
bb1: { | ||
StorageDead(_5); | ||
StorageDead(_4); | ||
StorageDead(_3); | ||
StorageDead(_2); | ||
_0 = const (); | ||
return; | ||
} | ||
|
||
bb2: { | ||
_5 = other_thing(move _3) -> [return: bb1, unwind continue]; | ||
} | ||
} |
Oops, something went wrong.