637 Commits

Author SHA1 Message Date
bjorn3
172522c2e7 [OPT] Push fx.monomorphize to the callers of fx.layout_of
This prevents some repeated monomorphizations
2019-12-17 16:58:34 +01:00
bjorn3
d502f8e652 [OPT] Avoid calling target_triple for every call to codegen 2019-12-17 16:34:48 +01:00
bjorn3
ad1f885002 [OPT] Don't call .to_string() on MonoItem's 2019-12-17 16:34:48 +01:00
bjorn3
3e50a831e5 Optimize line_program_add_file 2019-12-16 13:23:41 +01:00
bjorn3
beda104a2b Disable local debuginfo for now 2019-12-16 12:12:51 +01:00
bjorn3
74ca55d230 Rustup 2019-12-16 12:11:14 +01:00
bjorn3
7a4fe12d31 Rustup to rustc 1.41.0-nightly (e87a205c2 2019-11-27) 2019-12-16 12:07:31 +01:00
bjorn3
b86eb2e8ba Some optimizations
* Only format global _comments when debug_assertions are enabled
* Only call build_value_labels_ranges in base.rs when debug_assertions are enabled

Benchmark #1: CHANNEL='pre' ../cargo.sh build
  Time (mean ± σ):     17.657 s ±  1.050 s    [User: 31.871 s, System: 3.014 s]
  Range (min … max):   16.907 s … 20.394 s    10 runs

Benchmark #2: ../cargo.sh build
  Time (mean ± σ):     16.640 s ±  0.255 s    [User: 30.238 s, System: 2.965 s]
  Range (min … max):   16.413 s … 17.186 s    10 runs

  Warning: Statistical outliers were detected. Consider re-running this benchmark on a quiet PC without any interferences from other programs. It might help to use the '--warmup' or '--prepare' options.

Summary
  '../cargo.sh build' ran
    1.06 ± 0.07 times faster than 'CHANNEL='pre' ../cargo.sh build'
2019-12-16 12:07:31 +01:00
bjorn3
08217d1bde Emit DW_TAG_structure_type including fields for structs 2019-12-16 12:07:12 +01:00
bjorn3
ab7ad2caeb Use set_val_label before every def_var 2019-12-16 12:07:12 +01:00
bjorn3
0244d19ebb Fix translate_loc for ValueLoc::Stack 2019-12-16 12:07:12 +01:00
bjorn3
8edbbc45f7 Implement local reading for locals on stack 2019-12-16 12:04:34 +01:00
bjorn3
d8e9148c2e Rustfmt debuginfo 2019-12-16 12:04:34 +01:00
bjorn3
c5c6ce87d2 Small change 2019-12-16 12:04:34 +01:00
bjorn3
beda7870fb Split debuginfo/line_info.rs from debuginfo/mod.rs 2019-12-16 12:04:34 +01:00
bjorn3
ed758912d3 Split debuginfo/emit.rs part out of debuginfo/mod.rs 2019-12-16 12:04:34 +01:00
bjorn3
d07fe816af Move debuginfo.rs to debuginfo/mod.rs 2019-12-16 12:04:34 +01:00
bjorn3
62c3ca28e1 Extract local definition from FunctionDebugContext::define 2019-12-16 12:04:34 +01:00
bjorn3
50f7110cb6 Fix local value reading
LLDB doesn't understand base address entries
2019-12-16 12:04:34 +01:00
bjorn3
3fed880057 [WIP] Set local DW_AT_location 2019-12-16 12:04:34 +01:00
bjorn3
21f0dfd014 Monomorphize locals 2019-12-16 12:04:34 +01:00
bjorn3
a962835685 [WIP] debuginfo: Add types for locals 2019-12-16 12:04:34 +01:00
bjorn3
c0aedfef96 [WIP] debuginfo for locals 2019-12-16 12:04:34 +01:00
bjorn3
e1613a69d4 Rustup to rustc 1.41.0-nightly (a605441e0 2019-12-15) 2019-12-16 11:33:57 +01:00
bjorn3
88277f983a Remove some workarounds for missing inst legalizations 2019-12-08 11:52:04 +01:00
bjorn3
c6086a8fd7 Rustup to rustc 1.41.0-nightly (6d77e45f0 2019-12-04) 2019-12-05 21:00:57 +01:00
bjorn3
f0bb30f8a1 Rustup to rustc 1.41.0-nightly (25d8a9494 2019-11-29) 2019-12-01 12:54:57 +01:00
bjorn3
c3df8b185b Rustup to rustc 1.41.0-nightly (0c987c5c0 2019-11-23) 2019-11-24 16:30:15 +01:00
bjorn3
53e0833232 Implement log10f* intrinsics 2019-11-24 15:30:28 +01:00
bjorn3
4a8b0ca274 Correctly align returned addr for to_addr on NoPlace 2019-11-24 14:56:51 +01:00
bjorn3
cdab96d05c Rustup to rustc 1.41.0-nightly (53712f863 2019-11-21) 2019-11-22 15:56:49 +01:00
bjorn3
0219f218db Remove FIXME 2019-11-16 16:54:47 +01:00
bjorn3
b0bcb23eb4 Fix signed cast to 128bit integer 2019-11-16 16:44:26 +01:00
bjorn3
0c026853f5 Rustup to rustc 1.41.0-nightly (82cf3a448 2019-11-14) 2019-11-15 20:47:22 +01:00
bjorn3
177b0d2f57 Rustup to rustc 1.41.0-nightly (ded5ee001 2019-11-13) 2019-11-14 21:13:40 +01:00
bjorn3
c0ec688daf Rustup to rustc 1.40.0-nightly (3fc30d884 2019-11-10) 2019-11-11 20:34:42 +01:00
bjorn3
5407b51aa7 Rustup to rustc 1.40.0-nightly (9e346646e 2019-11-08) 2019-11-09 11:14:18 +01:00
bjorn3
0cad01f239 Rustup to rustc 1.40.0-nightly (aa4e57ca8 2019-10-31) 2019-11-01 20:22:59 +01:00
bjorn3
40178f6d3c Changes for gimli-rs/object#133 2019-10-25 22:01:31 +02:00
bjorn3
8536514308 Rustup to rustc 1.40.0-nightly (10a52c25c 2019-10-24) 2019-10-25 21:41:24 +02:00
bjorn3
dda5ea883a Fix debuginfo for machO
This only fixes it when using object::write as backend, and not when using faerie.

There were two problems:

* object::write doesn't replace .debug_info with __debug_info, unlike faerie
* machO requires section relative relocations, and not symbol relative
  relocations. When using symbol relative relocations, the linker
  interprets the relocations as section relative. Thus writing the wrong
  values to the debug sections.

Fixes #303
2019-10-19 15:37:07 +02:00
bjorn3
4d7f70318a Fix metadata symbol scope
It should be exported from the generated dylib
2019-10-19 11:08:16 +02:00
bjorn3
bb5cefe838 Test object::write backend on travis 2019-10-19 10:56:35 +02:00
bjorn3
ecd9c4f2e3 FIx review comments 2019-10-19 10:52:56 +02:00
bjorn3
0471ed2776 Add support for object::write 2019-10-18 18:31:38 +02:00
bjorn3
5873127ec2 Make debuginfo writing backend agnostic 2019-10-18 18:31:38 +02:00
bjorn3
f9ff604d96 Make dylib metadata write backend agnostic 2019-10-18 18:31:38 +02:00
bjorn3
8243a370d2 Rustup to rustc 1.40.0-nightly (fa0f7d008 2019-10-17) 2019-10-18 18:31:26 +02:00
bjorn3
f0c774e05d Rustup to rustc 1.40.0-nightly (237d54ff6 2019-10-15) 2019-10-16 18:43:52 +02:00
bjorn3
82fde5b622 Remove bitflags dependency 2019-10-06 17:52:23 +02:00