bjorn3
ac1c5d6954
Rustup to rustc 1.44.0-nightly ( 537ccdf3a
2020-04-02)
2020-04-03 11:54:18 +02:00
bjorn3
13e3a3c8b0
Rustup to rustc 1.44.0-nightly ( 211365947
2020-03-30)
2020-03-31 13:20:19 +02:00
bjorn3
017a9b7641
Rustup to rustc 1.44.0-nightly ( 699f83f52
2020-03-29)
2020-03-30 19:00:24 +02:00
bjorn3
f288959c00
Limit publicness to crate where possible and remove unused imports
2020-03-27 12:14:45 +01:00
bjorn3
a59479bd37
Add clif ir comments for stack2reg opt
2020-03-20 12:18:40 +01:00
bjorn3
240d56c33c
Support virtual calls with unsized self argument
2020-03-10 20:41:31 +01:00
bjorn3
6156f48ffe
Update Cranelift and use the new ineg instruction
2020-02-15 11:59:45 +01:00
bjorn3
430f738392
Update Cranelift for basic blocks
2020-02-14 18:23:29 +01:00
bjorn3
9cfb9470c5
Allow unsized types as function parameters
2020-01-25 16:23:54 +01:00
bjorn3
c4acc78e4d
Allow more types in CValue::const_val
2020-01-22 18:56:36 +01:00
bjorn3
217beab62a
Reduce the amount of calls to layout_of
2020-01-15 13:18:54 +01:00
bjorn3
7564a043d0
Fix some warnings
2019-12-31 15:53:18 +01:00
bjorn3
50d7497708
Write scalars separately for Abi::ScalarPair in write_cvalue
...
This makes it easier to perform store to load forwarding
2019-12-31 15:28:15 +01:00
bjorn3
30a760dda2
Make it possible it use value_field for SIMD values stored ByVal
2019-12-25 14:38:51 +01:00
bjorn3
b35a5da4ea
Remove vector support from load_scalar
2019-12-25 14:38:51 +01:00
bjorn3
f8e846dee0
Add load_vector function
2019-12-25 14:38:37 +01:00
bjorn3
73fd311291
[WIP] Real simd support
2019-12-25 14:38:37 +01:00
bjorn3
c3daf6d220
Add clif ir comment for write_cvalue
2019-12-25 14:38:22 +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
ad72afaad3
Remove CPlaceInner::Stack
2019-12-20 22:00:12 +01:00
bjorn3
fbbc910ddc
[OPT] Emit stack_{load,store} where possible
2019-12-20 19:30:56 +01:00
bjorn3
8f5ef6172c
Remove to_addr and to_addr_maybe_unsized
2019-12-20 19:10:08 +01:00
bjorn3
967709f31a
[OPT] Use load and store offsets instead of iadd_imm
2019-12-20 16:02:47 +01:00
bjorn3
ab7ad2caeb
Use set_val_label before every def_var
2019-12-16 12:07:12 +01:00
bjorn3
c0aedfef96
[WIP] debuginfo for locals
2019-12-16 12:04:34 +01:00
bjorn3
4a8b0ca274
Correctly align returned addr for to_addr on NoPlace
2019-11-24 14:56:51 +01:00
bjorn3
177b0d2f57
Rustup to rustc 1.41.0-nightly ( ded5ee001
2019-11-13)
2019-11-14 21:13:40 +01: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
a2e905f22d
Correctly align offset for dst field projections
...
Fixes #681
2019-09-02 20:09:37 +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
d9d8c69af1
Split extract layout field of all CPlace variants into a sparate struct
2019-08-29 11:23:19 +02:00
bjorn3
2a20cc0b94
Use anonymous lifetimes where possible
2019-08-18 16:52:07 +02:00
bjorn3
7f5c2dab9d
Remove some unnecessary changes
2019-07-26 11:30:39 +02:00
bjorn3
5180becc7c
Fix 128bit CValue::const_val
2019-07-26 11:30:39 +02:00
bjorn3
596fdd5a64
Fix type in load_scalar
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
d7274ac5fd
Fix load and store for ByValPair values with differently sized components
2019-06-23 15:23:06 +02:00
bjorn3
2b61f90c71
Fix returning non ZST uninhabited types
2019-06-16 18:03:38 +02:00
bjorn3
65bc1e5b5b
Fix write_cvalue
for ByValPair
when the cvalue is not trivially a pair
...
`write_cvalue` didn't work for `Box<[u8]>`, because the inner fat ptr
was wrapped inside a newtype, which meant `Box<[u8]>` itself only had
one field.
This also simplifies `CValue::force_stack` by reusing `write_cvalue`
when it is not already on the stack.
2019-06-16 12:51:16 +02:00
bjorn3
8fb70f259f
Move layout out of the enum for CValue
2019-06-11 16:41:40 +02:00
bjorn3
089e75ec42
Encapsulate CPlace constructors
2019-06-11 16:30:47 +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