Camille GILLOT
26cb34cd18
Remove span from BrAnon.
2023-09-24 09:46:55 +00:00
Camille GILLOT
44ac8dcc71
Remove GeneratorWitness and rename GeneratorWitnessMIR.
2023-09-23 13:47:30 +00:00
Guillaume Gomez
208f6ed95c
Rollup merge of #115972 - RalfJung:const-consistency, r=oli-obk
...
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
Also, be more consistent with the `to/eval_bits` methods... we had some that take a type and some that take a size, and then sometimes the one that takes a type is called `bits_for_ty`.
Turns out that `ty::Const`/`mir::ConstKind` carry their type with them, so we don't need to even pass the type to those `eval_bits` functions at all.
However this is not properly consistent yet: in `ty` we have most of the methods on `ty::Const`, but in `mir` we have them on `mir::ConstKind`. And indeed those two types are the ones that correspond to each other. So `mir::ConstantKind` should actually be renamed to `mir::Const`. But what to do with `mir::Constant`? It carries around a span, that's really more like a constant operand that appears as a MIR operand... it's more suited for `syntax.rs` than `consts.rs`, but the bigger question is, which name should it get if we want to align the `mir` and `ty` types? `ConstOperand`? `ConstOp`? `Literal`? It's not a literal but it has a field called `literal` so it would at least be consistently wrong-ish...
``@oli-obk`` any ideas?
2023-09-21 13:25:39 +02:00
Ralf Jung
c94410c145
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const
2023-09-21 08:12:30 +02:00
Ralf Jung
ea22adbabd
adjust constValue::Slice to work for arbitrary slice types
2023-09-19 20:17:43 +02:00
Ralf Jung
5a0a1ff0cd
move ConstValue into mir
...
this way we have mir::ConstValue and ty::ValTree as reasonably parallel
2023-09-19 11:11:02 +02:00
Matthias Krüger
4f90a52ae6
Rollup merge of #115772 - ouz-a:smir_span2, r=oli-obk
...
Improve Span in smir
Addressing https://github.com/rust-lang/project-stable-mir/issues/31
r? ``@oli-obk``
2023-09-14 19:12:31 +02:00
Ralf Jung
430c386821
make it more clear which functions create fresh AllocId
2023-09-14 07:27:31 +02:00
Ralf Jung
0f8908da27
cleanup op_to_const a bit; rename ConstValue::ByRef → Indirect
2023-09-14 07:27:30 +02:00
Ralf Jung
551f481ffb
use AllocId instead of Allocation in ConstValue::ByRef
2023-09-14 07:26:24 +02:00
ouz-a
fa57a48cf5
span is index
2023-09-14 00:32:21 +03:00
bors
1fe747c160
Auto merge of #115793 - spastorino:smir-explicit-predicates-of, r=oli-obk
...
Add explicit_predicates_of to SMIR
Adding `explicit_predicates_of` so we can use it from Mir formality.
r? `@oli-obk`
2023-09-13 04:51:19 +00:00
Santiago Pastorino
3678dbc382
Add explicit_predicates_of to SMIR
2023-09-12 15:12:02 -03:00
Matthias Krüger
2a087be735
Rollup merge of #115749 - oli-obk:smir_consts, r=compiler-errors
...
Allow loading the SMIR for constants and statics
cc https://github.com/rust-lang/project-stable-mir/issues/34
before this PR we were ICEing when trying to access the SMIR of anything other than functions
2023-09-11 21:16:23 +02:00
Matthias Krüger
c943ec2fba
Rollup merge of #115730 - bjorn3:some_driver_refactors, r=compiler-errors
...
Some more small driver refactors
To improve clarity and simplify some code.
2023-09-11 21:16:22 +02:00
Matthias Krüger
e7a347baf8
Rollup merge of #115727 - fee1-dead-contrib:effect-fallback, r=oli-obk
...
Implement fallback for effect param
r? `@oli-obk` or `@lcnr`
tracking issue for this ongoing work: https://github.com/rust-lang/rust/issues/110395
2023-09-11 17:03:31 +02:00
Deadbeef
9654d5ceaf
add is_host_effect
to GenericParamDefKind::Const
and address review
2023-09-11 13:18:36 +00:00
Oli Scherer
c2e790044c
Allow loading the SMIR for constants and statics
2023-09-11 08:14:56 +00:00
bjorn3
2eca717a24
Remove EarlyErrorHandler argument from after_analysis callback
...
It is only used by miri which can create a new one using the Session.
2023-09-10 09:44:03 +00:00
ouz-a
d190ebf2fc
add function that returns span of an item
2023-09-09 14:17:36 +03:00
Matthias Krüger
9a901dad6f
Rollup merge of #115605 - ouz-a:smir_better_debug, r=oli-obk
...
Better Debug for `Ty` in smir
Similar to what I did here https://github.com/rust-lang/rust/pull/115534 .
r? ``@oli-obk``
2023-09-06 19:31:51 +02:00
ouz-a
cc7c5ad20b
Ty Debug now prints id and kind
2023-09-06 15:02:03 +03:00
Oli Scherer
0f4ff52e00
Implement and test monomorphization
2023-09-06 08:16:04 +00:00
Oli Scherer
202fbed1a6
Allow fetching the SMIR body of FnDefs
2023-09-06 08:16:04 +00:00
Oli Scherer
98d26d9c4d
Deopaquify ParamConst
2023-09-06 08:16:04 +00:00
Oli Scherer
627fa80bdf
Add types to all constants
2023-09-06 08:16:04 +00:00
Oli Scherer
a370f1baa3
Also use Const
in SMIR
instead of just ConstantKind
2023-09-06 08:16:04 +00:00
Oli Scherer
b43e3b9f41
Add type folder to SMIR
2023-09-06 08:15:42 +00:00
Celina G. Val
d10d8290ac
Add tests and use ControlFlow
2023-09-05 09:19:56 -07:00
Celina G. Val
1a8a5d0a29
SMIR: Allow users to pick if compilation continues
...
Currently we stop compilation, but some users might want to keep going.
This is needed for us to test against rustc tests. Other tools, such as
Kani, also implements parts of their logic as a backend so it is
important for compilation to continue.
2023-09-05 08:54:03 -07:00
Celina G. Val
3b01f65aa5
Diferentiate between ICE and compilation error
2023-09-05 08:54:03 -07:00
Celina G. Val
2db01be584
Adjust StableMIR interface to return and not crash
...
Invoking StableMir::run() on a crate that has any compilation error was
crashing the entire process. Instead, return a `CompilerError` so the
user knows compilation did not succeed.
I believe ICE will also be converted to `CompilerError`.
I'm also adding a return value to the callback, because I think it will
be handy for users (at least it was for my current task of implementing
a tool to validate stable-mir). However, if people disagree,
I can remove that.
2023-09-05 08:54:03 -07:00
ouz-a
56d10a883e
provide more useful info for DefId Debug
2023-09-04 19:13:43 +03:00
bors
7cc5ac267f
Auto merge of #115470 - ericmarkmartin:stable-prov, r=oli-obk
...
add stable provenance
r? `@spastorino`
implements rust-lang/project-stable-mir#22
2023-09-03 07:38:55 +00:00
Eric Mark Martin
cb7d020fb6
add stable provenance
2023-09-02 01:53:06 -04:00
Oli Scherer
85a1679df9
Create a SMIR visitor
2023-09-01 16:32:22 +00:00
Oli Scherer
92cfd209f1
Move some logic using rustc datastructures to the rustc_smir
module
2023-08-30 08:10:28 +00:00
Oli Scherer
03b03f9fee
Reuse the ty::Const: Stable
impl
2023-08-30 08:09:41 +00:00
Oli Scherer
3a736a747d
Exhaustively match on ty::Const::kind
2023-08-30 08:08:39 +00:00
Oli Scherer
9b8e3eb8f7
Move around constants' Stable
impls a bit
2023-08-30 08:08:39 +00:00
Matthias Krüger
a51e8308c8
Rollup merge of #115300 - spastorino:smir-tweaks, r=oli-obk
...
Tweaks and improvements on SMIR around generics_of and predicates_of
r? `@oli-obk`
This allows an API like the following ...
```rust
let trait_decls = stable_mir::all_trait_decls().iter().map(|trait_def| {
let trait_decl = stable_mir::trait_decl(trait_def);
let generics = trait_decl.generics_of();
let predicates = trait_decl.predicates_of().predicates;
```
I didn't like that much `trait_def.trait_decl()` which is it possible but adding a method to a def_id that loads up a whole trait definition looks backwards to me.
2023-08-29 20:49:05 +02:00
ouz-a
c2fe0bf253
Create StableMir replacer for SMirCalls
2023-08-29 16:30:50 +03:00
Santiago Pastorino
5ab9616d03
Call these methods from high level stable_mir::trait_decl(trait_def) and so on
2023-08-29 08:34:34 -03:00
Santiago Pastorino
079e3732cc
Implement generics_of and predicates_of only for TraitDecl for now
2023-08-29 08:34:33 -03:00
Santiago Pastorino
0c301e9d36
Deduplicate GenericPredicates
2023-08-29 08:34:28 -03:00
Santiago Pastorino
17ffb59d39
Index def_ids directly
2023-08-29 08:34:27 -03:00
Santiago Pastorino
af6299a1f7
Add stable_mir::DefId as new type wrapper
2023-08-29 08:28:48 -03:00
Santiago Pastorino
e9710f1faa
Context::generics _of/predicates_of should receive stable_mir::DefId
2023-08-28 14:55:42 -03:00
Santiago Pastorino
7a653feffb
Remove stable_mir::generics_of/predicates_of those shouldn't be exposed
2023-08-28 14:55:08 -03:00
bors
c5035271ac
Auto merge of #115211 - spastorino:add-missing-smir-generics-of, r=compiler-errors
...
Add missing high-level stable_mir::generics_of fn
We forgot to add this function in https://github.com/rust-lang/rust/pull/115092 , as we have done on https://github.com/rust-lang/rust/pull/115084 and other high level APIs.
At some point I think we should re-organize the structure of the code but this is what we have for now.
r? `@compiler-errors`
Would have assigned `@oli-obk` but he is still on vacations
2023-08-26 00:32:16 +00:00
bors
734a0d0aa0
Auto merge of #115202 - ouz-a:more_smir, r=spastorino
...
Add stable for Constant in smir
Previously https://github.com/rust-lang/rust/pull/114587 we covered much of the groundwork needed to cover Const in smir, so there is no reason keep `Constant` as String.
r? `@spastorino`
2023-08-25 20:35:39 +00:00
Santiago Pastorino
3dd1c6bc98
Add missing high-level stable_mir::generics_of fn
2023-08-25 09:42:57 -03:00
bors
738df13e8a
Auto merge of #115093 - Zalathar:smir-coverage, r=cjgillot,oli-obk
...
Treat `StatementKind::Coverage` as completely opaque for SMIR purposes
Coverage statements in MIR are heavily tied to internal details of the coverage implementation that are likely to change, and are unlikely to be useful to third-party tools for the foreseeable future.
2023-08-25 11:43:05 +00:00
bors
b60f7b51a2
Auto merge of #115045 - RalfJung:unwind-terminate-reason, r=davidtwco
...
when terminating during unwinding, show the reason why
With this, the output on double-panic becomes something like that:
```
thread 'main' panicked at src/tools/miri/tests/fail/panic/double_panic.rs:15:5:
first
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at src/tools/miri/tests/fail/panic/double_panic.rs:10:9:
second
stack backtrace:
0: 0xbe273a - std::backtrace_rs::backtrace::miri::trace_unsynchronized::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:99:5
1: 0xbe22e6 - std::backtrace_rs::backtrace::miri::trace::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:62:14
2: 0xbe1086 - std::backtrace_rs::backtrace::trace_unsynchronized::<[closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
3: 0xba3afd - std::sys_common::backtrace::_print_fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:67:5
4: 0xba2471 - <std::sys_common::backtrace::_print::DisplayBacktrace as std::fmt::Display>::fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:44:22
5: 0xbcf754 - core::fmt::rt::Argument::<'_>::fmt
at /home/r/src/rust/rustc.3/library/core/src/fmt/rt.rs:138:9
6: 0x9b8f81 - std::fmt::write
at /home/r/src/rust/rustc.3/library/core/src/fmt/mod.rs:1094:17
7: 0x21391d - <std::sys::unix::stdio::Stderr as std::io::Write>::write_fmt
at /home/r/src/rust/rustc.3/library/std/src/io/mod.rs:1714:15
8: 0xba37b1 - std::sys_common::backtrace::_print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:47:5
9: 0xba365b - std::sys_common::backtrace::print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:34:9
10: 0x143c67 - std::panic_hook_with_disk_dump::{closure#1}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:278:22
11: 0x144187 - std::panic_hook_with_disk_dump
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:312:9
12: 0x143659 - std::panicking::default_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:239:5
13: 0x1482a7 - std::panicking::rust_panic_with_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:729:13
14: 0x1475d5 - std::rt::begin_panic::<&str>::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:650:9
15: 0xba496a - std::sys_common::backtrace::__rust_end_short_backtrace::<[closure@std::rt::begin_panic<&str>::{closure#0}], !>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:170:18
16: 0x147599 - std::rt::begin_panic::<&str>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:649:12
17: 0x31916 - <Foo as std::ops::Drop>::drop
at src/tools/miri/tests/fail/panic/double_panic.rs:10:9
18: 0x1a2b5e - std::ptr::drop_in_place::<Foo> - shim(Some(Foo))
at /home/r/src/rust/rustc.3/library/core/src/ptr/mod.rs:497:1
19: 0x202bf - main
at src/tools/miri/tests/fail/panic/double_panic.rs:16:1
20: 0xcc6a8 - <fn() as std::ops::FnOnce<()>>::call_once - shim(fn())
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:250:5
21: 0xba47d9 - std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:154:18
22: 0x141a6a - std::rt::lang_start::<()>::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:166:18
23: 0xcca18 - std::ops::function::impls::<impl std::ops::FnOnce<()> for &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>::call_once
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:284:13
24: 0x146469 - std::panicking::try::do_call::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
25: 0x145e09 - std::panicking::try::<i32, &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
26: 0x7b0ac - std::panic::catch_unwind::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
27: 0x14189b - std::rt::lang_start_internal::{closure#2}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:48
28: 0x146481 - std::panicking::try::do_call::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
29: 0x145e2c - std::panicking::try::<isize, [closure@std::rt::lang_start_internal::{closure#2}]>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
30: 0x7b0d5 - std::panic::catch_unwind::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
31: 0x1418b0 - std::rt::lang_start_internal
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:20
32: 0x141a97 - std::rt::lang_start::<()>
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:165:17
thread 'main' panicked at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:126:5:
panic in a destructor during cleanup
stack backtrace:
0: 0xe9f6d7 - std::backtrace_rs::backtrace::miri::trace_unsynchronized::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:99:5
1: 0xe9f27d - std::backtrace_rs::backtrace::miri::trace::<&mut [closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/miri.rs:62:14
2: 0xe9e016 - std::backtrace_rs::backtrace::trace_unsynchronized::<[closure@std::sys_common::backtrace::_print_fmt::{closure#1}]>
at /home/r/src/rust/rustc.3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
3: 0xba3afd - std::sys_common::backtrace::_print_fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:67:5
4: 0xba2471 - <std::sys_common::backtrace::_print::DisplayBacktrace as std::fmt::Display>::fmt
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:44:22
5: 0xbcf754 - core::fmt::rt::Argument::<'_>::fmt
at /home/r/src/rust/rustc.3/library/core/src/fmt/rt.rs:138:9
6: 0x9b8f81 - std::fmt::write
at /home/r/src/rust/rustc.3/library/core/src/fmt/mod.rs:1094:17
7: 0x4d0895 - <std::sys::unix::stdio::Stderr as std::io::Write>::write_fmt
at /home/r/src/rust/rustc.3/library/std/src/io/mod.rs:1714:15
8: 0xba37b1 - std::sys_common::backtrace::_print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:47:5
9: 0xba365b - std::sys_common::backtrace::print
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:34:9
10: 0x400bd4 - std::panic_hook_with_disk_dump::{closure#1}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:278:22
11: 0x144187 - std::panic_hook_with_disk_dump
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:312:9
12: 0x143659 - std::panicking::default_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:239:5
13: 0x1482a7 - std::panicking::rust_panic_with_hook
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:729:13
14: 0x40403b - std::panicking::begin_panic_handler::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:619:13
15: 0xe618b3 - std::sys_common::backtrace::__rust_end_short_backtrace::<[closure@std::panicking::begin_panic_handler::{closure#0}], !>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:170:18
16: 0x403fc8 - std::panicking::begin_panic_handler
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:617:5
17: 0xee23e9 - core::panicking::panic_nounwind_fmt
at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:96:14
18: 0xee29e6 - core::panicking::panic_nounwind
at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:126:5
19: 0xee365e - core::panicking::panic_in_cleanup
at /home/r/src/rust/rustc.3/library/core/src/panicking.rs:206:5
20: 0x2028a - main
at src/tools/miri/tests/fail/panic/double_panic.rs:13:1
21: 0x3895ee - <fn() as std::ops::FnOnce<()>>::call_once - shim(fn())
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:250:5
22: 0xe61725 - std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
at /home/r/src/rust/rustc.3/library/std/src/sys_common/backtrace.rs:154:18
23: 0x3fe9aa - std::rt::lang_start::<()>::{closure#0}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:166:18
24: 0x389962 - std::ops::function::impls::<impl std::ops::FnOnce<()> for &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>::call_once
at /home/r/src/rust/rustc.3/library/core/src/ops/function.rs:284:13
25: 0x4033b9 - std::panicking::try::do_call::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
26: 0x402d58 - std::panicking::try::<i32, &dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
27: 0x337ff7 - std::panic::catch_unwind::<&dyn std::ops::Fn() -> i32 + std::marker::Sync + std::panic::RefUnwindSafe, i32>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
28: 0x3fe7e7 - std::rt::lang_start_internal::{closure#2}
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:48
29: 0x4033d6 - std::panicking::try::do_call::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:524:40
30: 0x402d7f - std::panicking::try::<isize, [closure@std::rt::lang_start_internal::{closure#2}]>
at /home/r/src/rust/rustc.3/library/std/src/panicking.rs:488:19
31: 0x338028 - std::panic::catch_unwind::<[closure@std::rt::lang_start_internal::{closure#2}], isize>
at /home/r/src/rust/rustc.3/library/std/src/panic.rs:142:14
32: 0x1418b0 - std::rt::lang_start_internal
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:148:20
33: 0x3fe9dc - std::rt::lang_start::<()>
at /home/r/src/rust/rustc.3/library/std/src/rt.rs:165:17
thread caused non-unwinding panic. aborting.
```
If we also land https://github.com/rust-lang/rust/pull/115020 , the 2nd backtrace disappears, hopefully making the "panic in a destructor during cleanup" easier to see.
Fixes https://github.com/rust-lang/rust/issues/114954 .
2023-08-25 08:47:18 +00:00
ouz-a
cab9fc99c9
Add stable for Constant in smir
2023-08-25 09:25:57 +03:00
Ralf Jung
4c53783f3c
when terminating during unwinding, show the reason why
2023-08-24 13:28:26 +02:00
Eric Mark Martin
107cb5c904
predicates of
2023-08-23 11:47:13 -03:00
Eric Mark Martin
735e9c0c51
stable types for predicates
2023-08-23 10:43:10 -03:00
ouz-a
015b5cb306
add generics_of to smir
2023-08-22 21:47:46 +03:00
Zalathar
1fac8a0eab
Treat StatementKind::Coverage
as completely opaque for SMIR purposes
...
Coverage statements in MIR are heavily tied to internal details of the coverage
implementation that are likely to change, and are unlikely to be useful to
third-party tools for the foreseeable future.
2023-08-22 20:37:19 +10:00
Ralf Jung
44cc3105b1
stable_mir: docs clarification
2023-08-21 13:55:17 +02:00
Ralf Jung
818ec8e23a
give some unwind-related terminators a more clear name
2023-08-20 15:52:38 +02:00
Santiago Pastorino
66573b5781
Add missing Clone/Debug impls to SMIR Trait related tys
2023-08-16 13:10:52 -03:00
Matthias Krüger
b54fe76494
Rollup merge of #114859 - spastorino:add-smir-cx-trait-fns, r=compiler-errors
...
Add trait related queries to SMIR's rustc_internal
r? `@oli-obk`
2023-08-16 08:43:52 +02:00
bors
656ee47db3
Auto merge of #114689 - m-ou-se:stabilize-thread-local-cell-methods, r=thomcc
...
Stabilize thread local cell methods.
Closes #92122 .
2023-08-16 02:37:29 +00:00
Santiago Pastorino
826471e93b
Add trait related queries to SMIR's rustc_internal
2023-08-15 13:37:47 -03:00
Matthias Krüger
106d686e98
Rollup merge of #114745 - ouz-a:smir_const, r=spastorino
...
Make Const more useful in smir
Since https://github.com/rust-lang/rust/pull/114587 is merged, we can make use of what we built and make Const more useful by making it not `Opaque`
r? `@spastorino`
2023-08-14 21:57:51 +02:00
Matthias Krüger
1d0792bd80
Rollup merge of #114703 - ouz-a:smir_allocation, r=oli-obk
...
Cover ParamConst in smir
Others variants won't be useful for a while or ever(?), but we might need this one.
r? ````@oli-obk````
2023-08-12 12:06:37 +02:00
ouz-a
d5120d4a46
Make Const more useful in smir
2023-08-11 23:43:58 +03:00
ouz-a
c80281a861
cover ParamConst
2023-08-10 21:04:03 +03:00
Santiago Pastorino
5f0e662523
Add impl trait declarations to SMIR
2023-08-10 14:17:50 -03:00
Santiago Pastorino
8b29ad7215
Fix copy & paste doc error
2023-08-10 14:17:08 -03:00
Mara Bos
dc3cbc1e56
Stabilize thread local cell methods.
2023-08-10 17:33:40 +02:00
Matthias Krüger
bbc1109b79
Rollup merge of #114587 - ouz-a:smir_allocation, r=oli-obk
...
Convert Const to Allocation in smir
Continuation of previous pr https://github.com/rust-lang/rust/pull/114466
cc https://github.com/rust-lang/project-stable-mir/issues/15
r? `@oli-obk`
2023-08-09 23:00:00 +02:00
ouz-a
8f1ea576b7
only allocate bytes within AllocRange
2023-08-09 21:05:03 +03:00
ouz-a
c41339a52f
Convert Const to Allocation in smir
2023-08-09 15:00:00 +03:00
Seth Pellegrino
d88ab223c5
fix: add RiscvInterrupt* cconv to smir
...
These new interrupt calling conventions are not themselves stabilized,
but there are other unstable calling conventions present in the SMIR
mapping (e.g. AVR interrupts) and the mapping appears to be "complete"
so far, with no obvious way to represent unstable conventions separately
from the stable ones.
2023-08-08 18:09:56 -07:00
Santiago Pastorino
6e4d7bd90e
Add TraitDef::trait_decl method
2023-08-07 10:24:12 -03:00
Santiago Pastorino
0e69a8ad20
Add all_trait_decls to SMIR
2023-08-07 10:24:11 -03:00
Santiago Pastorino
496faa857c
Convert trait declaration to SMIR
2023-08-07 10:24:08 -03:00
Santiago Pastorino
4199a3c13a
Convert unsafety using the stable method and reuse mir::Safety
2023-08-07 10:23:20 -03:00
ouz-a
b9a539e0a3
Add alocation to smir
2023-08-06 15:06:04 +03:00
ouz-a
2ff62fdfcc
clean up, use opaque types
2023-08-01 17:48:20 +03:00
ouz-a
206bfc47ea
Cover statements for stable_mir
2023-08-01 12:57:13 +03:00
Matthias Krüger
35ba616850
Rollup merge of #114165 - ouz-a:smir1, r=spastorino
...
Add missing rvalues to smir
Added few missing rvalues to smir, not entirely confident about changes to `Aggregate`
cc https://github.com/rust-lang/project-stable-mir/issues/13
r? `@oli-obk`
2023-07-31 22:51:14 +02:00
ouz-a
2a3da87c0e
add missing rvalues to smir
2023-07-31 22:48:55 +03:00
Matthias Krüger
3ce90b1649
inline format!() args up to and including rustc_codegen_llvm
2023-07-30 14:22:50 +02:00
Matthias Krüger
17e4f80257
Rollup merge of #114082 - ericmarkmartin:smir-nullary-op, r=spastorino
...
add stable NullaryOp
r? `@spastorino`
2023-07-27 06:04:14 +02:00
Santiago Pastorino
7af1697138
Add Bound ty to SMIR
2023-07-26 09:26:39 -03:00
Santiago Pastorino
648cf070eb
Add Param ty to SMIR
2023-07-26 09:26:39 -03:00
Eric Mark Martin
933fc180bd
add stable NullaryOp
2023-07-26 00:22:38 -04:00
Eric Mark Martin
0a0ce4905d
factor out more stable impls
2023-07-25 00:49:49 -04:00
Eric Mark Martin
badb617eb5
Dynamic for smir
2023-07-24 00:17:45 -04:00
Eric Mark Martin
c2158a44e1
generic smir stable impl for Binder
2023-07-24 00:06:29 -04:00
Eric Mark Martin
aa33e8945c
add Alias for smir
2023-07-22 15:38:41 -04:00
Santiago Pastorino
634db101ec
Implement Stable for ty::Ty
2023-07-21 11:56:49 -03:00
Santiago Pastorino
17b8977f9b
Add FnPtr ty to SMIR
2023-07-20 23:18:40 -03:00
Santiago Pastorino
93bcc2ef98
Implement Stable for ty::GenericArgs
2023-07-20 23:18:33 -03:00
Santiago Pastorino
cbabd00c12
Add tables to Stable::stable
2023-07-20 22:20:53 -03:00
Santiago Pastorino
c5819b2b9b
Remove FIXMEs a lot of things need fixes
2023-07-19 11:05:21 -03:00