bjorn3
01f6f40ac2
Rustup to rustc 1.43.0-nightly ( 442ae7f04
2020-02-06)
2020-02-07 13:49:48 +01:00
bjorn3
09b44f5d25
Reduce visibility
2020-01-14 17:11:06 +01:00
bjorn3
c74b306037
Move all cold code to the end of the function
...
Fixes #836
Benchmark #1 : simple-raytracer/raytracer_cg_clif
Time (mean ± σ): 9.250 s ± 0.056 s [User: 9.213 s, System: 0.015 s]
Range (min … max): 9.151 s … 9.348 s 20 runs
Benchmark #2 : simple-raytracer/raytracer_cg_clif_cold_separated
Time (mean ± σ): 9.179 s ± 0.101 s [User: 9.141 s, System: 0.016 s]
Range (min … max): 9.070 s … 9.473 s 20 runs
Summary
'simple-raytracer/raytracer_cg_clif_cold_separated' ran
1.01 ± 0.01 times faster than 'simple-raytracer/raytracer_cg_clif'
2020-01-11 17:57:18 +01:00
bjorn3
38797f8bad
Implement #[track_caller]
...
Fixes #848
2020-01-11 17:10:42 +01:00
bjorn3
33ad67c124
Rustup to rustc 1.42.0-nightly ( caa231d99
2020-01-08)
2020-01-09 17:43:10 +01:00
bjorn3
6652f466ef
Rustup to rustc 1.42.0-nightly ( bc1571cc3
2020-01-05)
2020-01-06 20:11:03 +01:00
bjorn3
1bb848d4ac
Re-use cranelift_codegen::ir::Function for every function
...
Fixes #844
2020-01-04 17:58:38 +01:00
bjorn3
ca92695a2c
Use IndexVec for ebb_map
...
cc #745
2020-01-04 13:23:42 +01:00
bjorn3
7ff01a4d59
Use mir::SourceInfo again in FunctionCx.source_info_set
...
Fixes #800
2019-12-24 12:44:07 +01:00
bjorn3
399cada762
Directly depend on cranelift_{codegen,frontend}
...
Fixes #838
2019-12-24 12:43:20 +01:00
bjorn3
e63a94fca6
Rustup to rustc 1.42.0-nightly ( fc5deca21
2019-12-21)
2019-12-22 16:53:06 +01:00
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
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