bjorn3
32202f20cd
Merge commit 'f2cdd4a78d89c009342197cf5844a21f8aa813df' into sync_cg_clif-2022-04-22
2022-04-22 21:11:38 +02:00
bjorn3
d1904e5855
Merge commit '370c397ec9169809e5ad270079712e0043514240' into sync_cg_clif-2022-03-20
2022-03-20 16:55:21 +01:00
Nicholas Nethercote
8723fe0b6b
Clarify Layout
interning.
...
`Layout` is another type that is sometimes interned, sometimes not, and
we always use references to refer to it so we can't take any advantage
of the uniqueness properties for hashing or equality checks.
This commit renames `Layout` as `LayoutS`, and then introduces a new
`Layout` that is a newtype around an `Interned<LayoutS>`. It also
interns more layouts than before. Previously layouts within layouts
(via the `variants` field) were never interned, but now they are. Hence
the lifetime on the new `Layout` type.
Unlike other interned types, these ones are in `rustc_target` instead of
`rustc_middle`. This reflects the existing structure of the code, which
does layout-specific stuff in `rustc_target` while `TyAndLayout` is
generic over the `Ty`, allowing the type-specific stuff to occur in
`rustc_middle`.
The commit also adds a `HashStable` impl for `Interned`, which was
needed. It hashes the contents, unlike the `Hash` impl which hashes the
pointer.
2022-03-07 13:41:47 +11:00
bjorn3
b5cbb87e62
Merge commit '35d9c6bf256968e1b40e0d554607928bdf9cebea' into sync_cg_clif-2022-02-23
2022-02-23 11:49:34 +01:00
Mark Rousskov
7e80bc3c8d
Move ty::print methods to Drop-based scope guards
2022-02-16 17:24:23 -05:00
lcnr
513d72d007
remove is_noop
2022-01-19 13:58:29 +01:00
bjorn3
799e067912
Merge commit '97e504549371d7640cf011d266e3c17394fdddac' into sync_cg_clif-2021-12-20
2021-12-20 18:56:35 +01:00
Deadbeef
0134088cd2
Add const_eval_select intrinsic
2021-10-12 05:42:23 +00:00
bors
02d3c132ae
Auto merge of #88839 - nbdd0121:alignof, r=nagisa
...
Introduce NullOp::AlignOf
This PR introduces `Rvalue::NullaryOp(NullOp::AlignOf, ty)`, which will be lowered from `align_of`, similar to `size_of` lowering to `Rvalue::NullaryOp(NullOp::SizeOf, ty)`.
The changes are originally part of #88700 but since it's not dependent on other changes and could have performance impact on its own, it's separated into its own PR.
2021-09-12 23:49:24 +00:00
Gary Guo
4ac4980b33
Introduce NullOp::AlignOf
2021-09-13 00:08: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
Eduard-Mihai Burtescu
39e16da529
rustc_target: TyAndLayout::field
should never error.
2021-08-30 00:44:09 +03:00
Gary Guo
74b17685fe
Implement black_box
using intrinsic
...
The new implementation allows some `memcpy`s to be optimized away,
so the uninit value in ui/sanitize/memory.rs is constructed directly
onto the return place. Therefore the sanitizer now says that the
value is allocated by `main` rather than `random`.
2021-08-12 16:16:57 +01:00
bjorn3
d220159810
Merge commit '05677b6bd6c938ed760835d9b1f6514992654ae3' into sync_cg_clif-2021-08-06
2021-08-06 16:26:56 +02:00
Scott McMurray
e3091d74d8
Use cranelift's Type::int
instead of doing the match myself
...
<https://docs.rs/cranelift-codegen/0.74.0/cranelift_codegen/ir/types/struct.Type.html#method.int >
2021-07-08 14:55:58 -07: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
27886cd6b6
Merge commit '9a0c32934ebe376128230aa8da3275697b2053e7' into sync_cg_clif-2021-03-05
2021-03-05 19:12:59 +01:00
Ömer Sinan Ağacan
ea73caa3b7
codegen_cranelift: Fix redundant semicolon warn
2021-01-16 07:17:13 +03:00
bjorn3
77f74ed070
Merge commit 'dbee13661efa269cb4cd57bb4c6b99a19732b484' into sync_cg_clif-2020-12-27
2020-12-27 10:30:38 +01:00
bors
aec0fc58ad
Auto merge of #77611 - oli-obk:atomic_miri_leakage, r=nagisa
...
Directly use raw pointers in `AtomicPtr` store/load
I was unable to find any reason for this limitation in the latest source of LLVM or in the documentation [here](http://llvm.org/docs/Atomics.html#libcalls-atomic ).
fixes https://github.com/rust-lang/miri/issues/1574
2020-12-09 19:53:23 +00:00
oli
7760894d3f
Allow cranelift to handle atomic pointers
2020-11-29 14:56:19 +00:00
bjorn3
d404840788
Merge commit '5988bbd24aa87732bfa1d111ba00bcdaa22c481a' into sync_cg_clif-2020-11-27
2020-11-27 20:48:53 +01: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
c0507a63fb
Invoke panic handler instead of trap for assert_* intrinsics
2020-09-29 13:22:01 +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
CohenArthur
4e685a512e
fmt: Run cargo fmt since it is available
2020-08-28 12:10:48 +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
CohenArthur
ad4a7a1f0c
FunctionCx: WIP: Fix syntax error on sed codegen_cx -> .codegen_cx
2020-08-22 15:21:38 +02:00
CohenArthur
cb69c7019c
FunctionCx: Replace .module with .codegen_cx.module
2020-08-22 15:19:09 +02:00
CohenArthur
297d65c247
FunctionCx: WIP: Replace .tcx with .codegen_cx.tcx
2020-08-22 15:18:39 +02:00
bjorn3
c1a68b1386
Emulate the cpuid arch intrinsic
2020-08-15 19:08:19 +02:00
bjorn3
e8f1c5c53a
Don't forbid i64x2 as simd type
2020-07-25 12:29:55 +02:00
bjorn3
67028cee51
Use PassMode::ByVal for Abi::Vector
2020-07-25 12:29:55 +02:00
bjorn3
95511cb3ee
Add unaligned_volatile_{load,store} intrinsics
2020-07-23 12:37:27 +02:00
bjorn3
6345e4a1bc
Implement variant_count intrinisic
2020-07-03 16:52:56 +02:00
bjorn3
699da394cc
Validate simd and atomic intrinsic types
2020-07-03 16:52:37 +02:00
bjorn3
a299d0e632
Don't panic on unevaluatable promoted constants
2020-07-01 14:15:23 +02:00
bjorn3
eb89a2c092
Implement float_to_int_unchecked intrinsic
2020-06-30 19:02:00 +02:00
bjorn3
c674a32ab8
Implement f*_fast intrinsics
2020-06-30 19:01:17 +02:00
bjorn3
f5f24c7a5c
Implement a few volatile intrinsics
2020-06-30 19:00:52 +02:00
bjorn3
aa6a4acd78
Fix ptr_offset_from intrinsic
2020-06-30 18:53:47 +02:00
bjorn3
48d4bc2fb6
Rustup to rustc 1.46.0-nightly (7750c3d46 2020-06-26)
2020-06-27 11:29:39 +02:00
bjorn3
eb8fd197ab
Prelude cleanup
2020-06-20 18:44:49 +02:00