]> git.lizzy.rs Git - rust.git/commitdiff
Update Cranelift
authorbjorn3 <bjorn3@users.noreply.github.com>
Fri, 5 Jun 2020 10:40:33 +0000 (12:40 +0200)
committerbjorn3 <bjorn3@users.noreply.github.com>
Fri, 5 Jun 2020 10:40:33 +0000 (12:40 +0200)
Cargo.lock
Cargo.toml
src/debuginfo/mod.rs

index 63689e95620b5f54f32d1ae598dd592f49adc4f6..52c0d62ebd947e527000c52ddd83ca76a89d7261 100644 (file)
@@ -44,16 +44,16 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 
 [[package]]
 name = "cranelift-bforest"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "cranelift-entity",
 ]
 
 [[package]]
 name = "cranelift-codegen"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "byteorder",
  "cranelift-bforest",
@@ -70,8 +70,8 @@ dependencies = [
 
 [[package]]
 name = "cranelift-codegen-meta"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "cranelift-codegen-shared",
  "cranelift-entity",
@@ -79,18 +79,18 @@ dependencies = [
 
 [[package]]
 name = "cranelift-codegen-shared"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 
 [[package]]
 name = "cranelift-entity"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 
 [[package]]
 name = "cranelift-frontend"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "cranelift-codegen",
  "log",
@@ -100,8 +100,8 @@ dependencies = [
 
 [[package]]
 name = "cranelift-module"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "anyhow",
  "cranelift-codegen",
@@ -112,8 +112,8 @@ dependencies = [
 
 [[package]]
 name = "cranelift-native"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "cranelift-codegen",
  "raw-cpuid",
@@ -122,8 +122,8 @@ dependencies = [
 
 [[package]]
 name = "cranelift-object"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "cranelift-codegen",
  "cranelift-module",
@@ -133,8 +133,8 @@ dependencies = [
 
 [[package]]
 name = "cranelift-simplejit"
-version = "0.63.0"
-source = "git+https://github.com/bytecodealliance/wasmtime/#51f9ac2150bd880dc7b92952ba92e72ea3ab60b7"
+version = "0.64.0"
+source = "git+https://github.com/bytecodealliance/wasmtime/#00abfcd943fdef8af5c8b2afed09e7ecef512b02"
 dependencies = [
  "cranelift-codegen",
  "cranelift-module",
@@ -184,11 +184,10 @@ checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
 
 [[package]]
 name = "gimli"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81dd6190aad0f05ddbbf3245c54ed14ca4aa6dd32f22312b70d8f168c3e3e633"
+checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
 dependencies = [
- "byteorder",
  "indexmap",
 ]
 
@@ -227,9 +226,9 @@ dependencies = [
 
 [[package]]
 name = "mach"
-version = "0.2.3"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
 dependencies = [
  "libc",
 ]
@@ -277,9 +276,9 @@ dependencies = [
 
 [[package]]
 name = "regalloc"
-version = "0.0.24"
+version = "0.0.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5842bece8a4b1690ffa6d9d959081c1d5d851ee4337a36c0a121fafe8c16add2"
+checksum = "cca5b48c9db66c5ba084e4660b4c0cfe8b551a96074bc04b7c11de86ad0bf1f9"
 dependencies = [
  "log",
  "rustc-hash",
@@ -288,9 +287,9 @@ dependencies = [
 
 [[package]]
 name = "region"
-version = "2.1.2"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "448e868c6e4cfddfa49b6a72c95906c04e8547465e9536575b95c70a4044f856"
+checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0"
 dependencies = [
  "bitflags",
  "libc",
index e9e6008f6cf38e10ce62406fdf8ce981c13e4e9f..2c8de8a107866361b635d56c160ade7e8aa156c0 100644 (file)
@@ -26,7 +26,7 @@ default-features = false
 features = ["read", "std", "write"] # We don't need WASM support
 
 [dependencies.gimli]
-version = "0.20.0"
+version = "0.21.0"
 default-features = false
 features = ["write"] # We don't need read support
 
index d13067bb3fff4c94f5c4c9a97721d92139eea54a..e48694cb8b95b0177c9af3069dcdcaf1594c6acf 100644 (file)
@@ -9,8 +9,8 @@
 use cranelift_codegen::ValueLocRange;
 
 use gimli::write::{
-    self, Address, AttributeValue, DwarfUnit, Expression, LineProgram,
-    LineString, Location, LocationList, Range, RangeList, UnitEntryId, Writer,
+    Address, AttributeValue, DwarfUnit, Expression, LineProgram,
+    LineString, Location, LocationList, Range, RangeList, UnitEntryId,
 };
 use gimli::{Encoding, Format, LineEncoding, RunTimeEndian, X86_64};
 
@@ -187,7 +187,7 @@ fn dwarf_ty(&mut self, ty: Ty<'tcx>) -> UnitEntryId {
                 let type_entry = self.dwarf.unit.get_mut(type_id);
 
                 //type_entry.set(gimli::DW_AT_mutable, AttributeValue::Flag(mutbl == rustc_hir::Mutability::Mut));
-                type_entry.set(gimli::DW_AT_type, AttributeValue::ThisUnitEntryRef(pointee));
+                type_entry.set(gimli::DW_AT_type, AttributeValue::UnitRef(pointee));
 
                 type_id
             }
@@ -213,7 +213,7 @@ fn dwarf_ty(&mut self, ty: Ty<'tcx>) -> UnitEntryId {
 
                     field_entry.set(gimli::DW_AT_name, AttributeValue::String(field_def.ident.as_str().to_string().into_bytes()));
                     field_entry.set(gimli::DW_AT_data_member_location, AttributeValue::Udata(field_offset.bytes()));
-                    field_entry.set(gimli::DW_AT_type, AttributeValue::ThisUnitEntryRef(field_type));
+                    field_entry.set(gimli::DW_AT_type, AttributeValue::UnitRef(field_type));
                 }
 
                 type_id
@@ -291,7 +291,7 @@ fn define_local(&mut self, name: String, ty: Ty<'tcx>) -> UnitEntryId {
         let var_entry = self.debug_context.dwarf.unit.get_mut(var_id);
 
         var_entry.set(gimli::DW_AT_name, AttributeValue::String(name.into_bytes()));
-        var_entry.set(gimli::DW_AT_type, AttributeValue::ThisUnitEntryRef(dw_ty));
+        var_entry.set(gimli::DW_AT_type, AttributeValue::UnitRef(dw_ty));
 
         var_id
     }
@@ -341,15 +341,13 @@ pub(crate) fn define(
             let name = format!("{}{}", base_name, i);
 
             let dw_ty = self.debug_context.dwarf_ty_for_clif_ty(param.value_type);
-            let loc = Expression(
-                translate_loc(isa, context.func.locations[val], &context.func.stack_slots).unwrap(),
-            );
+            let loc = translate_loc(isa, context.func.locations[val], &context.func.stack_slots).unwrap();
 
             let arg_id = self.debug_context.dwarf.unit.add(self.entry_id, gimli::DW_TAG_formal_parameter);
             let var_entry = self.debug_context.dwarf.unit.get_mut(arg_id);
 
             var_entry.set(gimli::DW_AT_name, AttributeValue::String(name.into_bytes()));
-            var_entry.set(gimli::DW_AT_type, AttributeValue::ThisUnitEntryRef(dw_ty));
+            var_entry.set(gimli::DW_AT_type, AttributeValue::UnitRef(dw_ty));
             var_entry.set(gimli::DW_AT_location, AttributeValue::Exprloc(loc));
         }
 
@@ -413,9 +411,7 @@ fn place_location<'a, 'tcx>(
                                 symbol: func_debug_ctx.symbol,
                                 addend: i64::from(value_loc_range.end),
                             },
-                            data: Expression(
-                                translate_loc(isa, value_loc_range.loc, &context.func.stack_slots).unwrap(),
-                            ),
+                            data: translate_loc(isa, value_loc_range.loc, &context.func.stack_slots).unwrap(),
                         })
                         .collect(),
                 );
@@ -425,40 +421,37 @@ fn place_location<'a, 'tcx>(
             } else {
                 // FIXME set value labels for unused locals
 
-                AttributeValue::Exprloc(Expression(vec![]))
+                AttributeValue::Exprloc(Expression::new())
             }
         }
         CPlaceInner::Addr(_, _) => {
             // FIXME implement this (used by arguments and returns)
 
-            AttributeValue::Exprloc(Expression(vec![]))
+            AttributeValue::Exprloc(Expression::new())
 
             // For PointerBase::Stack:
-            //AttributeValue::Exprloc(Expression(translate_loc(ValueLoc::Stack(*stack_slot), &context.func.stack_slots).unwrap()))
+            //AttributeValue::Exprloc(translate_loc(ValueLoc::Stack(*stack_slot), &context.func.stack_slots).unwrap())
         }
     }
 }
 
 // Adapted from https://github.com/CraneStation/wasmtime/blob/5a1845b4caf7a5dba8eda1fef05213a532ed4259/crates/debug/src/transform/expression.rs#L59-L137
-fn translate_loc(isa: &dyn TargetIsa, loc: ValueLoc, stack_slots: &StackSlots) -> Option<Vec<u8>> {
+fn translate_loc(isa: &dyn TargetIsa, loc: ValueLoc, stack_slots: &StackSlots) -> Option<Expression> {
     match loc {
         ValueLoc::Reg(reg) => {
             let machine_reg = isa.map_dwarf_register(reg).unwrap();
-            assert!(machine_reg <= 32); // FIXME
-            Some(vec![gimli::constants::DW_OP_reg0.0 + machine_reg as u8])
+            let mut expr = Expression::new();
+            expr.op_reg(gimli::Register(machine_reg));
+            Some(expr)
         }
         ValueLoc::Stack(ss) => {
             if let Some(ss_offset) = stack_slots[ss].offset {
-                let endian = gimli::RunTimeEndian::Little;
-                let mut writer = write::EndianVec::new(endian);
-                writer
-                    .write_u8(gimli::constants::DW_OP_breg0.0 + X86_64::RBP.0 as u8)
-                    .expect("bp wr");
-                writer.write_sleb128(ss_offset as i64 + 16).expect("ss wr");
-                let buf = writer.into_vec();
-                return Some(buf);
+                let mut expr = Expression::new();
+                expr.op_breg(X86_64::RBP, ss_offset as i64 + 16);
+                Some(expr)
+            } else {
+                None
             }
-            None
         }
         _ => None,
     }