Commit Graph

179 Commits

Author SHA1 Message Date
bjorn3
d502f8e652 [OPT] Avoid calling target_triple for every call to codegen 2019-12-17 16:34:48 +01:00
bjorn3
88277f983a Remove some workarounds for missing inst legalizations 2019-12-08 11:52:04 +01:00
bjorn3
177b0d2f57 Rustup to rustc 1.41.0-nightly (ded5ee001 2019-11-13) 2019-11-14 21:13:40 +01:00
bjorn3
5407b51aa7 Rustup to rustc 1.40.0-nightly (9e346646e 2019-11-08) 2019-11-09 11:14:18 +01:00
bjorn3
8536514308 Rustup to rustc 1.40.0-nightly (10a52c25c 2019-10-24) 2019-10-25 21:41:24 +02:00
bjorn3
f0c774e05d Rustup to rustc 1.40.0-nightly (237d54ff6 2019-10-15) 2019-10-16 18:43:52 +02:00
bjorn3
58a9b648e8 Update cranelift, faerie and target-lexicon 2019-10-03 18:55:01 +02:00
bjorn3
44792f1089 Rustup to rustc 1.40.0-nightly (084beb83e 2019-09-27) 2019-09-28 14:06:12 +02:00
bjorn3
c34ada7cca Fix foreign type handling 2019-09-14 17:53:36 +02:00
bjorn3
ce0be229d7 Use upstream cranelift 2019-09-08 19:18:17 +02:00
Atul Bhosale
f481a4b685
Format code using 'cargo fmt' 2019-08-31 22:58:09 +05:30
bjorn3
68dcfc1c78 Move pass mode handling to abi/pass_mode.rs 2019-08-30 11:58:52 +02:00
bjorn3
2a20cc0b94 Use anonymous lifetimes where possible 2019-08-18 16:52:07 +02:00
bjorn3
7c7a8e8367 Workaround for missing icmp{,_imm}.i128 legalizations
Fixes #667
2019-08-15 11:36:23 +02:00
bjorn3
6f23a053e4 Fix a panic on type size overflow 2019-08-13 19:40:48 +02:00
bjorn3
f93cd924ec Implement float -> small int cast
Also workaround small signed int eq/ne binop clif bug
2019-08-12 17:25:16 +02:00
bjorn3
e7a507863c Implement real saturating behaviour for the saturating_* intrinsics with unsigned ints 2019-08-09 12:35:51 +02:00
bjorn3
b806070a88 Fix simd_cast 2019-07-31 09:46:05 +02:00
bjorn3
88ad25f45e Implement 128bit shl and shr binops 2019-07-26 11:29:35 +02:00
bjorn3
3080c73f50 Remove unnecessary if statement 2019-07-26 11:28:28 +02:00
bjorn3
45de0336a5 Fix some more stuff 2019-07-26 11:28:28 +02:00
bjorn3
c814ee0d2a [WIP] 2019-07-26 11:28:04 +02:00
bjorn3
d629d97f25 Fix some things 2019-07-26 11:28:04 +02:00
bjorn3
de32ddad23 [WIP] Basic i128 support 2019-07-26 11:28:04 +02:00
bjorn3
4d406cdcad Rustup to rustc 1.37.0-nightly (0dc9e9c10 2019-06-15) 2019-06-16 11:13:49 +02:00
bjorn3
6d1bc088a7 Rustup to rustc 1.37.0-nightly (2887008e0 2019-06-12) 2019-06-13 20:44:40 +02:00
bjorn3
466ecad2f0 Move CValue and CPlace to separate file and remove duplicate scalar_to_clif_type 2019-06-11 15:43:22 +02:00
bjorn3
d6e07cfcc8 Encapsulate CValue and CPlace creation 2019-06-11 15:32:30 +02:00
bjorn3
b625e56488 Rustup to rustc 1.37.0-nightly (3ade426ed 2019-05-30) 2019-05-31 10:56:55 +02:00
bjorn3
5593bc8cd3 Update cranelift 2019-05-14 16:12:58 +02:00
bjorn3
2aeffa679a Rustup to rustc 1.36.0-nightly (cfdc84a00 2019-05-07) 2019-05-08 20:05:01 +02:00
bjorn3
788d8cec93 Rustup to rustc 1.35.0-nightly (52e885628 2019-03-15) 2019-03-16 10:54:02 +01:00
bjorn3
87424cb288 Misc changes 2019-03-11 20:45:59 +01:00
bjorn3
354eb0da9f Fix write_cvalue type assert for late bound regions in trait objects 2019-03-06 20:57:14 +01:00
bjorn3
2ce5387b7c Rename load_value_pair to load_scalar_pair and fix dynamic dispatch with arbitrary self types 2019-03-03 12:19:55 +01:00
bjorn3
f02490d960 Rustfmt 2019-02-21 15:06:09 +01:00
bjorn3
b05c457257 Use correct alignment for CValue::ByRef for a ZST 2019-02-13 14:32:30 +01:00
bjorn3
e1620402e0 Introduce CPlace::NoPlace for zst's 2019-02-04 19:58:29 +01:00
bjorn3
feec354d65 Introduce CPlace::Stack 2019-02-04 19:32:32 +01:00
bjorn3
3e24c1212f Refactor CPlace address handling 2019-02-04 19:32:29 +01:00
bjorn3
a12eef4d86 Use IndexSet and keep full source info in set_debug_loc 2019-01-26 11:59:57 +01:00
bjorn3
09c4569c87 Implement line debuginfo 2019-01-26 11:59:57 +01:00
bjorn3
8aee796013 Update Cargo.lock and use emit_small_memcpy 2019-01-15 20:35:49 +01:00
bjorn3
a15af1ccba Rename load_value to load_scalar and make it support all Abi::Scalar types 2019-01-02 13:39:02 +01:00
bjorn3
16e43c9d21 Fix unsize coercions and the size_of_val and min_align_of_val intrinsics for custom dst's 2018-12-29 15:36:17 +01:00
bjorn3
9882576497 Improve debug messages in generated clif files 2018-12-22 18:21:30 +01:00
bjorn3
6fa3140222 Introduce CodegenCx 2018-12-18 18:28:02 +01:00
bjorn3
4d0dba944c Some refactorings for codegen_mono_items 2018-12-12 16:01:34 +01:00
bjorn3
b649180def Rustup to rustc 1.32.0-nightly (21f268495 2018-12-02) 2018-12-03 18:00:09 +01:00
bjorn3
a8d52d13f4 Some small changes 2018-12-01 11:49:44 +01:00
bjorn3
95539518ec Rustfmt 2018-11-24 12:47:53 +01:00
bjorn3
830522af6d Implement BackendTypes for FunctionCx 2018-11-24 11:42:57 +01:00
bjorn3
06202c007c Fix some 2018 edition idioms 2018-11-17 18:23:52 +01:00
bjorn3
b2f7386f7e Fix fn(&T) -> for<'l> fn(&'l T) write 2018-11-17 11:55:49 +01:00
bjorn3
0fa5c0f4fa Rustup to rustc 1.32.0-nightly (9fefb6766 2018-11-13) 2018-11-14 14:31:42 +01:00
Dan Gohman
7b5f4894f1 Change "cton" to "clif". 2018-11-12 07:20:42 -08:00
bjorn3
29b4c34c54 Rustfmt 2018-11-07 13:32:02 +01:00
bjorn3
b73bda1c3f Fix warnings 2018-11-07 13:31:02 +01:00
bjorn3
648f491977 Enable feature gate extern_crate_item_prelude 2018-11-07 13:29:38 +01:00
bjorn3
438bee5fb1 Rustup to rustc 1.32.0-nightly (e6c5cf923 2018-11-04) 2018-11-05 18:03:47 +01:00
bjorn3
fc8a6c343a Update Cargo.lock
Also update for cranelift changes.
2018-11-03 13:14:28 +01:00
bjorn3
fe3a9660ea Bump cranelift 2018-10-25 17:36:29 +02:00
bjorn3
b5dffe9765 Rustfmt 2018-10-10 19:07:13 +02:00
bjorn3
39cfb1e51f Workaround for missing select.i8 encoding 2018-10-07 11:31:42 +02:00
bjorn3
ab57af4e6a Fix projection of sized field in unsized type 2018-10-06 11:21:18 +02:00
bjorn3
69fe4d6f92 Workaround some missing encodings in cranelift 2018-09-30 16:33:55 +02:00
bjorn3
742a795c78 Use FunctionBuilder::call_mem{cpy,move} 2018-09-26 15:42:07 +02:00
bjorn3
16e936b93f Rustfmt 2018-09-26 15:40:11 +02:00
bjorn3
a1b8e02a88 Rustup to rustc 1.30.0-nightly (cb6d2dfa8 2018-09-16) 2018-09-17 18:49:10 +02:00
bjorn3
470a310f2e Implement place_field for unsized places 2018-09-16 15:28:27 +02:00
bjorn3
19eb4194b2 Fix unsize coerce for structs containing PhantomData like Unique 2018-09-16 14:49:45 +02:00
bjorn3
73248114ea Implement unsize of adt's (cc #14) 2018-09-16 12:02:03 +02:00
bjorn3
6196146ac4 Implement trait objects (cc #14) 2018-09-08 18:00:06 +02:00
bjorn3
62a0203a5a Rustfmt 2018-09-08 17:24:52 +02:00
bjorn3
8adc744645 Implement Box rvalue 2018-09-04 19:04:25 +02:00
bjorn3
42066522fb Perform some optimizations 2018-09-02 13:36:45 +02:00
bjorn3
9878eea61c Implement indexing for slices 2018-08-30 20:22:35 +02:00
bjorn3
fa4a37759b Rvalue::Len 2018-08-30 20:22:25 +02:00
bjorn3
12282a8ebc Implement unsize array -> slice and trait object -> trait object 2018-08-30 20:21:58 +02:00
bjorn3
b5082f7da8 Support unsized types 2018-08-30 20:21:21 +02:00
bjorn3
6f58f94cdb Add Caches to FunctionCx 2018-08-26 17:14:12 +02:00
bjorn3
0d15d9e5dd Rustup to rustc 1.30.0-nightly (63d66494a 2018-08-23) 2018-08-24 14:51:02 +02:00
bjorn3
d87edae73b Add CValue variant ByValPair 2018-08-22 12:35:07 +02:00
bjorn3
65641b8872 Rustfmt 2018-08-22 12:31:45 +02:00
bjorn3
8cd9bf3162 Use *_imm in some places 2018-08-22 11:45:54 +02:00
bjorn3
954d1e7bf2 Don't hardcode usize being 64 bit (fixes #8) 2018-08-22 10:54:32 +02:00
bjorn3
8a1c86473c Remove CValue::Func 2018-08-19 10:50:39 +02:00
bjorn3
ca59e4405e Reduce verbosity of output 2018-08-15 16:17:59 +02:00
bjorn3
e6fb515406 Craneliftup 2018-08-15 12:36:13 +02:00
bjorn3
0f26781a86 Support simplejit and faerie at the same time 2018-08-14 20:58:24 +02:00
bjorn3
178aa32b0c Make FunctionCx generic over Backend 2018-08-14 20:31:16 +02:00
bjorn3
4b10e6e613 Workaround missing encoding for icmp.i8 2018-08-14 11:58:39 +02:00
bjorn3
1031c659e0 Refactoring of constant.rs in preparation for static codegen 2018-08-13 12:13:43 +02:00
bjorn3
48701d758d Crash on some less code and fix a bug in discriminant read 2018-08-09 15:08:54 +02:00
bjorn3
f4e622cedc Add basic ssa analyzer 2018-08-09 10:46:56 +02:00
bjorn3
21c52c70b3 Rustfmt 2018-08-08 12:45:34 +02:00
bjorn3
efd203aa0b Implement indexing for arrays 2018-08-08 12:22:16 +02:00
bjorn3
40176e03fd Fix some bugs 2018-08-08 10:26:25 +02:00
bjorn3
376ec8c258 Don't crash on checked binops (treated like unchecked ones atm) 2018-08-08 09:35:35 +02:00
bjorn3
f001808249 Run rustfmt 0.9.0-nightly (69ad879 2018-07-27) 2018-07-31 12:25:16 +02:00