Skip to content

Commit 271951b

Browse files
committed
Auto merge of #151881 - Zoxc:index_to_node_ptr, r=eholk
Pass `DepNode` by reference more places Pass `DepNode` by reference more places as it would typically need 3 registers.
2 parents 1e9be1b + 8869b7b commit 271951b

3 files changed

Lines changed: 16 additions & 16 deletions

File tree

compiler/rustc_query_system/src/dep_graph/graph.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -662,7 +662,7 @@ impl<D: Deps> DepGraphData<D> {
662662
}
663663

664664
#[inline]
665-
pub(crate) fn prev_node_of(&self, prev_index: SerializedDepNodeIndex) -> DepNode {
665+
pub(crate) fn prev_node_of(&self, prev_index: SerializedDepNodeIndex) -> &DepNode {
666666
self.previous.index_to_node(prev_index)
667667
}
668668

@@ -783,7 +783,7 @@ impl<D: Deps> DepGraphData<D> {
783783
#[cfg(debug_assertions)]
784784
self.current.record_edge(
785785
dep_node_index,
786-
self.previous.index_to_node(prev_index),
786+
*self.previous.index_to_node(prev_index),
787787
self.previous.fingerprint_by_index(prev_index),
788788
);
789789

@@ -918,7 +918,7 @@ impl<D: Deps> DepGraphData<D> {
918918
DepNodeColor::Unknown => {}
919919
}
920920

921-
let dep_dep_node = &get_dep_dep_node();
921+
let dep_dep_node = get_dep_dep_node();
922922

923923
// We don't know the state of this dependency. If it isn't
924924
// an eval_always node, let's try to mark it green recursively.
@@ -989,7 +989,7 @@ impl<D: Deps> DepGraphData<D> {
989989
// We never try to mark eval_always nodes as green
990990
debug_assert!(!qcx.dep_context().is_eval_always(dep_node.kind));
991991

992-
debug_assert_eq!(self.previous.index_to_node(prev_dep_node_index), *dep_node);
992+
debug_assert_eq!(self.previous.index_to_node(prev_dep_node_index), dep_node);
993993

994994
let prev_deps = self.previous.edge_targets_from(prev_dep_node_index);
995995

@@ -1450,7 +1450,7 @@ fn panic_on_forbidden_read<D: Deps>(data: &DepGraphData<D>, dep_node_index: DepN
14501450
// previous session and has been marked green
14511451
for prev_index in data.colors.values.indices() {
14521452
if data.colors.current(prev_index) == Some(dep_node_index) {
1453-
dep_node = Some(data.previous.index_to_node(prev_index));
1453+
dep_node = Some(*data.previous.index_to_node(prev_index));
14541454
break;
14551455
}
14561456
}

compiler/rustc_query_system/src/dep_graph/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,9 @@ pub trait DepContext: Copy {
8383
}
8484

8585
/// Load data from the on-disk cache.
86-
fn try_load_from_on_disk_cache(self, dep_node: DepNode) {
86+
fn try_load_from_on_disk_cache(self, dep_node: &DepNode) {
8787
if let Some(try_load_fn) = self.dep_kind_vtable(dep_node.kind).try_load_from_on_disk_cache {
88-
try_load_fn(self, dep_node)
88+
try_load_fn(self, *dep_node)
8989
}
9090
}
9191

compiler/rustc_query_system/src/dep_graph/serialized.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ impl SerializedDepGraph {
133133
}
134134

135135
#[inline]
136-
pub fn index_to_node(&self, dep_node_index: SerializedDepNodeIndex) -> DepNode {
137-
self.nodes[dep_node_index]
136+
pub fn index_to_node(&self, dep_node_index: SerializedDepNodeIndex) -> &DepNode {
137+
&self.nodes[dep_node_index]
138138
}
139139

140140
#[inline]
@@ -346,7 +346,7 @@ impl<D: Deps> SerializedNodeHeader<D> {
346346

347347
#[inline]
348348
fn new(
349-
node: DepNode,
349+
node: &DepNode,
350350
index: DepNodeIndex,
351351
fingerprint: Fingerprint,
352352
edge_max_index: u32,
@@ -379,7 +379,7 @@ impl<D: Deps> SerializedNodeHeader<D> {
379379
{
380380
let res = Self { bytes, _marker: PhantomData };
381381
assert_eq!(fingerprint, res.fingerprint());
382-
assert_eq!(node, res.node());
382+
assert_eq!(*node, res.node());
383383
if let Some(len) = res.len() {
384384
assert_eq!(edge_count, len as usize);
385385
}
@@ -452,7 +452,7 @@ struct NodeInfo {
452452

453453
impl NodeInfo {
454454
fn encode<D: Deps>(&self, e: &mut MemEncoder, index: DepNodeIndex) {
455-
let NodeInfo { node, fingerprint, ref edges } = *self;
455+
let NodeInfo { ref node, fingerprint, ref edges } = *self;
456456
let header = SerializedNodeHeader::<D>::new(
457457
node,
458458
index,
@@ -482,7 +482,7 @@ impl NodeInfo {
482482
#[inline]
483483
fn encode_promoted<D: Deps>(
484484
e: &mut MemEncoder,
485-
node: DepNode,
485+
node: &DepNode,
486486
index: DepNodeIndex,
487487
fingerprint: Fingerprint,
488488
prev_index: SerializedDepNodeIndex,
@@ -604,7 +604,7 @@ impl<D: Deps> EncoderState<D> {
604604
#[inline]
605605
fn record(
606606
&self,
607-
node: DepNode,
607+
node: &DepNode,
608608
index: DepNodeIndex,
609609
edge_count: usize,
610610
edges: impl FnOnce(&Self) -> Vec<DepNodeIndex>,
@@ -622,7 +622,7 @@ impl<D: Deps> EncoderState<D> {
622622
outline(move || {
623623
// Do not ICE when a query is called from within `with_query`.
624624
if let Some(record_graph) = &mut record_graph.try_lock() {
625-
record_graph.push(index, node, &edges);
625+
record_graph.push(index, *node, &edges);
626626
}
627627
});
628628
}
@@ -661,7 +661,7 @@ impl<D: Deps> EncoderState<D> {
661661
node.encode::<D>(&mut local.encoder, index);
662662
self.flush_mem_encoder(&mut *local);
663663
self.record(
664-
node.node,
664+
&node.node,
665665
index,
666666
node.edges.len(),
667667
|_| node.edges[..].to_vec(),

0 commit comments

Comments
 (0)