remove redundant imports
detects redundant imports that can be eliminated. for #117772 : In order to facilitate review and modification, split the checking code and removing redundant imports code into two PR.
This commit is contained in:
parent
8cd8d31369
commit
40ae34194c
283 changed files with 140 additions and 510 deletions
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_ast::InlineAsmOptions;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::layout;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_index::{Idx, IndexVec};
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
|
|
|
@ -2,7 +2,6 @@ use rustc_middle::mir::*;
|
|||
use rustc_middle::ty::TyCtxt;
|
||||
|
||||
use crate::util;
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::patch::MirPatch;
|
||||
|
||||
/// This pass moves values being dropped that are within a packed
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
//! of MIR building, and only after this pass we think of the program has having the
|
||||
//! normal MIR semantics.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::{self, Ty, TyCtxt};
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_index::IndexVec;
|
||||
use rustc_middle::mir::patch::MirPatch;
|
||||
use rustc_middle::mir::visit::MutVisitor;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_hir::lang_items::LangItem;
|
||||
use rustc_index::IndexVec;
|
||||
use rustc_middle::mir::*;
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
//! }
|
||||
//! ```
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
use rustc_middle::{mir::visit::Visitor, ty::ParamEnv};
|
||||
|
|
|
@ -19,7 +19,6 @@ use rustc_target::abi::{self, HasDataLayout, Size, TargetDataLayout};
|
|||
use rustc_target::spec::abi::Abi as CallAbi;
|
||||
|
||||
use crate::dataflow_const_prop::Patch;
|
||||
use crate::MirPass;
|
||||
use rustc_const_eval::interpret::{
|
||||
self, compile_time_machine, AllocId, ConstAllocation, FnArg, Frame, ImmTy, Immediate, InterpCx,
|
||||
InterpResult, MemoryKind, OpTy, PlaceTy, Pointer, Scalar, StackPopCleanup,
|
||||
|
|
|
@ -6,7 +6,6 @@ use rustc_middle::ty::TyCtxt;
|
|||
use rustc_mir_dataflow::impls::borrowed_locals;
|
||||
|
||||
use crate::ssa::SsaLocals;
|
||||
use crate::MirPass;
|
||||
|
||||
/// Unify locals that copy each other.
|
||||
///
|
||||
|
|
|
@ -55,7 +55,6 @@ use crate::deref_separator::deref_finder;
|
|||
use crate::errors;
|
||||
use crate::pass_manager as pm;
|
||||
use crate::simplify;
|
||||
use crate::MirPass;
|
||||
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
|
||||
use rustc_errors::pluralize;
|
||||
use rustc_hir as hir;
|
||||
|
@ -63,7 +62,6 @@ use rustc_hir::lang_items::LangItem;
|
|||
use rustc_hir::CoroutineKind;
|
||||
use rustc_index::bit_set::{BitMatrix, BitSet, GrowableBitSet};
|
||||
use rustc_index::{Idx, IndexVec};
|
||||
use rustc_middle::mir::dump_mir;
|
||||
use rustc_middle::mir::visit::{MutVisitor, PlaceContext, Visitor};
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::CoroutineArgs;
|
||||
|
@ -73,7 +71,7 @@ use rustc_mir_dataflow::impls::{
|
|||
MaybeBorrowedLocals, MaybeLiveLocals, MaybeRequiresStorage, MaybeStorageLive,
|
||||
};
|
||||
use rustc_mir_dataflow::storage::always_storage_live_locals;
|
||||
use rustc_mir_dataflow::{self, Analysis};
|
||||
use rustc_mir_dataflow::Analysis;
|
||||
use rustc_span::def_id::{DefId, LocalDefId};
|
||||
use rustc_span::symbol::sym;
|
||||
use rustc_span::Span;
|
||||
|
|
|
@ -2,9 +2,9 @@ use super::*;
|
|||
|
||||
use rustc_data_structures::captures::Captures;
|
||||
use rustc_middle::mir::coverage::*;
|
||||
use rustc_middle::mir::{Body, Coverage, CoverageIdsInfo};
|
||||
use rustc_middle::mir::{Body, CoverageIdsInfo};
|
||||
use rustc_middle::query::Providers;
|
||||
use rustc_middle::ty::{self, TyCtxt};
|
||||
use rustc_middle::ty::{self};
|
||||
|
||||
/// A `query` provider for retrieving coverage information injected into MIR.
|
||||
pub(crate) fn provide(providers: &mut Providers) {
|
||||
|
|
|
@ -33,7 +33,7 @@ use rustc_data_structures::graph::WithSuccessors;
|
|||
use rustc_index::{Idx, IndexVec};
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty;
|
||||
use rustc_span::{self, BytePos, Pos, Span, DUMMY_SP};
|
||||
use rustc_span::{BytePos, Pos, Span, DUMMY_SP};
|
||||
|
||||
fn bcb(index: u32) -> BasicCoverageBlock {
|
||||
BasicCoverageBlock::from_u32(index)
|
||||
|
|
|
@ -20,7 +20,6 @@ use rustc_span::DUMMY_SP;
|
|||
use rustc_target::abi::{Abi, FieldIdx, Size, VariantIdx, FIRST_VARIANT};
|
||||
|
||||
use crate::const_prop::throw_machine_stop_str;
|
||||
use crate::MirPass;
|
||||
|
||||
// These constants are somewhat random guesses and have not been optimized.
|
||||
// If `tcx.sess.mir_opt_level() >= 4`, we ignore the limits (this can become very expensive).
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
|
||||
use std::{collections::hash_map::Entry, hash::Hash, hash::Hasher, iter};
|
||||
|
||||
use crate::MirPass;
|
||||
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_middle::mir::visit::MutVisitor;
|
||||
use rustc_middle::mir::*;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_index::IndexVec;
|
||||
use rustc_middle::mir::patch::MirPatch;
|
||||
use rustc_middle::mir::visit::NonUseContext::VarDebugInfo;
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
//!
|
||||
//! Box is not actually a pointer so it is incorrect to dereference it directly.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_hir::def_id::DefId;
|
||||
use rustc_index::Idx;
|
||||
use rustc_middle::mir::patch::MirPatch;
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
use crate::deref_separator::deref_finder;
|
||||
use crate::MirPass;
|
||||
use rustc_index::bit_set::BitSet;
|
||||
use rustc_index::IndexVec;
|
||||
use rustc_middle::mir::patch::MirPatch;
|
||||
|
|
|
@ -103,7 +103,6 @@ use std::borrow::Cow;
|
|||
|
||||
use crate::dataflow_const_prop::DummyMachine;
|
||||
use crate::ssa::{AssignedValue, SsaLocals};
|
||||
use crate::MirPass;
|
||||
use either::Either;
|
||||
|
||||
pub struct GVN;
|
||||
|
|
|
@ -17,7 +17,6 @@ use rustc_target::spec::abi::Abi;
|
|||
use crate::cost_checker::CostChecker;
|
||||
use crate::simplify::{remove_dead_blocks, CfgSimplifier};
|
||||
use crate::util;
|
||||
use crate::MirPass;
|
||||
use std::iter;
|
||||
use std::ops::{Range, RangeFrom};
|
||||
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
//! Performs various peephole optimizations.
|
||||
|
||||
use crate::simplify::simplify_duplicate_switch_targets;
|
||||
use crate::MirPass;
|
||||
use rustc_hir::Mutability;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::layout::ValidityRequirement;
|
||||
use rustc_middle::ty::{self, GenericArgsRef, ParamEnv, Ty, TyCtxt};
|
||||
|
|
|
@ -45,7 +45,6 @@ use rustc_middle::ty::{self, ScalarInt, Ty, TyCtxt};
|
|||
use rustc_mir_dataflow::value_analysis::{Map, PlaceIndex, State, TrackElem};
|
||||
|
||||
use crate::cost_checker::CostChecker;
|
||||
use crate::MirPass;
|
||||
|
||||
pub struct JumpThreading;
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
use crate::rustc_middle::ty::util::IntTypeExt;
|
||||
use crate::MirPass;
|
||||
use rustc_data_structures::fx::FxHashMap;
|
||||
use rustc_middle::mir::interpret::AllocId;
|
||||
use rustc_middle::mir::*;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//! Lowers intrinsic calls
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::{self, TyCtxt};
|
||||
use rustc_span::symbol::sym;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
//! This pass lowers calls to core::slice::len to just Len op.
|
||||
//! It should run before inlining!
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_hir::def_id::DefId;
|
||||
use rustc_index::IndexSlice;
|
||||
use rustc_middle::mir::*;
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
use std::iter;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
//! This pass removes jumps to basic blocks containing only a return, and replaces them with a
|
||||
//! return instead.
|
||||
|
||||
use crate::{simplify, MirPass};
|
||||
use crate::simplify;
|
||||
use rustc_index::bit_set::BitSet;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
//! is taken using `.len()` method. Handy to preserve information in MIR for const prop
|
||||
|
||||
use crate::ssa::SsaLocals;
|
||||
use crate::MirPass;
|
||||
use rustc_index::IndexVec;
|
||||
use rustc_middle::mir::visit::*;
|
||||
use rustc_middle::mir::*;
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
//! (`-Zmir-enable-passes=+ReorderBasicBlocks,+ReorderLocals`)
|
||||
//! to make the MIR easier to read for humans.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_index::{bit_set::BitSet, IndexSlice, IndexVec};
|
||||
use rustc_middle::mir::visit::{MutVisitor, PlaceContext, Visitor};
|
||||
use rustc_middle::mir::*;
|
||||
|
|
|
@ -9,7 +9,6 @@ use rustc_mir_dataflow::storage::always_storage_live_locals;
|
|||
use rustc_mir_dataflow::Analysis;
|
||||
|
||||
use crate::ssa::{SsaLocals, StorageLiveLocals};
|
||||
use crate::MirPass;
|
||||
|
||||
/// Propagate references using SSA analysis.
|
||||
///
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_index::bit_set::BitSet;
|
||||
use rustc_middle::mir::patch::MirPatch;
|
||||
use rustc_middle::mir::*;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//! This pass removes `PlaceMention` statement, which has no effect at codegen.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//! This pass removes storage markers if they won't be emitted during codegen.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
|
||||
|
|
|
@ -4,9 +4,7 @@ use rustc_middle::ty::GenericArgsRef;
|
|||
use rustc_middle::ty::{self, ParamEnv, Ty, TyCtxt, VariantDef};
|
||||
use rustc_mir_dataflow::impls::MaybeInitializedPlaces;
|
||||
use rustc_mir_dataflow::move_paths::{LookupResult, MoveData, MovePathIndex};
|
||||
use rustc_mir_dataflow::{
|
||||
self, move_path_children_matching, Analysis, MaybeReachable, MoveDataParamEnv,
|
||||
};
|
||||
use rustc_mir_dataflow::{move_path_children_matching, Analysis, MaybeReachable, MoveDataParamEnv};
|
||||
use rustc_target::abi::FieldIdx;
|
||||
|
||||
use crate::MirPass;
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
//! useful because (unlike MIR building) it runs after type checking, so it can make use of
|
||||
//! `Reveal::All` to provide more precise type information.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//! Removes operations on ZST places, and convert ZST operands to constants.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::visit::*;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::{self, Ty, TyCtxt};
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
//! Normalizes MIR in RevealAll mode.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::visit::*;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::{self, Ty, TyCtxt};
|
||||
|
|
|
@ -37,7 +37,6 @@
|
|||
//! simplicity rather than completeness (it notably
|
||||
//! sometimes duplicates abusively).
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
use smallvec::SmallVec;
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
//! naively generate still contains the `_a = ()` write in the unreachable block "after" the
|
||||
//! return.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_data_structures::fx::FxIndexSet;
|
||||
use rustc_index::{Idx, IndexSlice, IndexVec};
|
||||
use rustc_middle::mir::visit::{MutVisitor, MutatingUseContext, PlaceContext, Visitor};
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_middle::mir::*;
|
||||
use rustc_middle::ty::TyCtxt;
|
||||
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
use crate::MirPass;
|
||||
use rustc_data_structures::flat_map_in_place::FlatMapInPlace;
|
||||
use rustc_index::bit_set::{BitSet, GrowableBitSet};
|
||||
use rustc_index::IndexVec;
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
//! when all of their successors are unreachable. This is achieved through a
|
||||
//! post-order traversal of the blocks.
|
||||
|
||||
use crate::MirPass;
|
||||
use rustc_data_structures::fx::FxHashSet;
|
||||
use rustc_middle::mir::interpret::Scalar;
|
||||
use rustc_middle::mir::patch::MirPatch;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue