Skip to content

Commit df54d39

Browse files
committed
Move encode_metadata out of CrateStore.
1 parent 1149193 commit df54d39

File tree

9 files changed

+14
-21
lines changed

9 files changed

+14
-21
lines changed

compiler/rustc_codegen_cranelift/scripts/filter_profile.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
9696
stack = &stack[..index + REPORT_SYMBOL_NAMES.len()];
9797
}
9898

99-
const ENCODE_METADATA: &str = "rustc_middle::ty::context::TyCtxt::encode_metadata";
99+
const ENCODE_METADATA: &str = "rustc_metadata::encode_metadata";
100100
if let Some(index) = stack.find(ENCODE_METADATA) {
101101
stack = &stack[..index + ENCODE_METADATA.len()];
102102
}

compiler/rustc_codegen_cranelift/src/metadata.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,11 @@ use rustc_middle::middle::cstore::EncodedMetadata;
77
use rustc_middle::ty::TyCtxt;
88

99
// Adapted from https://github.com/rust-lang/rust/blob/da573206f87b5510de4b0ee1a9c044127e409bd3/src/librustc_codegen_llvm/base.rs#L47-L112
10-
pub(crate) fn new_metadata_object(tcx: TyCtxt<'_>, cgu_name: &str, metadata: &EncodedMetadata) -> Vec<u8> {
10+
pub(crate) fn new_metadata_object(
11+
tcx: TyCtxt<'_>,
12+
cgu_name: &str,
13+
metadata: &EncodedMetadata,
14+
) -> Vec<u8> {
1115
use snap::write::FrameEncoder;
1216
use std::io::Write;
1317

compiler/rustc_interface/src/passes.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ use rustc_hir::def_id::{StableCrateId, LOCAL_CRATE};
1616
use rustc_hir::Crate;
1717
use rustc_lint::LintStore;
1818
use rustc_metadata::creader::CStore;
19+
use rustc_metadata::encode_metadata;
1920
use rustc_middle::arena::Arena;
2021
use rustc_middle::dep_graph::DepGraph;
2122
use rustc_middle::middle;
@@ -1001,7 +1002,7 @@ fn encode_and_write_metadata(
10011002

10021003
let metadata = match metadata_kind {
10031004
MetadataKind::None => middle::cstore::EncodedMetadata::new(),
1004-
MetadataKind::Uncompressed | MetadataKind::Compressed => tcx.encode_metadata(),
1005+
MetadataKind::Uncompressed | MetadataKind::Compressed => encode_metadata(tcx),
10051006
};
10061007

10071008
let _prof_timer = tcx.sess.prof.generic_activity("write_crate_metadata");

compiler/rustc_metadata/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,5 @@ pub mod creader;
3030
pub mod dynamic_lib;
3131
pub mod locator;
3232

33+
pub use rmeta::encode_metadata;
3334
pub use rmeta::METADATA_HEADER;

compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use crate::creader::{CStore, LoadedMacro};
22
use crate::foreign_modules;
33
use crate::native_libs;
4-
use crate::rmeta::encoder;
54

65
use rustc_ast as ast;
76
use rustc_data_structures::stable_map::FxHashMap;
@@ -10,7 +9,7 @@ use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, CRATE_DEF_INDEX, LOCAL_CRATE}
109
use rustc_hir::definitions::{DefKey, DefPath, DefPathHash};
1110
use rustc_middle::hir::exports::Export;
1211
use rustc_middle::middle::cstore::ForeignModule;
13-
use rustc_middle::middle::cstore::{CrateSource, CrateStore, EncodedMetadata};
12+
use rustc_middle::middle::cstore::{CrateSource, CrateStore};
1413
use rustc_middle::middle::exported_symbols::ExportedSymbol;
1514
use rustc_middle::middle::stability::DeprecationEntry;
1615
use rustc_middle::ty::query::Providers;
@@ -511,8 +510,4 @@ impl CrateStore for CStore {
511510
fn expn_hash_to_expn_id(&self, cnum: CrateNum, index_guess: u32, hash: ExpnHash) -> ExpnId {
512511
self.get_crate_data(cnum).expn_hash_to_expn_id(index_guess, hash)
513512
}
514-
515-
fn encode_metadata(&self, tcx: TyCtxt<'_>) -> EncodedMetadata {
516-
encoder::encode_metadata(tcx)
517-
}
518513
}

compiler/rustc_metadata/src/rmeta/encoder.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2101,7 +2101,9 @@ fn prefetch_mir(tcx: TyCtxt<'_>) {
21012101
// will allow us to slice the metadata to the precise length that we just
21022102
// generated regardless of trailing bytes that end up in it.
21032103

2104-
pub(super) fn encode_metadata(tcx: TyCtxt<'_>) -> EncodedMetadata {
2104+
pub fn encode_metadata(tcx: TyCtxt<'_>) -> EncodedMetadata {
2105+
let _prof_timer = tcx.prof.verbose_generic_activity("generate_crate_metadata");
2106+
21052107
// Since encoding metadata is not in a query, and nothing is cached,
21062108
// there's no need to do dep-graph tracking for any of it.
21072109
tcx.dep_graph.assert_ignored();

compiler/rustc_metadata/src/rmeta/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ use std::num::NonZeroUsize;
3232
use decoder::DecodeContext;
3333
pub use decoder::{provide, provide_extern};
3434
crate use decoder::{CrateMetadata, CrateNumMap, MetadataBlob};
35+
pub use encoder::encode_metadata;
3536
use encoder::EncodeContext;
3637
use rustc_span::hygiene::SyntaxContextData;
3738

compiler/rustc_middle/src/middle/cstore.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
//! are *mostly* used as a part of that interface, but these should
33
//! probably get a better home if someone can find one.
44
5-
use crate::ty::TyCtxt;
6-
75
use rustc_ast as ast;
86
use rustc_data_structures::sync::{self, MetadataRef};
97
use rustc_hir::def_id::{CrateNum, DefId, StableCrateId, LOCAL_CRATE};
@@ -204,9 +202,6 @@ pub trait CrateStore: std::fmt::Debug {
204202
/// Fetch a DefId from a DefPathHash for a foreign crate.
205203
fn def_path_hash_to_def_id(&self, cnum: CrateNum, hash: DefPathHash) -> DefId;
206204
fn expn_hash_to_expn_id(&self, cnum: CrateNum, index_guess: u32, hash: ExpnHash) -> ExpnId;
207-
208-
// utility functions
209-
fn encode_metadata(&self, tcx: TyCtxt<'_>) -> EncodedMetadata;
210205
}
211206

212207
pub type CrateStoreDyn = dyn CrateStore + sync::Sync;

compiler/rustc_middle/src/ty/context.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ use crate::ich::{NodeIdHashingMode, StableHashingContext};
77
use crate::infer::canonical::{Canonical, CanonicalVarInfo, CanonicalVarInfos};
88
use crate::lint::{struct_lint_level, LintDiagnosticBuilder, LintLevelSource};
99
use crate::middle;
10-
use crate::middle::cstore::EncodedMetadata;
1110
use crate::middle::resolve_lifetime::{self, LifetimeScopeForPath, ObjectLifetimeDefault};
1211
use crate::middle::stability;
1312
use crate::mir::interpret::{self, AllocId, Allocation, ConstValue, Scalar};
@@ -1324,11 +1323,6 @@ impl<'tcx> TyCtxt<'tcx> {
13241323
)
13251324
}
13261325

1327-
pub fn encode_metadata(self) -> EncodedMetadata {
1328-
let _prof_timer = self.prof.verbose_generic_activity("generate_crate_metadata");
1329-
self.untracked_resolutions.cstore.encode_metadata(self)
1330-
}
1331-
13321326
/// Note that this is *untracked* and should only be used within the query
13331327
/// system if the result is otherwise tracked through queries
13341328
pub fn cstore_untracked(self) -> &'tcx ty::CrateStoreDyn {

0 commit comments

Comments
 (0)