Commit Graph

345 Commits

Author SHA1 Message Date
bjorn3
e1fc9a56d9 Update dependencies 2018-11-09 18:03:47 +01:00
bjorn3
7d602513b1 Rustup to rustc 1.32.0-nightly (653da4fd0 2018-11-08) 2018-11-09 17:54:28 +01:00
bjorn3
d0a3f99214 Introduce link module 2018-11-07 14:04:44 +01:00
bjorn3
0b76af2095 Remove should_codegen 2018-11-07 13:35:10 +01: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
4e4cad8a20 Allocator shim 2018-11-05 18:29:15 +01:00
bjorn3
f19f8e4b49 Use tcx.collect_and_partition_mono_items 2018-11-05 18:27:10 +01:00
bjorn3
d67fd16982 Use cg_utils::symbol_export::provide{,_extern} 2018-11-05 18:13:58 +01:00
bjorn3
438bee5fb1 Rustup to rustc 1.32.0-nightly (e6c5cf923 2018-11-04) 2018-11-05 18:03:47 +01:00
bjorn3
4f7f65ce55 Rustup to rustc 1.32.0-nightly (04fdb44f5 2018-11-03) 2018-11-04 15:29:01 +01:00
bjorn3
c080c0bfec Misc changes 2018-11-03 15:04:27 +01:00
bjorn3
fc8a6c343a Update Cargo.lock
Also update for cranelift changes.
2018-11-03 13:14:28 +01:00
bjorn3
23e0b0bd9c Rustup to rustc 1.32.0-nightly (8b096314a 2018-11-02) 2018-11-03 12:49:55 +01:00
bjorn3
58f076cf38 Print pass mode for locals in clif 2018-11-02 19:50:30 +01:00
bjorn3
cf71df0da4 Rustup to rustc 1.31.0-nightly (d586d5d2f 2018-10-29) 2018-10-30 17:58:42 +01:00
bjorn3
172e705b27 Rustup to rustc 1.31.0-nightly (cae6efc37 2018-10-27) 2018-10-28 18:23:03 +01:00
bjorn3
52ab6583dc Better clif file writing 2018-10-27 18:23:37 +02:00
bjorn3
fe3a9660ea Bump cranelift 2018-10-25 17:36:29 +02:00
bjorn3
ab9a0b7724 Change name of metadata file to rust.metadata.bin to match cg_llvm 2018-10-25 14:59:02 +02:00
bjorn3
75baefebbb Enable codegen by default 2018-10-23 10:57:09 +02:00
bjorn3
35d4d22e5c Rustup to rustc 1.31.0-nightly (424a749a0 2018-10-21) 2018-10-22 11:06:09 +02:00
bjorn3
397c6843d0 Rustup to rustc 1.31.0-nightly (155510e37 2018-10-20) and fix test 2018-10-21 16:32:19 +02:00
bjorn3
a139f73f77 Move maybe_create_entry_wrapper to main_shim.rs 2018-10-20 18:41:26 +02:00
bjorn3
3f574e9f7b Use ranlib instead of ar x 2018-10-20 15:19:07 +02:00
bjorn3
42b6d734bf Rustup to rustc 1.31.0-nightly (46880f41b 2018-10-15) 2018-10-16 14:16:37 +02:00
bjorn3
086f3567ea Rustup to rustc 1.31.0-nightly (77af31408 2018-10-11) 2018-10-12 19:23:24 +02:00
bjorn3
0195181363 Fix some warnings 2018-10-10 19:08:52 +02:00
bjorn3
b5dffe9765 Rustfmt 2018-10-10 19:07:13 +02:00
bjorn3
4177e804e9 Some more changes 2018-10-10 19:04:20 +02:00
bjorn3
738b320d67 Rustup to rustc 1.31.0-nightly (96cafc53c 2018-10-09) 2018-10-10 16:38:47 +02:00
bjorn3
39cfb1e51f Workaround for missing select.i8 encoding 2018-10-07 11:31:42 +02:00
bjorn3
0fa547ac98 Use absolute compile time paths for some log files 2018-10-06 14:48:34 +02:00
bjorn3
f4e544894a Implement Rvalue::Len for arrays 2018-10-06 13:50:31 +02:00
bjorn3
ab57af4e6a Fix projection of sized field in unsized type 2018-10-06 11:21:18 +02:00
bjorn3
f16947dfb4 Implement intrinsic write_bytes 2018-10-06 10:43:01 +02:00
bjorn3
f8e2ce6b4b Implement a lot of atomic intrinsics 2018-10-06 10:24:09 +02:00
bjorn3
42b80c21af Improve dsl 2018-10-05 20:11:47 +02:00
bjorn3
a1bb16fdc3 Use dsl for declaring intrinsic codegen 2018-10-05 19:55:06 +02:00
bjorn3
cd4bcb7a2c Rustup to rustc 1.31.0-nightly (8c4ad4e9e 2018-10-04) 2018-10-05 19:24:39 +02:00
bjorn3
a94dd977bf Move intrinsics codegen to intrinsics.rs 2018-10-03 18:21:52 +02:00
bjorn3
6289d212fb Implement atomic_singlethreadfence_* 2018-10-03 18:12:15 +02:00
bjorn3
1694b07b87 Implement intrinsic init 2018-10-02 18:41:16 +02:00
bjorn3
fce5fa5231 Rustup to rustc 1.31.0-nightly (de3d640f5 2018-10-01), fix a atomic bug and implement intrinsic bitreverse 2018-10-02 18:12:03 +02:00
bjorn3
69fe4d6f92 Workaround some missing encodings in cranelift 2018-09-30 16:33:55 +02:00
bjorn3
ed996759f1 Rustup 2018-09-28 18:21:11 +02:00
bjorn3
0c42107ea6 EntityMap got renamed to SecondaryMap 2018-09-27 19:19:16 +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
889150a4f9 Implement binop eq and ne for fat ptr's 2018-09-25 18:35:13 +02:00
bjorn3
b11cb572dc Use cranelift_frontend::Switch for switchInt 2018-09-25 18:04:30 +02:00
bjorn3
a99e458022 Rustup to rustc 1.30.0-nightly (f49f6e73a 2018-09-23) 2018-09-24 19:31:46 +02:00
bjorn3
5b721a2940 Rustup to rustc 1.30.0-nightly (4591a245c 2018-09-22) 2018-09-23 10:16:26 +02:00
bjorn3
a83e7766b7 Update Cargo.lock 2018-09-22 13:55:23 +02:00
bjorn3
46581af155 Replace an unimplemented! with a bug! 2018-09-18 18:46:17 +02:00
bjorn3
a1b8e02a88 Rustup to rustc 1.30.0-nightly (cb6d2dfa8 2018-09-16) 2018-09-17 18:49:10 +02:00
bjorn3
39fbea8c1b Better error message for unsupported "C" abi args 2018-09-16 18:46:19 +02:00
bjorn3
7c510c0661 Remove some code 2018-09-16 17:48:13 +02:00
bjorn3
7168563649 Implement function reference in static 2018-09-16 16:21:07 +02:00
bjorn3
d5bfb76216 Implement some atomic intrinsics in a non atomic version 2018-09-16 16:01:26 +02:00
bjorn3
470a310f2e Implement place_field for unsized places 2018-09-16 15:28:27 +02:00
bjorn3
086ff67cff Implement returning ! for "C" abi 2018-09-16 14:59:49 +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
1f1746e2d3 Implement intrinsic min_align_of_val 2018-09-15 11:14:27 +02:00
bjorn3
6e87a4f16d Rustup to rustc 1.30.0-nightly (2ab3eba30 2018-09-14) 2018-09-15 10:44:23 +02:00
bjorn3
0fb7c4d1b9 Implement some intrinsics and fix a codegen error
* intrinsic size_of_val for sized types
* intrinsic needs_drop
* incorrect codegen for UnOp::Not for bools
2018-09-14 19:49:33 +02:00
bjorn3
59518987ed Implement drop support (fixes #11) 2018-09-12 14:40:06 +02:00
bjorn3
29c8fcfc24 Rustup to rustc 1.30.0-nightly (2f1547c0a 2018-09-11) 2018-09-12 14:16:28 +02:00
bjorn3
e7ca9a186b Fix jit 2018-09-09 14:45:23 +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
252607ae41 Don't use write_mir_pretty for non local mir 2018-09-08 17:23:03 +02:00
bjorn3
9f489bc8de Don't require abi of defined function to be rust or rust-call 2018-09-08 14:44:32 +02:00
bjorn3
9ede386054 Don't call seal_all_blocks and finalize twice 2018-09-08 14:18:08 +02:00
bjorn3
feee8b2445 Misc changes to abi.rs 2018-09-08 11:20:15 +02:00
bjorn3
871792d9ab Implement intrinsic size_of_val for slices 2018-09-06 18:45:29 +02:00
bjorn3
4c0a2ff59b Don't print Storage{Live,Dead} as comment in debug clif 2018-09-06 17:39:01 +02:00
bjorn3
d549d0f180 Update Cargo.lock 2018-09-05 19:43:42 +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
0cfe31403a Rustup to rustc 1.30.0-nightly (28bcffead 2018-09-01) 2018-09-02 10:57:29 +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
8111eee37a Rustup to rustc 1.30.0-nightly (02cb8f2a4 2018-08-29) 2018-08-30 20:14:56 +02:00
bjorn3
6f58f94cdb Add Caches to FunctionCx 2018-08-26 17:14:12 +02:00
bjorn3
42887dfdd9 Remove CodegenCx 2018-08-26 16:58:52 +02:00
bjorn3
e66f012d79 Remove stabilized feature gate 2018-08-26 16:28:00 +02:00
bjorn3
9dbc727b72 Rustfmt 2018-08-24 14:54:22 +02:00
bjorn3
0d15d9e5dd Rustup to rustc 1.30.0-nightly (63d66494a 2018-08-23) 2018-08-24 14:51:02 +02:00
bjorn3
d348f5b473 Codegen all instance types 2018-08-22 18:53:57 +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
72f48776a1 Support cross-compiling (untested) 2018-08-18 16:36:47 +02:00
bjorn3
69834cafd3 Use instance_mir instead of optimized_mir 2018-08-18 16:09:49 +02:00
bjorn3
2ba1f35baf Be honest about data mutability 2018-08-18 10:46:29 +02:00
bjorn3
871be2a469 Codegen entry wrapper (fixes #13) 2018-08-17 13:21:03 +02:00
bjorn3
7a3ba963e1 Rustfmt 2018-08-17 13:01:56 +02:00
bjorn3
f27dfc3ac9 Make CodegenCx generic over Backend 2018-08-17 12:57:41 +02:00
bjorn3
eb89830f21 Rustfmt 2018-08-16 20:09:26 +02:00
bjorn3
65fa8eddbb Fix trait method calls 2018-08-15 16:33:19 +02:00
bjorn3
ca59e4405e Reduce verbosity of output 2018-08-15 16:17:59 +02:00
bjorn3
a3760040b2 Disable some prinln!'s 2018-08-15 15:28:08 +02:00
bjorn3
7d3f2ba49f Change build.sh 2018-08-15 15:24:05 +02:00
bjorn3
7f2a8f8a66 Disable some example which don't compile yet 2018-08-15 14:49:36 +02:00
bjorn3
7f2a887c83 Use either SimpleJIT or faerie, but not both 2018-08-15 14:45:32 +02:00
bjorn3
bd7031afb1 Fix codegen of SwitchInt 2018-08-15 14:36:45 +02:00
bjorn3
e6fb515406 Craneliftup 2018-08-15 12:36:13 +02:00
bjorn3
b752c88fef Put metadata loader in its own file 2018-08-15 12:07:08 +02:00
bjorn3
5ea8bae114 Rustup to rustc 1.30.0-nightly (67390c0c3 2018-08-14) 2018-08-15 11:34:35 +02:00
bjorn3
a8ca0f02fc Support emitting object files (fixes #5) 2018-08-14 22:01:18 +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
f67ad9c120 Refactoring 2018-08-14 19:42:22 +02:00
bjorn3
0978710ffd Codegen minicore 2018-08-14 12:13:07 +02:00
bjorn3
4b10e6e613 Workaround missing encoding for icmp.i8 2018-08-14 11:58:39 +02:00
bjorn3
257a607e3e Change build.sh a bit 2018-08-13 19:40:40 +02:00
bjorn3
b9d7164eff Fix and test checked binops 2018-08-13 19:14:55 +02:00
bjorn3
4ee2a864b5 Rustfmt 2018-08-13 19:03:30 +02:00
bjorn3
6d1f0068d1 Implement nested and mutable statics (fixes #9) 2018-08-13 19:02:42 +02:00
bjorn3
7f62fedeb8 Implement basic statics (#9) 2018-08-13 18:35:30 +02:00
bjorn3
c7ed1ce033 Rustfmt 2018-08-13 18:04:39 +02:00
bjorn3
d331758f6d Add helper function to pop an element from a HashSet 2018-08-13 17:22:24 +02:00
bjorn3
4615359e86 Define data for all allocs during finalization 2018-08-13 16:58:07 +02:00
bjorn3
b707da40a5 Change todo map to set of alloc id's in constant.rs 2018-08-13 16:26:30 +02:00
bjorn3
49d24a6333 Remove elements from the todo list the correct way in constant.rs 2018-08-13 16:03:01 +02:00
bjorn3
c40788c1b2 Simplify define_global_for_alloc_id 2018-08-13 15:34:18 +02:00
bjorn3
1031c659e0 Refactoring of constant.rs in preparation for static codegen 2018-08-13 12:13:43 +02:00
bjorn3
23b4db227a Implement basic incremental compilation 2018-08-12 20:49:43 +02:00
bjorn3
5859b9b65d Rustfmt 2018-08-12 18:56:05 +02:00
bjorn3
8e2394874e Group drop glue instances in unimpl log 2018-08-11 15:36:08 +02:00
bjorn3
57ba6411c2 Measure translation speed 2018-08-11 15:21:26 +02:00
bjorn3
46ebc2bc5c Make the hello world example runnable 2018-08-11 15:05:57 +02:00
bjorn3
af69258971 Use tcx.symbol_name 2018-08-11 14:30:05 +02:00
bjorn3
39cc4fd3fc Don't translate intrinsic func operand 2018-08-11 14:24:05 +02:00
bjorn3
d5a5aec022 Use get_function_name_and_sig for calling function from backend 2018-08-11 14:10:00 +02:00
bjorn3
50375db36c Rustfmt 2018-08-11 13:59:34 +02:00
bjorn3
2e0d6d49bf Deduplicate function name generation 2018-08-11 13:59:08 +02:00
bjorn3
419cbcbe2f Refactor abi.rs to make it easier to change the abi 2018-08-11 12:37:50 +02:00
bjorn3
dc323d7ffa Don't call finalize_all and then finalize_function 2018-08-11 12:07:42 +02:00
bjorn3
b391524b4f Move return codegen to abi.rs 2018-08-11 11:01:48 +02:00
bjorn3
4df09f7325 Pass CPlace to codegen_intrinsic_call 2018-08-11 10:58:31 +02:00
bjorn3
973f191136 Move more code to codegen_intrinsic_call 2018-08-10 19:43:01 +02:00
bjorn3
29ab744f62 A small change 2018-08-10 19:31:02 +02:00