extern crate rustc_index;
extern crate rustc_session;
extern crate rustc_span;
-extern crate rustc_symbol_mangling;
extern crate rustc_target;
// This prevents duplicating functions and statics that are already part of the host rustc process.
mod prelude {
pub(crate) use std::convert::{TryFrom, TryInto};
- pub(crate) use rustc_ast::ast::{FloatTy, IntTy, UintTy};
pub(crate) use rustc_span::Span;
pub(crate) use rustc_hir::def_id::{DefId, LOCAL_CRATE};
pub(crate) use rustc_middle::mir::{self, *};
pub(crate) use rustc_middle::ty::layout::{self, TyAndLayout};
pub(crate) use rustc_middle::ty::{
- self, FnSig, Instance, InstanceDef, ParamEnv, Ty, TyCtxt, TypeAndMut, TypeFoldable,
+ self, FloatTy, Instance, InstanceDef, IntTy, ParamEnv, Ty, TyCtxt, TypeAndMut,
+ TypeFoldable, UintTy,
};
pub(crate) use rustc_target::abi::{Abi, LayoutOf, Scalar, Size, VariantIdx};
};
let res = driver::codegen_crate(tcx, metadata, need_metadata_module, config);
- rustc_symbol_mangling::test::report_symbol_names(tcx);
-
res
}
) -> Result<(), ErrorReported> {
use rustc_codegen_ssa::back::link::link_binary;
- let _timer = sess.prof.generic_activity("link_crate");
-
- sess.time("linking", || {
- let target_cpu = crate::target_triple(sess).to_string();
- link_binary::<crate::archive::ArArchiveBuilder<'_>>(
- sess,
- &codegen_results,
- outputs,
- &codegen_results.crate_name.as_str(),
- &target_cpu,
- );
- });
+ let target_cpu = crate::target_triple(sess).to_string();
+ link_binary::<crate::archive::ArArchiveBuilder<'_>>(
+ sess,
+ &codegen_results,
+ outputs,
+ &codegen_results.crate_name.as_str(),
+ &target_cpu,
+ );
Ok(())
}
let flags = settings::Flags::new(flags_builder);
- let mut isa_builder = cranelift_codegen::isa::lookup(target_triple).unwrap();
+ let variant = if cfg!(feature = "oldbe") {
+ cranelift_codegen::isa::BackendVariant::Legacy
+ } else {
+ cranelift_codegen::isa::BackendVariant::MachInst
+ };
+ let mut isa_builder = cranelift_codegen::isa::lookup_variant(target_triple, variant).unwrap();
// Don't use "haswell", as it implies `has_lzcnt`.macOS CI is still at Ivy Bridge EP, so `lzcnt`
// is interpreted as `bsr`.
isa_builder.enable("nehalem").unwrap();