Commit Graph

209 Commits

Author SHA1 Message Date
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
bjorn3
5ebcea23e4 Extract codegen_intrinsic_call 2018-08-10 19:20:13 +02:00
bjorn3
742abd011b Implement intrinsic arith_offset 2018-08-09 15:56:24 +02:00
bjorn3
e1ac09a3f0 Implement bool -> int cast 2018-08-09 15:44:01 +02:00
bjorn3
4c312faf90 brz <-> brnz 2018-08-09 15:36:02 +02:00
bjorn3
a45f0ee6e3 Add a log for unimplemented stuff 2018-08-09 15:30:26 +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
e9422fd4d4 Implement Rvalue::Aggregate(AggregateKind::Array, ...) 2018-08-09 11:42:35 +02:00
bjorn3
2fd0d52834 Rustfmt 2018-08-09 11:25:14 +02:00
bjorn3
566803f288 Implement raw ptr -> usize, fn ptr -> usize, usize -> raw ptr casts 2018-08-09 11:23:04 +02:00
bjorn3
9a2b1d4ac3 Implement float -> float and int -> float casts 2018-08-09 11:16:46 +02:00
bjorn3
6c86274943 Implement raw ptr -> usize cast 2018-08-09 11:07:10 +02:00
bjorn3
f4e622cedc Add basic ssa analyzer 2018-08-09 10:46:56 +02:00
bjorn3
5b85e0fec8 Rustfmt 2018-08-08 19:33:37 +02:00
bjorn3
620d65c661 Fix some small bugs 2018-08-08 16:00:14 +02:00
bjorn3
7f2e68e38e Better unimplemented stuff handling 2018-08-08 15:38:03 +02:00
bjorn3
c4705af4e2 Implement intrinsics {ctlz,cttz}{,_nonzero} and ctpop 2018-08-08 14:39:46 +02:00
bjorn3
d4b6bce39c Workaround two bugs 2018-08-08 12:53:09 +02:00
bjorn3
21c52c70b3 Rustfmt 2018-08-08 12:45:34 +02:00
bjorn3
822a181c87 Implement NullOp::SizeOf 2018-08-08 12:44:41 +02:00
bjorn3
1305d1ef23 Implement Rvalue::Repeat 2018-08-08 12:30:25 +02:00
bjorn3
efd203aa0b Implement indexing for arrays 2018-08-08 12:22:16 +02:00
bjorn3
ece497cc84 Some misc changes 2018-08-08 10:39:10 +02:00
bjorn3
40176e03fd Fix some bugs 2018-08-08 10:26:25 +02:00
bjorn3
018612cf22 Implement overflowing_* and *_with_overflowing 2018-08-08 09:49:42 +02:00
bjorn3
376ec8c258 Don't crash on checked binops (treated like unchecked ones atm) 2018-08-08 09:35:35 +02:00
bjorn3
5c601f7316 Rustfmt 2018-08-07 16:43:09 +02:00
bjorn3
e0b1176ae5 Update Cargo.lock and rustup to rustc 1.30.0-nightly (73c78734b 2018-08-05) 2018-08-07 16:34:45 +02:00
bjorn3
f001808249 Run rustfmt 0.9.0-nightly (69ad879 2018-07-27) 2018-07-31 12:25:16 +02:00
bjorn3
82dbd07806 Add support for calling C abi functions 2018-07-30 18:20:37 +02:00
bjorn3
37b61e0ca6 Rustup to rustc 1.29.0-nightly (866a71325 2018-07-29) 2018-07-30 16:57:40 +02:00
bjorn3
4901a66df1 Implement intrinsics assume and (un)likely 2018-07-30 16:02:26 +02:00
bjorn3
dc3ec67046 Implement intrinsics copy and copy_nonoverlapping 2018-07-30 15:58:46 +02:00
bjorn3
75a45965bb Add support for binop rem on floats 2018-07-30 15:34:34 +02:00
bjorn3
9b06ec8f1d Implement intrinsic discriminant_value and fix bug in discriminant reading 2018-07-30 14:36:32 +02:00
bjorn3
812fd6daca Implement some intrinsics 2018-07-29 17:22:40 +02:00
bjorn3
dc4f234115 Implement float binops 2018-07-29 17:09:17 +02:00