We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 6261869 commit cf0876fCopy full SHA for cf0876f
src/librustc_mir/transform/inline.rs
@@ -256,7 +256,16 @@ impl Inliner<'tcx> {
256
}
257
258
if self.use_simple_heuristic {
259
- return callee_body.basic_blocks().len() == 1 && callee_body.basic_blocks()[BasicBlock::from_u32(0)].statements.len() < 10;
+ use rustc::mir::StatementKind::*;
260
+
261
+ return callee_body.basic_blocks().len() == 1
262
+ && callee_body.basic_blocks()[BasicBlock::from_u32(0)]
263
+ .statements
264
+ .iter()
265
+ .filter(|stmt| !matches!(stmt.kind, StorageLive(_) | StorageDead(_)))
266
+ .take(5)
267
+ .count()
268
+ <= 4;
269
270
271
let mut threshold = if hinted { HINT_THRESHOLD } else { DEFAULT_THRESHOLD };
0 commit comments