Giacomo Pasini
c5d4e4d907
Remove DropAndReplace terminator
...
PR 107844 made DropAndReplace unused, let's remove it completely
from the codebase.
2023-03-07 14:25:22 +01:00
Camille Gillot
328696ca17
Update compiler/rustc_middle/src/mir/syntax.rs
...
Co-authored-by: Ralf Jung <post@ralfj.de>
2023-02-18 21:35:02 +00:00
Camille GILLOT
fb1f7f747a
Remove exception from MIR doc.
2023-02-18 21:35:02 +00:00
Camille GILLOT
1480b1c524
Correct comment.
2023-02-18 21:35:02 +00:00
Camille GILLOT
d0cc00f758
Add comment.
2023-02-18 21:35:02 +00:00
Camille GILLOT
0241c29123
Put a DefId in AggregateKind.
2023-02-02 23:09:51 +00:00
Bryan Garza
7618163a1c
Add comments and remove unnecessary code
2023-01-23 23:56:22 +00:00
Bryan Garza
360db516cc
Create stable metric to measure long computation in Const Eval
...
This patch adds a `MirPass` that tracks the number of back-edges and
function calls in the CFG, adds a new MIR instruction to increment a
counter every time they are encountered during Const Eval, and emit a
warning if a configured limit is breached.
2023-01-23 23:56:22 +00:00
Jakob Degen
ec3d993410
Add cycle checking to cleanup control flow validation
2023-01-16 14:51:33 -08:00
Jakob Degen
f49126e3d6
Document wf constraints on control flow in cleanup blocks
...
Also fixes a bug in dominator computation
2023-01-16 14:51:33 -08:00
bors
cca80b9a81
Auto merge of #103957 - JakobDegen:drop-retag, r=RalfJung
...
Retag as FnEntry on `drop_in_place`
This commit changes the mir drop shim to always retag its argument as if it were a `&mut`.
cc rust-lang/unsafe-code-guidelines#373
2022-12-22 17:48:43 +00:00
Jakob Degen
0229281d03
Don't run Drop
terminators on types that do not have drop glue in const eval
2022-12-21 16:15:56 -08:00
Jakob Degen
7c4c620475
Forbid RetagKind::TwoPhase
as well
2022-12-21 11:46:13 -08:00
Jakob Degen
cb2c7bb833
Clarify that raw retags are not permitted in Mir
2022-12-21 10:32:01 -08:00
Rémy Rakic
8275d115fb
Revert "Auto merge of #103880 - b-naber:field-ty-mir, r=lcnr"
...
This reverts commit 03770f0e2b
, reversing
changes made to 01ef4b21dc
.
2022-12-19 15:31:20 +00:00
bors
03770f0e2b
Auto merge of #103880 - b-naber:field-ty-mir, r=lcnr
...
Use non-ascribed type as field's type in mir
Fixes https://github.com/rust-lang/rust/issues/96514
r? `@lcnr`
2022-12-16 12:47:49 +00:00
b-naber
ff41359e65
address review
2022-12-14 21:32:42 +01:00
Jakob Degen
9fb8da8f8f
Remove unneeded field from SwitchTargets
2022-12-09 04:53:10 -08:00
Matthias Krüger
04dac4285a
Rollup merge of #105455 - lcnr:correct-reveal-in-validate, r=jackh726
...
use the correct `Reveal` during validation
supersedes #105454 . Deals with https://github.com/rust-lang/rust/issues/105009#issuecomment-1342395333 , not closing #105009 as the ICE may leak into beta
The issue was the following:
- we optimize the mir, using `Reveal::All`
- some optimization relies on the hidden type of an opaque type
- we then validate using `Reveal::UserFacing` again which is not able to observe the hidden type
r? `@jackh726`
2022-12-09 07:25:47 +01:00
lcnr
dd9d05cec4
validate: use the correct reveal during opts
2022-12-08 11:24:25 +01:00
Ralf Jung
9397ea1368
make retagging work even with 'unstable' places
2022-12-06 10:33:34 +01:00
Oli Scherer
c2166ec628
Don't go through the formatting infrastructure just to get the name of a phase
2022-12-01 08:31:54 +00:00
kadmin
f9750c1554
Add empty ConstKind::Abstract
...
Initial pass at expr/abstract const/s
Address comments
Switch to using a list instead of &[ty::Const], rm `AbstractConst`
Remove try_unify_abstract_consts
Update comments
Add edits
Recurse more
More edits
Prevent equating associated consts
Move failing test to ui
Changes this test from incremental to ui, and mark it as failing and a known bug.
Does not cause the compiler to ICE, so should be ok.
2022-11-25 09:28:43 +00:00
b-naber
9061ffba8c
use no type in ProjectionElem::Field for PlaceBuilder::UpVar
2022-11-23 21:25:27 +01:00
cui fliter
442f848d74
fix some typos in comments
...
Signed-off-by: cui fliter <imcusg@gmail.com>
2022-11-13 15:26:17 +08:00
Nilstrieb
7bfef19844
Use tidy-alphabetical
in the compiler
2022-10-12 17:49:10 +05:30
ouz-a
d59c7ff000
Remove mir::CastKind::Misc
2022-10-06 15:32:41 +03:00
Pietro Albini
3975d55d98
remove cfg(bootstrap)
2022-09-26 10:14:45 +02:00
Michael Howell
0d2e57cb04
Rollup merge of #101976 - RalfJung:mir-semantic-phases, r=oli-obk
...
MirPhase: clarify that linting is not a semantic change
r? ```@JakobDegen```
2022-09-20 10:12:58 -07:00
Ralf Jung
eed6fdb0eb
clarify that linting is not a semantic change
2022-09-18 14:14:42 +02:00
Oli Scherer
40e2de8c41
Revert "Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank""
...
This reverts commit 4a742a691e
.
2022-09-16 11:36:39 +00:00
Oli Scherer
a5ab8da1e2
derive TypeVisitable and TypeFoldable for mir types
2022-09-15 14:42:43 +00:00
Oli Scherer
d376012a43
Derive TypeFoldable and TypeVisitable for mir::PlaceElement
2022-09-15 13:43:44 +00:00
Eric Holk
549c105bb3
dyn* through more typechecking and MIR
2022-09-12 16:55:56 -07:00
Dylan DPC
720a82dd52
Rollup merge of #101545 - TaKO8Ki:remove-unnecessary-partialord-ord, r=oli-obk
...
Remove unnecessary `PartialOrd` and `Ord`
2022-09-08 20:48:38 +05:30
Takayuki Maeda
bdc865d8f7
remove unnecessary PartialOrd
and Ord
2022-09-08 06:15:33 +09:00
Michael Benfield
d7a750b504
Use niche-filling optimization even when multiple variants have data.
...
Fixes #46213
2022-09-07 20:12:45 +00:00
Oli Scherer
7348284073
Update docs
2022-09-06 14:18:32 +00:00
Oli Scherer
b7413511dc
Generalize the Assume intrinsic statement to a general Intrinsic statement
2022-09-06 14:18:32 +00:00
Oli Scherer
3f07645120
Lower the assume intrinsic to a MIR statement
2022-09-06 14:18:32 +00:00
Dezhi Wu
b1430fb7ca
Fix a bunch of typo
...
This PR will fix some typos detected by [typos].
I only picked the ones I was sure were spelling errors to fix, mostly in
the comments.
[typos]: https://github.com/crate-ci/typos
2022-08-31 18:24:55 +08:00
Jakob Degen
aad14c701e
Refactor MIR phases
2022-08-30 01:40:14 -07:00
Matthias Krüger
e6bb00fff5
Rollup merge of #100003 - nnethercote:improve-size-assertions, r=lqd
...
Improve size assertions.
- For any file with four or more size assertions, move them into a
separate module (as is already done for `hir.rs`).
- Add some more for AST nodes and THIR nodes.
- Put the `hir.rs` ones in alphabetical order.
r? `@lqd`
2022-08-01 16:49:33 +02:00
Nicholas Nethercote
9037ebba0c
Improve size assertions.
...
- For any file with four or more size assertions, move them into a
separate module (as is already done for `hir.rs`).
- Add some more for AST nodes and THIR nodes.
- Put the `hir.rs` ones in alphabetical order.
2022-08-01 09:15:05 +10:00
Cameron Steffen
cf2433a74f
Use LocalDefId for closures more
2022-07-30 15:59:17 -05:00
Oli Scherer
4a742a691e
Revert "Rollup merge of #98582 - oli-obk:unconstrained_opaque_type, r=estebank"
...
This reverts commit 6f8fb911ad
, reversing
changes made to 7210e46dc6
.
2022-07-20 07:55:58 +00:00
Oli Scherer
84a444a1f4
Introduce opaque type to hidden type projection
2022-07-15 15:49:22 +00:00
ouz-a
cb0017f2f8
add new rval, pull deref early
2022-07-12 14:26:41 +03:00
Jakob Degen
4939f6c64b
Clarify MIR semantics of storage statements
2022-07-08 16:58:24 -07:00
Guillaume Gomez
4b88cba353
Rollup merge of #98984 - pierwill:patch-4, r=RalfJung
...
Remove erroneous doc comment
Fixes the formatting issue shown here:
<img width="803" alt="Screen Shot 2022-07-06 at 12 50 56 PM" src="https://user-images.githubusercontent.com/19642016/177612734-2d881c6a-2850-4c1b-8f1a-08339ad5bfbc.png ">
2022-07-06 20:43:29 +02:00