Nicholas Nethercote
e7dabc9f87
Remove unnecessary pub
.
2023-10-06 14:59:11 +11:00
Nicholas Nethercote
093b435b78
Remove unneeded features.
2023-10-06 14:58:01 +11:00
Nicholas Nethercote
4b51a3eb52
Remove unneeded dependency.
...
Also sort them.
2023-10-06 14:57:25 +11:00
Oğuz Ağcayazı
a49138e46e
impl stable for kinds
2023-10-05 11:15:34 +03:00
ouz-a
a79567b01c
add span to statements
2023-10-05 11:15:34 +03:00
ouz-a
999a354a81
add span to terminator
2023-09-30 16:52:10 +03:00
ouz-a
9130484db9
create localdecl and add span to it
2023-09-30 16:40:15 +03:00
ouz-a
34f10e2ab9
remove unimplemented
2023-09-28 19:52:41 +03:00
ouz-a
bb17fe8bf5
add real folder to Region
2023-09-28 12:32:15 +03:00
ouz-a
da2f897e59
remove un-needed variants
2023-09-28 11:43:21 +03:00
ouz-a
2069e8c218
fix imports
2023-09-28 11:36:53 +03:00
ouz-a
5dc2214884
add stable for RegionKind
2023-09-28 11:19:51 +03:00
ouz-a
e49aa04000
add RegionDef
2023-09-28 11:19:51 +03:00
Oli Scherer
411e431c70
Rebase fallout
2023-09-25 15:02:10 +00:00
Oli Scherer
a38e98371b
Split out the stable part of smir into its own crate to prevent accidental usage of forever unstable things
2023-09-25 14:38:27 +00:00
Oli Scherer
19f1d782d5
Move Opaque
to stable_mir
2023-09-25 14:38:27 +00:00
Oli Scherer
33998a9751
Fix test by adding a stable way to get an opaque DefKind
2023-09-25 14:38:27 +00:00
Oli Scherer
55b6f64902
Eliminate escape hatch
2023-09-25 14:38:26 +00:00
Oli Scherer
e02a139a23
Eliminate with_tables
helper
2023-09-25 14:38:26 +00:00
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