Rollup merge of #52799 - Mark-Simulacrum:attr-id-bitvecs, r=michaelwoerister
Use BitVector for global sets of AttrId
This commit is contained in:
commit
42243f82f4
17 changed files with 138 additions and 130 deletions
|
|
@ -21,7 +21,7 @@ use libc::c_uint;
|
|||
|
||||
use syntax_pos::Pos;
|
||||
|
||||
use rustc_data_structures::bitvec::BitVector;
|
||||
use rustc_data_structures::bitvec::BitArray;
|
||||
use rustc_data_structures::indexed_vec::{Idx, IndexVec};
|
||||
|
||||
use syntax_pos::BytePos;
|
||||
|
|
@ -64,7 +64,7 @@ pub fn create_mir_scopes(
|
|||
};
|
||||
|
||||
// Find all the scopes with variables defined in them.
|
||||
let mut has_variables = BitVector::new(mir.source_scopes.len());
|
||||
let mut has_variables = BitArray::new(mir.source_scopes.len());
|
||||
for var in mir.vars_iter() {
|
||||
let decl = &mir.local_decls[var];
|
||||
has_variables.insert(decl.visibility_scope);
|
||||
|
|
@ -81,7 +81,7 @@ pub fn create_mir_scopes(
|
|||
|
||||
fn make_mir_scope(cx: &CodegenCx<'ll, '_>,
|
||||
mir: &Mir,
|
||||
has_variables: &BitVector<SourceScope>,
|
||||
has_variables: &BitArray<SourceScope>,
|
||||
debug_context: &FunctionDebugContextData<'ll>,
|
||||
scope: SourceScope,
|
||||
scopes: &mut IndexVec<SourceScope, MirDebugScope<'ll>>) {
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
//! An analysis to determine which locals require allocas and
|
||||
//! which do not.
|
||||
|
||||
use rustc_data_structures::bitvec::BitVector;
|
||||
use rustc_data_structures::bitvec::BitArray;
|
||||
use rustc_data_structures::graph::dominators::Dominators;
|
||||
use rustc_data_structures::indexed_vec::{Idx, IndexVec};
|
||||
use rustc::mir::{self, Location, TerminatorKind};
|
||||
|
|
@ -22,7 +22,7 @@ use rustc::ty::layout::LayoutOf;
|
|||
use type_of::LayoutLlvmExt;
|
||||
use super::FunctionCx;
|
||||
|
||||
pub fn non_ssa_locals(fx: &FunctionCx<'a, 'll, 'tcx>) -> BitVector<mir::Local> {
|
||||
pub fn non_ssa_locals(fx: &FunctionCx<'a, 'll, 'tcx>) -> BitArray<mir::Local> {
|
||||
let mir = fx.mir;
|
||||
let mut analyzer = LocalAnalyzer::new(fx);
|
||||
|
||||
|
|
@ -54,7 +54,7 @@ pub fn non_ssa_locals(fx: &FunctionCx<'a, 'll, 'tcx>) -> BitVector<mir::Local> {
|
|||
struct LocalAnalyzer<'mir, 'a: 'mir, 'll: 'a, 'tcx: 'll> {
|
||||
fx: &'mir FunctionCx<'a, 'll, 'tcx>,
|
||||
dominators: Dominators<mir::BasicBlock>,
|
||||
non_ssa_locals: BitVector<mir::Local>,
|
||||
non_ssa_locals: BitArray<mir::Local>,
|
||||
// The location of the first visited direct assignment to each
|
||||
// local, or an invalid location (out of bounds `block` index).
|
||||
first_assignment: IndexVec<mir::Local, Location>
|
||||
|
|
@ -67,7 +67,7 @@ impl LocalAnalyzer<'mir, 'a, 'll, 'tcx> {
|
|||
let mut analyzer = LocalAnalyzer {
|
||||
fx,
|
||||
dominators: fx.mir.dominators(),
|
||||
non_ssa_locals: BitVector::new(fx.mir.local_decls.len()),
|
||||
non_ssa_locals: BitArray::new(fx.mir.local_decls.len()),
|
||||
first_assignment: IndexVec::from_elem(invalid_location, &fx.mir.local_decls)
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ use syntax::symbol::keywords;
|
|||
|
||||
use std::iter;
|
||||
|
||||
use rustc_data_structures::bitvec::BitVector;
|
||||
use rustc_data_structures::bitvec::BitArray;
|
||||
use rustc_data_structures::indexed_vec::{IndexVec, Idx};
|
||||
|
||||
pub use self::constant::codegen_static_initializer;
|
||||
|
|
@ -323,7 +323,7 @@ pub fn codegen_mir(
|
|||
debuginfo::start_emitting_source_locations(&fx.debug_context);
|
||||
|
||||
let rpo = traversal::reverse_postorder(&mir);
|
||||
let mut visited = BitVector::new(mir.basic_blocks().len());
|
||||
let mut visited = BitArray::new(mir.basic_blocks().len());
|
||||
|
||||
// Codegen the body of each block using reverse postorder
|
||||
for (bb, _) in rpo {
|
||||
|
|
@ -417,7 +417,7 @@ fn arg_local_refs(
|
|||
bx: &Builder<'a, 'll, 'tcx>,
|
||||
fx: &FunctionCx<'a, 'll, 'tcx>,
|
||||
scopes: &IndexVec<mir::SourceScope, debuginfo::MirDebugScope<'ll>>,
|
||||
memory_locals: &BitVector<mir::Local>,
|
||||
memory_locals: &BitArray<mir::Local>,
|
||||
) -> Vec<LocalRef<'ll, 'tcx>> {
|
||||
let mir = fx.mir;
|
||||
let tcx = bx.tcx();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue