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
e704eb5259
Sync discriminant getter and setter with upstream
...
Fixes #683
2019-08-26 11:03:06 +02:00
bjorn3
1f90b04cd6
Fix float -> u/i128 cast
...
The original test casts were optimized away by rustc,
so cg_clif never saw them.
cc #668
2019-08-21 14:35:48 +02:00
bjorn3
b2d6705fe2
Implement u/i128 <-> float casts
...
Fixes #668
2019-08-21 14:01:29 +02:00
bjorn3
3fcd54088c
Implement saturating_{add,sub} intrinsics
2019-08-20 10:40:08 +02:00
bjorn3
f99d31dbfe
Implement pow{f32,f64} intrinsics
2019-08-19 17:16:21 +02:00
bjorn3
edbb5730ea
Implement copysign{f32,f64} intrinsics
2019-08-19 16:27:09 +02:00
bjorn3
ce860e5fde
Fix cross crate static duplicate codegen
2019-08-19 16:26:20 +02:00
bjorn3
f61b36a396
Don't run a alignment assertion on macOS
2019-08-18 15:30:06 +02:00
bjorn3
2558bf2f6b
Workaround for missing #[rustc_args_required_const(..)]
support
...
cc #666
2019-08-16 16:04:50 +02:00
bjorn3
9505d60a24
Cast rhs to lhs type for shl and shr
2019-08-14 15:18:05 +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
f5b0a68fbf
Fix some warnings
2019-08-12 16:00:10 +02:00
bjorn3
314141392a
Implement log2{f32,f64} intrinsics
2019-08-12 15:54:24 +02:00
bjorn3
3000a3f63d
[WIP] Implement dylib loading for the JIT
2019-08-10 16:50:23 +02:00
bjorn3
7602a46bb9
Implement simd_extract
2019-08-05 16:28:27 +02:00
bjorn3
c4af588f72
Correctly align all allocs
...
Fixes #348
2019-08-01 11:49:03 +02:00
bjorn3
2f0093b8c2
Test mutex locking
2019-08-01 11:15:40 +02:00
bjorn3
b806070a88
Fix simd_cast
2019-07-31 09:46:05 +02:00
bjorn3
69526d464f
Implement some float simd intrinsics
2019-07-30 14:37:20 +02:00
bjorn3
ee4927e069
Fix _mm_movemask_epi8
...
The order of iteration was wrong
2019-07-29 18:59:17 +02:00
bjorn3
49b21f2730
Fix returning (u128, u128)
2019-07-29 13:18:21 +02:00
bjorn3
63646b1956
Implement llvm.x86.avx2.pmovmskb llvm intrinsic
2019-07-29 12:50:20 +02:00
bjorn3
9cb787fe70
Implement and test simd_shuffle*
2019-07-29 11:23:53 +02:00
bjorn3
76b89476c3
[WIP] simd_shuffle*
2019-07-29 11:03:55 +02:00
bjorn3
90f2b12d47
Fix simd comparison
2019-07-29 11:03:55 +02:00
bjorn3
7fdd058c60
Emulate some simd intrinsics
2019-07-29 11:03:55 +02:00
bjorn3
3f76607880
Rustup to rustc 1.38.0-nightly ( 4560cb830
2019-07-28)
2019-07-29 10:32:24 +02:00
bjorn3
dbf94c5697
Rustup to rustc 1.38.0-nightly ( c798dffac
2019-07-27)
2019-07-28 09:24:16 +02:00
bjorn3
436a24a85d
Implement many more float intrinsics
2019-07-27 16:52:00 +02:00
bjorn3
ffa34ae328
Remove unnecessary changes
2019-07-26 11:45:01 +02:00
bjorn3
0a833ba8a1
[WIP]
2019-07-26 11:32:04 +02:00
bjorn3
b46c8bfb7e
Use std checked_div
2019-07-26 11:32:04 +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
63b82238bb
Implement 128bit checked add and sub
2019-07-26 11:30:39 +02:00
bjorn3
65e337cdf3
Implement 128bit multiply with overflow
2019-07-26 11:29:35 +02:00
bjorn3
834a3bf49c
[WIP]
2019-07-26 11:29:35 +02:00
bjorn3
641a210ff6
Implement most 128bit binops
2019-07-26 11:29:35 +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
de32ddad23
[WIP] Basic i128 support
2019-07-26 11:28:04 +02:00
bjorn3
bf3ec3be3e
Implement checked binops
2019-07-26 11:19:14 +02:00
bjorn3
b82472184d
Rustup to rustc 1.38.0-nightly ( dfd52ba6a
2019-07-06)
2019-07-07 11:59:11 +02:00
bjorn3
4e1d219f06
Implement some float intrinsics
2019-06-26 16:06:12 +02:00
bjorn3
db5ffdedf7
Implement bswap intrinsic
2019-06-23 17:32:32 +02:00
bjorn3
d7274ac5fd
Fix load and store for ByValPair values with differently sized components
2019-06-23 15:23:06 +02:00
bjorn3
aeecb45beb
Preserve the order files are added to archives
...
rust.metadata.bin could have been at the start of an .rlib file confusing ld
2019-04-27 17:47:15 +02:00
bjorn3
970d164089
Fix and optimize init intrinsic
2019-04-10 17:25:57 +02:00
bjorn3
0df3b41630
Skip ZST arguments
...
Fixes #413 and increases compatibility with cg_llvm
2019-03-26 19:53:04 +01:00