Skip to content

Commit ca82264

Browse files
committed
Auto merge of #85065 - Mark-Simulacrum:preds-no-alloc, r=jackh726
Avoid predecessors having Drop impls Should be a simple win - but let's make sure with perf.
2 parents 7a2f446 + 0367e24 commit ca82264

File tree

2 files changed

+5
-5
lines changed
  • compiler

2 files changed

+5
-5
lines changed

compiler/rustc_middle/src/mir/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@ impl<'tcx> Body<'tcx> {
461461
}
462462

463463
#[inline]
464-
pub fn predecessors(&self) -> impl std::ops::Deref<Target = Predecessors> + '_ {
464+
pub fn predecessors(&self) -> &Predecessors {
465465
self.predecessor_cache.compute(&self.basic_blocks)
466466
}
467467

@@ -2815,13 +2815,13 @@ impl<'a, 'b> graph::GraphSuccessors<'b> for Body<'a> {
28152815

28162816
impl graph::GraphPredecessors<'graph> for Body<'tcx> {
28172817
type Item = BasicBlock;
2818-
type Iter = smallvec::IntoIter<[BasicBlock; 4]>;
2818+
type Iter = std::iter::Copied<std::slice::Iter<'graph, BasicBlock>>;
28192819
}
28202820

28212821
impl graph::WithPredecessors for Body<'tcx> {
28222822
#[inline]
28232823
fn predecessors(&self, node: Self::Node) -> <Self as graph::GraphPredecessors<'_>>::Iter {
2824-
self.predecessors()[node].clone().into_iter()
2824+
self.predecessors()[node].iter().copied()
28252825
}
28262826
}
28272827

compiler/rustc_mir/src/transform/coverage/graph.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -269,13 +269,13 @@ impl graph::WithSuccessors for CoverageGraph {
269269

270270
impl graph::GraphPredecessors<'graph> for CoverageGraph {
271271
type Item = BasicCoverageBlock;
272-
type Iter = std::vec::IntoIter<BasicCoverageBlock>;
272+
type Iter = std::iter::Copied<std::slice::Iter<'graph, BasicCoverageBlock>>;
273273
}
274274

275275
impl graph::WithPredecessors for CoverageGraph {
276276
#[inline]
277277
fn predecessors(&self, node: Self::Node) -> <Self as graph::GraphPredecessors<'_>>::Iter {
278-
self.predecessors[node].clone().into_iter()
278+
self.predecessors[node].iter().copied()
279279
}
280280
}
281281

0 commit comments

Comments
 (0)