Guillaume Gomez
100713ef08
Rollup merge of #116560 - ouz-a:efficient_ids, r=oli-obk
...
In smir use `FxIndexMap` to store indexed ids
Previously we used `vec` for storing indexed types, which is fine for small cases but will lead to huge performance issues when we use `smir` for real world cases.
Addresses https://github.com/rust-lang/project-stable-mir/issues/35
r? ``@oli-obk``
2023-10-10 18:44:46 +02:00
Oğuz Ağcayazı
0bcb058fb1
add new wrapper for FxIndexMap
2023-10-10 13:18:31 +03:00
Oğuz Ağcayazı
77df2cd9a5
spans are now indexmapped
2023-10-09 13:03:58 +03:00
Oğuz Ağcayazı
5f079dd2ff
alloc id is indexmapped
2023-10-09 12:58:41 +03:00
Oğuz Ağcayazı
0f27c1b5b5
defids are indexmapped
2023-10-09 12:56:14 +03:00
Oğuz Ağcayazı
4ff6e87a8c
return crates instead of a crate
2023-10-09 10:33:23 +03:00
Michael Howell
c6e6ecb1af
rustdoc: remove rust logo from non-Rust crates
2023-10-08 20:17:53 -07:00
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
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