Camelid
57739b54cb
Rename optin_builtin_traits
to auto_traits
...
They were originally called "opt-in, built-in traits" (OIBITs), but
people realized that the name was too confusing and a mouthful, and so
they were renamed to just "auto traits". The feature flag's name wasn't
updated, though, so that's what this PR does.
There are some other spots in the compiler that still refer to OIBITs,
but I don't think changing those now is worth it since they are internal
and not particularly relevant to this PR.
Also see <https://rust-lang.zulipchat.com/#narrow/stream/131828-t-compiler/topic/opt-in.2C.20built-in.20traits.20(auto.20traits).20feature.20name >.
2020-11-23 14:14:06 -08:00
bjorn3
285c7c66dc
Merge commit '03f01bbe901d60b71cf2c5ec766aef5e532ab79d' into update_cg_clif-2020-11-01
2020-11-03 11:00:04 +01:00
bjorn3
e5b2b1ba81
Misc changes
2020-09-22 13:06:14 +02:00
bjorn3
2cd8ccbea1
Don't benchmark mod_bench anymore
2020-09-18 14:45:52 +02:00
bjorn3
bb59d616aa
Use don't unroll loop in Rvalue::Repeat
...
Fixes #1081
2020-09-14 11:32:27 +02:00
bjorn3
ca9fc101c0
Fix weak linkage
...
This removes the last sysroot patch apart from the few patches that disable tests
2020-08-20 15:24:33 +02:00
bjorn3
ee2addd010
Don't test x86_64 simd on archs other than x86_64
2020-08-20 13:22:07 +02:00
bjorn3
c1a68b1386
Emulate the cpuid arch intrinsic
2020-08-15 19:08:19 +02:00
bjorn3
49b7fac443
Enable simd insert and extract tests
...
Working since rust-lang/stdarch#876
Fixes #666
2020-08-08 16:32:03 +02:00
bjorn3
edc0a3470b
Implement simd_insert
2020-07-19 14:54:18 +02:00
bjorn3
e87651c3f2
Add test for SwitchInt on 128bit integers
2020-07-16 13:01:20 +02:00
bjorn3
190e36a5f8
Make everything in example.rs public
2020-07-11 11:02:23 +02:00
bjorn3
8cf38181ad
Disable global_asm! on macOS for now
2020-07-09 18:56:17 +02:00
bjorn3
037d411bf4
Implement global_asm! using an external assembler
...
Fixes #1061
2020-07-09 17:02:09 +02:00
bjorn3
8d639cd778
Test signed 128bit discriminants
2020-07-03 16:44:26 +02:00
bjorn3
f3a91164a2
Rustup to rustc 1.46.0-nightly ( f781babf8
2020-07-01)
2020-07-02 19:48:03 +02:00
bjorn3
48d4bc2fb6
Rustup to rustc 1.46.0-nightly ( 7750c3d46
2020-06-26)
2020-06-27 11:29:39 +02:00
bjorn3
5f54cc7658
Implement checked_mul
...
Fixes #6
2020-06-20 15:15:28 +02:00
bjorn3
ef4186a85b
Use Cranelift legalization for icmp.i128
...
The previous translation was wrong for signed 128bit comparisions
This fixes several libcore tests
2020-06-20 13:23:31 +02:00
bjorn3
5c6bf836fe
Implement #[link_section]
...
Fixes #1047
2020-06-20 12:01:24 +02:00
bjorn3
d4187e6aae
Make mini_core_hello_world work on Windows once TLS is supported
2020-06-16 11:50:58 +02:00
bjorn3
a76748e54a
Fix warnings in alloc_example.rs
2020-06-16 10:42:44 +02:00
bjorn3
648b634e21
Rustup to rustc 1.45.0-nightly ( 56daaf669
2020-06-03)
2020-06-04 19:57:12 +02:00
bjorn3
12c92a32f6
Rustup to rustc 1.45.0-nightly ( fa51f810e
2020-04-29)
2020-04-30 11:28:48 +02:00
bjorn3
7031c96fb3
Call panic lang item on failed TerminatorKind::Assert
...
Fixes #164
2020-04-25 19:07:53 +02:00
bjorn3
eab4c9063e
Sync fn_sig_for_fn_abi with upstream for generator resume args
...
Fixes #970
2020-04-18 15:45:42 +02:00
bjorn3
51d07790df
Use the correct return type for puts
2020-04-17 19:33:57 +02:00
bjorn3
3c9ebdb194
Rustup to rustc 1.44.0-nightly ( 1edd389cc
2020-03-23)
2020-03-24 13:09:44 +01:00
bjorn3
d74c151b69
Fix it
2020-03-18 20:33:29 +01:00
bjorn3
d464169beb
Rustup to rustc 1.44.0-nightly ( 7ceebd98c
2020-03-17)
2020-03-18 20:12:19 +01:00
bjorn3
9ab2af56aa
Rustup to rustc 1.43.0-nightly ( 4ad624882
2020-03-03)
2020-03-04 15:04:28 +01:00
bjorn3
c8de552c01
Tls support
2020-02-26 14:41:05 +01:00
bjorn3
38797f8bad
Implement #[track_caller]
...
Fixes #848
2020-01-11 17:10:42 +01:00
bjorn3
2a082209a6
Fix PlaceElem::Subslice length computation
2020-01-11 14:28:18 +01:00
bjorn3
c6086a8fd7
Rustup to rustc 1.41.0-nightly ( 6d77e45f0
2019-12-04)
2019-12-05 21:00:57 +01:00
bjorn3
e9d3569e08
Run libcore tests
2019-11-24 15:44:39 +01:00
bjorn3
b0bcb23eb4
Fix signed cast to 128bit integer
2019-11-16 16:44:26 +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
f2c574aebf
Add extern type pointer cast tests
2019-09-21 11:32:11 +02:00
bjorn3
554a1aa0ba
Reenable debug assertions for libstd on macOS
...
m4b/faerie#91 has been merged
2019-09-14 12:49:23 +02:00
bjorn3
a2e905f22d
Correctly align offset for dst field projections
...
Fixes #681
2019-09-02 20:09:37 +02:00
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
bjorn3
a715c79263
Rustup to rustc 1.35.0-nightly ( 82e2f3ec2
2019-03-20)
2019-03-21 20:24:46 +01:00
bjorn3
d9403bf3fd
Implement weak linkage for statics
2019-03-11 20:36:29 +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
89666d9818
Implement CastKind::ClosureFnPointer
2019-03-02 20:25:08 +01:00
bjorn3
25f3ef5ff9
Implement ProjectionElem::Subslice
2019-03-02 20:11:31 +01:00
bjorn3
3d81b76566
Rustup to rustc 1.34.0-nightly ( 350674b71
2019-02-28)
2019-03-01 18:55:20 +01:00
bjorn3
f54a2cc2e4
Update cranelift and add a test for bitreverse
...
Fixes #168 using CraneStation/cranelift#683
2019-02-23 10:41:34 +01:00
bjorn3
b4eff78a9e
Pass command-line arguments to JITed function
...
Cherry-picked from f1f35405e15ca1b77425514b04b96b2749231899 by
@milkey-mouse
2019-02-18 18:53:18 +01:00