bjorn3
21bdff8bc0
Fix transmute from vector to scalar pair again
2023-02-01 15:28:06 +01:00
bjorn3
df04fd6fba
Don't force many scalar pair values to the stack in write_cvalue_maybe_transmute
...
Sometimes it is necessary for handling vector to scalar pair transmutes,
but if the types are the same there is no need for this.
This improves runtime performance on simple-raytracer by 12%.
2023-02-01 13:55:28 +00:00
bjorn3
debd45cc7b
Update to cranelift 0.91
...
Closes #1307
2022-12-22 14:02:47 +00:00
bjorn3
b8a3c2dd30
Sync from rust fd02567705326884ddb94535d2ab230a9595dc2a
2022-12-04 10:26:24 +01:00
bjorn3
83dc7d1a12
Fix for removal of raw_bitcast
2022-12-01 17:45:59 +00:00
Maybe Waffle
a085a2ad2d
Prefer doc comments over //
-comments in compiler
2022-11-27 11:19:04 +00:00
bjorn3
d6b54a5433
Sync from rust 5e6de2369c82ed0b36e6b651b041bad5cb5e1ef8
2022-11-19 15:23:58 +01:00
Ralf Jung
f5caaea98a
add is_sized method on Abi and Layout, and use it
2022-11-13 12:23:53 +01:00
bjorn3
777d4732dc
Fix transmuting from vector type to ScalarPair type
...
Fixes #1292
2022-10-29 13:47:10 +00:00
bjorn3
5513583f3f
Stop using a deprecated function
2022-10-27 14:49:24 +00:00
bjorn3
9950bd1dc5
Merge commit '266e96785ab71834b917bf474f130a6d8fdecd4b' into sync_cg_clif-2022-10-23
2022-10-23 16:22:55 +02:00
bjorn3
b930e2d722
Revert "Stop using a depracated function"
...
This reverts commit b1791eef6add9563c1b750e88ec02e681a9a4ad7.
2022-10-23 16:16:58 +02:00
bjorn3
342bac9807
Fix drop for dyn*
2022-10-23 15:09:28 +02:00
bjorn3
b1791eef6a
Stop using a depracated function
2022-10-21 10:58:33 +00:00
bjorn3
385003e4c1
Sync from rust 8e9c93df464b7ada3fc7a1c8ccddd9dcb24ee0a0
2022-09-25 13:55:23 +02:00
Oli Scherer
93af5f5999
Revert "Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank""
...
This reverts commit 4a742a691e7dd2522bad68b86fe2fd5a199d5561.
2022-09-16 11:36:39 +00:00
bjorn3
879c86ff30
Implement dyn* support
2022-09-15 14:08:30 +00:00
Eric Holk
6d544a8a4c
Address code review comments
2022-09-13 14:50:12 -07:00
Eric Holk
0221923952
Make x.py check work
2022-09-12 17:29:11 -07:00
bjorn3
cfef0a4f8d
Merge commit 'e9d1a0a7b0b28dd422f1a790ccde532acafbf193' into sync_cg_clif-2022-08-24
2022-08-24 18:40:58 +02:00
bjorn3
640c3f730a
Merge commit 'c19edfd71a1d0ddef86c2c67fdb40718d40a72b4' into sync_cg_clif-2022-07-25
2022-07-25 16:07:57 +02:00
Oli Scherer
22a0a2eac2
Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank"
...
This reverts commit 6f8fb911ad504b77549cf3256a09465621beab9d, reversing
changes made to 7210e46dc69a4b197a313d093fe145722c248b7d.
2022-07-20 07:55:58 +00:00
Oli Scherer
9ea9c093e5
Introduce opaque type to hidden type projection
2022-07-15 15:49:22 +00:00
bjorn3
d9025cebac
Merge commit '63734fcdd718cca089f84c42f3a42c0096cfd431' into sync_cg_clif-2022-05-15
2022-05-15 12:32:19 +02:00
Oli Scherer
2efede7749
Mark scalar layout unions so that backends that do not support partially initialized scalars can special case them.
2022-04-05 13:18:21 +00:00
Nicholas Nethercote
e439761b8f
Improve AdtDef
interning.
...
This commit makes `AdtDef` use `Interned`. Much the commit is tedious
changes to introduce getter functions. The interesting changes are in
`compiler/rustc_middle/src/ty/adt.rs`.
2022-03-11 13:31:24 +11:00
Nicholas Nethercote
6a20fa93b5
Overhaul TyS
and Ty
.
...
Specifically, change `Ty` from this:
```
pub type Ty<'tcx> = &'tcx TyS<'tcx>;
```
to this
```
pub struct Ty<'tcx>(Interned<'tcx, TyS<'tcx>>);
```
There are two benefits to this.
- It's now a first class type, so we can define methods on it. This
means we can move a lot of methods away from `TyS`, leaving `TyS` as a
barely-used type, which is appropriate given that it's not meant to
be used directly.
- The uniqueness requirement is now explicit, via the `Interned` type.
E.g. the pointer-based `Eq` and `Hash` comes from `Interned`, rather
than via `TyS`, which wasn't obvious at all.
Much of this commit is boring churn. The interesting changes are in
these files:
- compiler/rustc_middle/src/arena.rs
- compiler/rustc_middle/src/mir/visit.rs
- compiler/rustc_middle/src/ty/context.rs
- compiler/rustc_middle/src/ty/mod.rs
Specifically:
- Most mentions of `TyS` are removed. It's very much a dumb struct now;
`Ty` has all the smarts.
- `TyS` now has `crate` visibility instead of `pub`.
- `TyS::make_for_test` is removed in favour of the static `BOOL_TY`,
which just works better with the new structure.
- The `Eq`/`Ord`/`Hash` impls are removed from `TyS`. `Interned`s impls
of `Eq`/`Hash` now suffice. `Ord` is now partly on `Interned`
(pointer-based, for the `Equal` case) and partly on `TyS`
(contents-based, for the other cases).
- There are many tedious sigil adjustments, i.e. adding or removing `*`
or `&`. They seem to be unavoidable.
2022-02-15 16:03:24 +11:00
bjorn3
799e067912
Merge commit '97e504549371d7640cf011d266e3c17394fdddac' into sync_cg_clif-2021-12-20
2021-12-20 18:56:35 +01:00
Andreas Liljeqvist
a81217c12d
Make abi::Abi
Copy
and remove a *lot* of refs
...
fix
fix
Remove more refs and clones
fix
more
fix
2021-09-09 10:41:19 +02:00
bjorn3
d220159810
Merge commit '05677b6bd6c938ed760835d9b1f6514992654ae3' into sync_cg_clif-2021-08-06
2021-08-06 16:26:56 +02:00
Scott McMurray
7a0574d826
PR Feedback: Don't put SSA-only types in CValue
s
2021-07-08 14:55:58 -07:00
Scott McMurray
ea8d9aefda
Implement the raw_eq intrinsic in codegen_cranelift
2021-07-08 14:55:57 -07:00
bjorn3
d6b03451e6
Merge commit '40dd3e2b7089b5e96714e064b731f6dbf17c61a9' into sync_cg_clif-2021-05-27
2021-05-27 13:08:14 +02:00
Erin Power
ee570b1302
Sync rustc_codegen_cranelift 'ddd4ce25535cf71203ba3700896131ce55fde795'
2021-04-30 14:49:58 +02:00
bjorn3
07968a001d
Merge commit '0969bc6dde001e01e7e1f58c8ccd7750f8a49ae1' into sync_cg_clif-2021-03-29
2021-03-29 10:45:09 +02:00
bjorn3
27886cd6b6
Merge commit '9a0c32934ebe376128230aa8da3275697b2053e7' into sync_cg_clif-2021-03-05
2021-03-05 19:12:59 +01:00
bjorn3
a75f9bc3be
Merge commit 'd556c56f792756dd7cfec742b9f2e07612dc10f4' into sync_cg_clif-2021-02-01
2021-02-01 10:11:46 +01:00
Jack Huey
42b267d221
Move binder for dyn to each list item
2020-12-11 15:02:46 -05:00
Bastian Kauschke
56e63805be
update cg_clif
2020-11-16 22:42:09 +01:00
oli
6e96e10f93
u64::try_from
will now fail if ScalarInt
isn't exactly 64 bits, thus we use to_bits
with the correct size
2020-11-04 13:59:11 +00:00
oli
7e8b15e050
Fix cranelift build
2020-11-04 10:10:44 +00:00
bjorn3
285c7c66dc
Merge commit '03f01bbe901d60b71cf2c5ec766aef5e532ab79d' into update_cg_clif-2020-11-01
2020-11-03 11:00:04 +01:00
bjorn3
0a5968dfd2
Use the new cranelift-module interface
...
This updates Cranelift to include bytecodealliance/wasmtime#2249
2020-10-08 19:00:21 +02:00
bjorn3
c8699076f9
Document almost all modules
...
Fixes #1082
2020-09-23 15:13:49 +02:00
bjorn3
217b3818b7
Rustup to rustc 1.48.0-nightly (c59199efc 2020-09-04)
2020-09-05 10:38:49 +02:00
bjorn3
a8e3f592c9
Set notrap flag on loads and stores
2020-08-30 13:15:08 +02:00
CohenArthur
4e685a512e
fmt: Run cargo fmt since it is available
2020-08-28 12:10:48 +02:00
bjorn3
5dec38e94c
Avoid temporary stack slot in drop codegen
...
cc #322
2020-08-25 18:32:16 +02:00
CohenArthur
0d1f8c802e
FunctionCx: Refactor fx.cx.tcx
into fx.tcx
2020-08-22 16:47:31 +02:00
CohenArthur
7b534d653d
FunctionCx: Rename codegen_cx -> cx
2020-08-22 16:17:58 +02:00