Update Cargo.lock

Also update for cranelift changes.
This commit is contained in:
bjorn3
2018-11-03 13:14:28 +01:00
parent 23e0b0bd9c
commit fc8a6c343a
9 changed files with 123 additions and 113 deletions

View File

@@ -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 {