Skip to content

Commit 28b75a3

Browse files
committed
Move MirPatch from rustc_middle to rustc_mir_transform.
Because it's only used in `rustc_mir_transform`. (Presumably it is currently in `rustc_middle` because lots of other MIR-related stuff is, but that's not a hard requirement.) And because `rustc_middle` is huge and it's always good to make it smaller.
1 parent 46c7236 commit 28b75a3

17 files changed

+43
-42
lines changed

compiler/rustc_middle/src/mir/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ pub mod generic_graphviz;
4949
pub mod graphviz;
5050
pub mod interpret;
5151
pub mod mono;
52-
pub mod patch;
5352
pub mod pretty;
5453
mod query;
5554
mod statement;

compiler/rustc_mir_transform/src/add_moves_for_packed_drops.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
use rustc_middle::mir::patch::MirPatch;
21
use rustc_middle::mir::*;
32
use rustc_middle::ty::{self, TyCtxt};
43
use tracing::debug;
54

5+
use crate::patch::MirPatch;
66
use crate::util;
77

88
/// This pass moves values being dropped that are within a packed

compiler/rustc_mir_transform/src/add_subtyping_projections.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
use rustc_middle::mir::patch::MirPatch;
21
use rustc_middle::mir::visit::MutVisitor;
32
use rustc_middle::mir::*;
43
use rustc_middle::ty::TyCtxt;
54

5+
use crate::patch::MirPatch;
6+
67
pub(super) struct Subtyper;
78

89
struct SubTypeChecker<'a, 'tcx> {

compiler/rustc_mir_transform/src/coroutine.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,9 +1061,8 @@ fn insert_switch<'tcx>(
10611061
}
10621062

10631063
fn elaborate_coroutine_drops<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) {
1064-
use rustc_middle::mir::patch::MirPatch;
1065-
10661064
use crate::elaborate_drop::{Unwind, elaborate_drop};
1065+
use crate::patch::MirPatch;
10671066
use crate::shim::DropShimElaborator;
10681067

10691068
// Note that `elaborate_drops` only drops the upvars of a coroutine, and

compiler/rustc_mir_transform/src/deref_separator.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
use rustc_middle::mir::patch::MirPatch;
21
use rustc_middle::mir::visit::NonUseContext::VarDebugInfo;
32
use rustc_middle::mir::visit::{MutVisitor, PlaceContext};
43
use rustc_middle::mir::*;
54
use rustc_middle::ty::TyCtxt;
65

6+
use crate::patch::MirPatch;
7+
78
pub(super) struct Derefer;
89

910
struct DerefChecker<'a, 'tcx> {

compiler/rustc_mir_transform/src/early_otherwise_branch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use std::fmt::Debug;
22

3-
use rustc_middle::mir::patch::MirPatch;
43
use rustc_middle::mir::*;
54
use rustc_middle::ty::{Ty, TyCtxt};
65
use tracing::trace;
76

87
use super::simplify::simplify_cfg;
8+
use crate::patch::MirPatch;
99

1010
/// This pass optimizes something like
1111
/// ```ignore (syntax-highlighting-only)

compiler/rustc_mir_transform/src/elaborate_box_derefs.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@
44
55
use rustc_abi::FieldIdx;
66
use rustc_hir::def_id::DefId;
7-
use rustc_middle::mir::patch::MirPatch;
87
use rustc_middle::mir::visit::MutVisitor;
98
use rustc_middle::mir::*;
109
use rustc_middle::span_bug;
1110
use rustc_middle::ty::{Ty, TyCtxt};
1211

12+
use crate::patch::MirPatch;
13+
1314
/// Constructs the types used when accessing a Box's pointer
1415
fn build_ptr_tys<'tcx>(
1516
tcx: TyCtxt<'tcx>,

compiler/rustc_mir_transform/src/elaborate_drop.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::{fmt, iter, mem};
33
use rustc_abi::{FIRST_VARIANT, FieldIdx, VariantIdx};
44
use rustc_hir::lang_items::LangItem;
55
use rustc_index::Idx;
6-
use rustc_middle::mir::patch::MirPatch;
76
use rustc_middle::mir::*;
87
use rustc_middle::span_bug;
98
use rustc_middle::ty::adjustment::PointerCoercion;
@@ -13,6 +12,8 @@ use rustc_span::DUMMY_SP;
1312
use rustc_span::source_map::Spanned;
1413
use tracing::{debug, instrument};
1514

15+
use crate::patch::MirPatch;
16+
1617
/// Describes how/if a value should be dropped.
1718
#[derive(Debug)]
1819
pub(crate) enum DropStyle {

compiler/rustc_mir_transform/src/elaborate_drops.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use std::fmt;
33
use rustc_abi::{FieldIdx, VariantIdx};
44
use rustc_index::IndexVec;
55
use rustc_index::bit_set::DenseBitSet;
6-
use rustc_middle::mir::patch::MirPatch;
76
use rustc_middle::mir::*;
87
use rustc_middle::ty::{self, TyCtxt};
98
use rustc_mir_dataflow::impls::{MaybeInitializedPlaces, MaybeUninitializedPlaces};
@@ -17,6 +16,7 @@ use tracing::{debug, instrument};
1716

1817
use crate::deref_separator::deref_finder;
1918
use crate::elaborate_drop::{DropElaborator, DropFlagMode, DropStyle, Unwind, elaborate_drop};
19+
use crate::patch::MirPatch;
2020

2121
/// During MIR building, Drop terminators are inserted in every place where a drop may occur.
2222
/// However, in this phase, the presence of these terminators does not guarantee that a destructor

compiler/rustc_mir_transform/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ mod errors;
5454
mod ffi_unwind_calls;
5555
mod lint;
5656
mod lint_tail_expr_drop_order;
57+
mod patch;
5758
mod shim;
5859
mod ssa;
5960

0 commit comments

Comments
 (0)