602 Commits

Author SHA1 Message Date
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
bjorn3
75db7cc49d Remove logfile support from unimpl.rs
I haven't used it in months
2019-10-06 17:36:15 +02:00
bjorn3
6129921529 More 128bit support
* UnOp::Neg
* ctpop
* bitreverse

Also replaces `if let Some(64u128) = ...` with `if ... = Some(u64u128)`
to be able to compile cg_clif using cg_clif, as cranelift_frontend::Switch
doesn't support i128 yet.
2019-10-06 15:51:43 +02:00
bjorn3
b5d29a8c58 Rustup to rustc 1.40.0-nightly (787005079 2019-10-04) 2019-10-06 10:41:15 +02:00
bjorn3
b0de88b741 Use DisplayFunctionAnnotations::default() 2019-10-04 14:57:07 +02:00
bjorn3
721fe3b43c Predefine all local functions before codegen
Otherwise only calls to previously codegened functions use relative
addressing instead of the GOT

Fixes #692
2019-10-04 14:45:53 +02:00
bjorn3
58a9b648e8 Update cranelift, faerie and target-lexicon 2019-10-03 18:55:01 +02:00
bjorn3
0f938f68a5 Rustup to rustc 1.40.0-nightly (2daa404e9 2019-10-02) 2019-10-03 17:22:01 +02:00
bjorn3
1b6706c924 Call cg_ssa::base::provide_both in provide{,_extern} 2019-09-28 17:01:17 +02:00
bjorn3
0db605040e Use CallConv::triple_default instead of hard coding SystemV
Fixes #718
2019-09-28 17:00:27 +02:00
bjorn3
44792f1089 Rustup to rustc 1.40.0-nightly (084beb83e 2019-09-27) 2019-09-28 14:06:12 +02:00
bjorn3
1e5cea09d5 Add profile code around metadata object generation
cc #719
2019-09-22 16:47:45 +02:00
bjorn3
a1bf96f630 Wrap linker invocation in time() 2019-09-22 16:21:00 +02:00
bjorn3
dbeca50901 Misc cleanup 2019-09-22 16:05:22 +02:00
bjorn3
3a7aa6c0fa Reduce time required to build from scratch in dev mode
* Disable wasm reading of object
* Use tempfile bundled with rustc
* Don't optimize and don't generate debuginfo for build scripts and some
  build deps

Before: 354s (5m 45s)
After: 207s (3m 27s)
2019-09-21 14:27:45 +02:00
bjorn3
fdfb1eda2c Rustup to rustc 1.39.0-nightly (97e58c0d3 2019-09-20) 2019-09-21 11:30:29 +02:00
bjorn3
77d33c1707 Fix trans_ptr_binop for fn() 2019-09-15 18:35:56 +02:00
bjorn3
c34ada7cca Fix foreign type handling 2019-09-14 17:53:36 +02:00
bjorn3
b267995f39 Cleanup 2019-09-14 15:15:06 +02:00
bjorn3
8f12b87542 Implement shl and shr overflow checks
cc #6
2019-09-14 12:13:23 +02:00
bjorn3
6ea4cbdf1b Rustup to rustc 1.39.0-nightly (a6946a817 2019-09-13) 2019-09-14 11:21:18 +02:00
bjorn3
af4009d8c8 Rustup to rustc 1.39.0-nightly (eb48d6bde 2019-09-12) 2019-09-13 21:03:26 +02:00
bjorn3
ce0be229d7 Use upstream cranelift 2019-09-08 19:18:17 +02:00
bjorn3
629f7ab4a3 Don't perform neg overflow checks when they are disabled 2019-09-07 11:00:49 +02:00
bjorn3
bfb49e7d19 Rustup to rustc 1.39.0-nightly (6e19f3f38 2019-09-06) 2019-09-07 10:51:00 +02:00
bjorn3
a2e905f22d Correctly align offset for dst field projections
Fixes #681
2019-09-02 20:09:37 +02:00
bjorn3
cd0e862282 Update ar
Fixes #672
2019-09-01 11:17:01 +02:00
Atul Bhosale
f481a4b685
Format code using 'cargo fmt' 2019-08-31 22:58:09 +05:30
bjorn3
15b9834d7d Don't copy ByRef passed types to local stack slot when not necessary
Eg when the local is immutable **and** the type is freeze.

This makes the simple raytracer runtime benchmark 1% faster than cg_llvm
without optimizations. Before it was 2% slower.

cc #691
cc #684
2019-08-30 15:42:07 +02:00
bjorn3
76d2e085db Improve abi ir comments a bit 2019-08-30 15:07:15 +02:00
bjorn3
d731c4a6a7 Move ir comments generation to abi/comments.rs
Also list locals stored in ssa vars in the comments
2019-08-30 14:21:24 +02:00
bjorn3
deeae2fce4 Small change 2019-08-30 12:42:24 +02:00
bjorn3
16593d264c Move return handling to abi/returning.rs 2019-08-30 12:30:57 +02:00
bjorn3
68dcfc1c78 Move pass mode handling to abi/pass_mode.rs 2019-08-30 11:58:52 +02:00
bjorn3
6427eaf68b Move abi.rs to abi/mod.rs 2019-08-30 11:51:33 +02:00
bjorn3
556d708f20 Rustup to rustc 1.39.0-nightly (72b2abfd6 2019-08-29) 2019-08-30 11:42:42 +02:00