Dylan MacKenzie
58c996c3a7
Move post-elaboration const-checking earlier in the pipeline
...
Instead we run `RemoveFalseEdges` and `RemoveUninitDrops` at the
appropriate time. The extra `SimplifyCfg` avoids visiting unreachable
blocks during `RemoveUninitDrops`.
2021-11-30 17:25:30 -08:00
Dylan MacKenzie
4f7605b6fd
Add RemoveUninitDrops
MIR pass
2021-11-30 17:25:30 -08:00
Dylan MacKenzie
bb27b05104
Separate RemoveFalseEdges
from SimplifyBranches
...
Otherwise dataflow state will propagate along false edges and cause
things to be marked as maybe init unnecessarily. These should be
separate, since `SimplifyBranches` also makes `if true {} else {}` into
a `goto`, which means we wouldn't lint anything in the `else` block.
2021-11-30 17:14:48 -08:00
Dylan MacKenzie
188d670125
Don't re-export MirPass
2021-11-29 12:58:15 -08:00
Mark Rousskov
3215eeb99f
Revert "Add rustc lint, warning when iterating over hashmaps"
2021-10-28 11:01:42 -04:00
bors
235d9853d8
Auto merge of #90042 - pietroalbini:1.56-master, r=Mark-Simulacrum
...
Bump bootstrap compiler to 1.57
Fixes https://github.com/rust-lang/rust/issues/90152
r? `@Mark-Simulacrum`
2021-10-25 11:31:47 +00:00
bors
00d5e42e77
Auto merge of #90235 - matthiaskrgr:rollup-7pqtevk, r=matthiaskrgr
...
Rollup of 6 pull requests
Successful merges:
- #89558 (Add rustc lint, warning when iterating over hashmaps)
- #90100 (Skip documentation for tier 2 targets on dist-x86_64-apple-darwin)
- #90155 (Fix alignment of method headings for scannability)
- #90162 (Mark `{array, slice}::{from_ref, from_mut}` as const fn)
- #90221 (Fix ICE when forgetting to `Box` a parameter to a `Self::func` call)
- #90234 (Temporarily turn overflow checks off for rustc-rayon-core)
Failed merges:
r? `@ghost`
`@rustbot` modify labels: rollup
2021-10-24 14:12:10 +00:00
Matthias Krüger
87822b27ee
Rollup merge of #89558 - lcnr:query-stable-lint, r=estebank
...
Add rustc lint, warning when iterating over hashmaps
r? rust-lang/wg-incr-comp
2021-10-24 15:48:42 +02:00
bors
ed08a67566
Auto merge of #85254 - cjgillot:reveal-mir, r=lcnr
...
Normalize MIR with RevealAll before optimizations.
Fixes #78442
2021-10-24 11:04:54 +00:00
Pietro Albini
b63ab8005a
update cfg(bootstrap)
2021-10-23 21:55:57 -04:00
bors
01198792a6
Auto merge of #89893 - camsteffen:redundant-dump-enabled, r=matthewjasper
...
Remove redundant dump_enabled check
2021-10-22 17:32:20 +00:00
Yuki Okushi
afdd0c3ade
Rollup merge of #90071 - cjgillot:no-blocks, r=oli-obk
...
Remove hir::map::blocks and use FnKind instead
The principal tool is `FnLikeNode`, which is not often used and can be easily implemented using `rustc_hir::intravisit::FnKind`.
2021-10-21 14:11:08 +09:00
Camille GILLOT
6e98688e68
Replace FnLikeNode by FnKind.
2021-10-19 23:31:51 +02:00
Camille GILLOT
2fa9b11804
Normalize MIR with RevealAll before optimizations.
2021-10-17 14:57:57 +02:00
est31
1418df5888
Adopt let_else across the compiler
...
This performs a substitution of code following the pattern:
let <id> = if let <pat> = ... { identity } else { ... : ! };
To simplify it to:
let <pat> = ... { identity } else { ... : ! };
By adopting the let_else feature.
2021-10-16 07:18:05 +02:00
lcnr
00e5abe9b6
allow potential_query_instability
everywhere
2021-10-15 10:58:18 +02:00
Cameron Steffen
7166df4b59
Inline on_mir_pass and add inline to dump_mir
2021-10-14 15:26:59 -05:00
Alexander
94e1413f60
reset and cleanup
2021-10-06 17:31:35 +02:00
Jacob Pratt
bce8621983
Stabilize const_panic
2021-10-04 02:33:33 -04:00
Camille GILLOT
abc57f63ad
Move body_owners to tcx.hir().
2021-09-29 23:16:48 +02:00
Camille GILLOT
db9fea508a
Avoid more invocations of hir_crate query.
2021-09-29 23:16:47 +02:00
Will Crichton
4fd39dd8a6
Make rustc_mir_dataflow::framework::graphviz and rustc_mir_transform::MirPass public
2021-09-15 11:41:37 -07:00
Manish Goregaokar
f5ac5cadd3
Rollup merge of #88709 - BoxyUwU:thir-abstract-const, r=lcnr
...
generic_const_exprs: use thir for abstract consts instead of mir
Changes `AbstractConst` building to use `thir` instead of `mir` so that there's less chance of consts unifying when they shouldn't because lowering to mir dropped information (see `abstract-consts-as-cast-5.rs` test)
r? `@lcnr`
2021-09-12 03:44:56 -07:00
Mark Rousskov
b4e7649d6d
Bump stage0 compiler to 1.56
2021-09-08 20:51:05 -04:00
Ellen
406d2ab95d
rename mir -> thir around abstract consts
2021-09-09 01:32:03 +01:00
Camille GILLOT
924dbc36c9
Rebase fallout.
2021-09-08 20:40:30 +02:00
Camille GILLOT
c5fc2609f0
Rename rustc_mir to rustc_const_eval.
2021-09-07 20:46:26 +02:00
Camille GILLOT
fd9c04fe32
Move the dataflow framework to its own crate.
2021-09-07 19:57:07 +02:00
Camille GILLOT
bba4be681d
Move rustc_mir::transform to rustc_mir_transform.
2021-09-07 00:43:14 +02:00