Update Cargo.lock
Also update for cranelift changes.
This commit is contained in:
34
src/lib.rs
34
src/lib.rs
@@ -80,6 +80,7 @@ mod prelude {
|
||||
pub use crate::syntax::ast::{FloatTy, IntTy, UintTy};
|
||||
pub use crate::syntax::source_map::DUMMY_SP;
|
||||
|
||||
pub use cranelift::codegen::isa::CallConv;
|
||||
pub use cranelift::codegen::ir::{
|
||||
condcodes::IntCC, function::Function, ExternalName, FuncRef, Inst, StackSlot,
|
||||
};
|
||||
@@ -178,16 +179,12 @@ impl CodegenBackend for CraneliftCodegenBackend {
|
||||
|
||||
let metadata = tcx.encode_metadata();
|
||||
|
||||
fn build_isa(tcx: TyCtxt) -> Box<isa::TargetIsa> {
|
||||
let mut flags_builder = settings::builder();
|
||||
flags_builder.enable("is_pic").unwrap();
|
||||
let flags = settings::Flags::new(flags_builder);
|
||||
cranelift::codegen::isa::lookup(tcx.sess.target.target.llvm_target.parse().unwrap())
|
||||
.unwrap()
|
||||
.finish(flags)
|
||||
}
|
||||
|
||||
let isa = build_isa(tcx);
|
||||
let mut flags_builder = settings::builder();
|
||||
flags_builder.enable("is_pic").unwrap();
|
||||
let flags = settings::Flags::new(flags_builder);
|
||||
let isa = cranelift::codegen::isa::lookup(tcx.sess.target.target.llvm_target.parse().unwrap())
|
||||
.unwrap()
|
||||
.finish(flags);
|
||||
|
||||
let mono_items =
|
||||
collector::collect_crate_mono_items(tcx, collector::MonoItemCollectionMode::Lazy).0;
|
||||
@@ -198,9 +195,9 @@ impl CodegenBackend for CraneliftCodegenBackend {
|
||||
|
||||
if std::env::var("SHOULD_RUN").is_ok() {
|
||||
let mut jit_module: Module<SimpleJITBackend> = Module::new(SimpleJITBuilder::new());
|
||||
assert_eq!(pointer_ty(tcx), jit_module.pointer_type());
|
||||
assert_eq!(pointer_ty(tcx), jit_module.target_config().pointer_type());
|
||||
|
||||
codegen_mono_items(tcx, &*isa, &mut jit_module, &mono_items);
|
||||
codegen_mono_items(tcx, &mut jit_module, &mono_items);
|
||||
|
||||
tcx.sess.abort_if_errors();
|
||||
println!("Compiled everything");
|
||||
@@ -208,10 +205,10 @@ impl CodegenBackend for CraneliftCodegenBackend {
|
||||
|
||||
let sig = Signature {
|
||||
params: vec![
|
||||
AbiParam::new(jit_module.pointer_type()),
|
||||
AbiParam::new(jit_module.pointer_type()),
|
||||
AbiParam::new(jit_module.target_config().pointer_type()),
|
||||
AbiParam::new(jit_module.target_config().pointer_type()),
|
||||
],
|
||||
returns: vec![AbiParam::new(jit_module.pointer_type() /*isize*/)],
|
||||
returns: vec![AbiParam::new(jit_module.target_config().pointer_type() /*isize*/)],
|
||||
call_conv: CallConv::SystemV,
|
||||
};
|
||||
let main_func_id = jit_module
|
||||
@@ -239,9 +236,9 @@ impl CodegenBackend for CraneliftCodegenBackend {
|
||||
)
|
||||
.unwrap(),
|
||||
);
|
||||
assert_eq!(pointer_ty(tcx), faerie_module.pointer_type());
|
||||
assert_eq!(pointer_ty(tcx), faerie_module.target_config().pointer_type());
|
||||
|
||||
codegen_mono_items(tcx, &*build_isa(tcx), &mut faerie_module, &mono_items);
|
||||
codegen_mono_items(tcx, &mut faerie_module, &mono_items);
|
||||
|
||||
tcx.sess.abort_if_errors();
|
||||
|
||||
@@ -344,7 +341,6 @@ impl CodegenBackend for CraneliftCodegenBackend {
|
||||
|
||||
fn codegen_mono_items<'a, 'tcx: 'a>(
|
||||
tcx: TyCtxt<'a, 'tcx, 'tcx>,
|
||||
isa: &isa::TargetIsa,
|
||||
module: &mut Module<impl Backend + 'static>,
|
||||
mono_items: &FxHashSet<MonoItem<'tcx>>,
|
||||
) {
|
||||
@@ -367,7 +363,7 @@ fn codegen_mono_items<'a, 'tcx: 'a>(
|
||||
|
||||
for mono_item in mono_items {
|
||||
let res = ::std::panic::catch_unwind(::std::panic::AssertUnwindSafe(|| {
|
||||
base::trans_mono_item(tcx, isa, module, &mut caches, &mut ccx, *mono_item);
|
||||
base::trans_mono_item(tcx, module, &mut caches, &mut ccx, *mono_item);
|
||||
}));
|
||||
|
||||
if let Err(err) = res {
|
||||
|
||||
Reference in New Issue
Block a user