Skip to content

Commit ab73115

Browse files
committed
Auto merge of rust-lang#85810 - bjorn3:further_driver_cleanup, r=varkor
Driver improvements This PR contains a couple of cleanups for the driver and a few small improvements for the custom codegen backend interface. It also implements `--version` and `-Cpasses=list` support for custom codegen backends.
2 parents df47bce + dbdeafb commit ab73115

File tree

2 files changed

+6
-27
lines changed

2 files changed

+6
-27
lines changed

src/driver/aot.rs

-17
Original file line numberDiff line numberDiff line change
@@ -177,21 +177,6 @@ pub(crate) fn run_aot(
177177
metadata: EncodedMetadata,
178178
need_metadata_module: bool,
179179
) -> Box<(CodegenResults, FxHashMap<WorkProductId, WorkProduct>)> {
180-
use rustc_span::symbol::sym;
181-
182-
let crate_attrs = tcx.hir().attrs(rustc_hir::CRATE_HIR_ID);
183-
let subsystem = tcx.sess.first_attr_value_str_by_name(crate_attrs, sym::windows_subsystem);
184-
let windows_subsystem = subsystem.map(|subsystem| {
185-
if subsystem != sym::windows && subsystem != sym::console {
186-
tcx.sess.fatal(&format!(
187-
"invalid windows subsystem `{}`, only \
188-
`windows` and `console` are allowed",
189-
subsystem
190-
));
191-
}
192-
subsystem.to_string()
193-
});
194-
195180
let mut work_products = FxHashMap::default();
196181

197182
let cgus = if tcx.sess.opts.output_types.should_codegen() {
@@ -307,12 +292,10 @@ pub(crate) fn run_aot(
307292

308293
Box::new((
309294
CodegenResults {
310-
crate_name: tcx.crate_name(LOCAL_CRATE),
311295
modules,
312296
allocator_module,
313297
metadata_module,
314298
metadata,
315-
windows_subsystem,
316299
linker_info: LinkerInfo::new(tcx, crate::target_triple(tcx.sess).to_string()),
317300
crate_info: CrateInfo::new(tcx),
318301
},

src/lib.rs

+6-10
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ use rustc_codegen_ssa::traits::CodegenBackend;
2828
use rustc_codegen_ssa::CodegenResults;
2929
use rustc_errors::ErrorReported;
3030
use rustc_middle::dep_graph::{WorkProduct, WorkProductId};
31-
use rustc_middle::middle::cstore::{EncodedMetadata, MetadataLoader};
32-
use rustc_middle::ty::query::Providers;
31+
use rustc_middle::middle::cstore::EncodedMetadata;
3332
use rustc_session::config::OutputFilenames;
3433
use rustc_session::Session;
3534

@@ -164,17 +163,14 @@ impl CodegenBackend for CraneliftCodegenBackend {
164163
}
165164
}
166165

167-
fn metadata_loader(&self) -> Box<dyn MetadataLoader + Sync> {
168-
Box::new(rustc_codegen_ssa::back::metadata::DefaultMetadataLoader)
169-
}
170-
171-
fn provide(&self, _providers: &mut Providers) {}
172-
fn provide_extern(&self, _providers: &mut Providers) {}
173-
174166
fn target_features(&self, _sess: &Session) -> Vec<rustc_span::Symbol> {
175167
vec![]
176168
}
177169

170+
fn print_version(&self) {
171+
println!("Cranelift version: {}", cranelift_codegen::VERSION);
172+
}
173+
178174
fn codegen_crate(
179175
&self,
180176
tcx: TyCtxt<'_>,
@@ -222,7 +218,7 @@ impl CodegenBackend for CraneliftCodegenBackend {
222218
sess,
223219
&codegen_results,
224220
outputs,
225-
&codegen_results.crate_name.as_str(),
221+
&codegen_results.crate_info.local_crate_name.as_str(),
226222
);
227223

228224
Ok(())

0 commit comments

Comments
 (0)