Remove support for adding statement to all successors
This feature of MIR patch system is no longer used.
This commit is contained in:
parent
625af2cc75
commit
c2b74f9cc7
1 changed files with 0 additions and 17 deletions
|
@ -150,7 +150,6 @@ impl<'tcx> MirPatch<'tcx> {
|
||||||
|
|
||||||
let mut delta = 0;
|
let mut delta = 0;
|
||||||
let mut last_bb = START_BLOCK;
|
let mut last_bb = START_BLOCK;
|
||||||
let mut stmts_and_targets: Vec<(Statement<'_>, BasicBlock)> = Vec::new();
|
|
||||||
for (mut loc, stmt) in new_statements {
|
for (mut loc, stmt) in new_statements {
|
||||||
if loc.block != last_bb {
|
if loc.block != last_bb {
|
||||||
delta = 0;
|
delta = 0;
|
||||||
|
@ -159,27 +158,11 @@ impl<'tcx> MirPatch<'tcx> {
|
||||||
debug!("MirPatch: adding statement {:?} at loc {:?}+{}", stmt, loc, delta);
|
debug!("MirPatch: adding statement {:?} at loc {:?}+{}", stmt, loc, delta);
|
||||||
loc.statement_index += delta;
|
loc.statement_index += delta;
|
||||||
let source_info = Self::source_info_for_index(&body[loc.block], loc);
|
let source_info = Self::source_info_for_index(&body[loc.block], loc);
|
||||||
|
|
||||||
// For mir-opt `Derefer` to work in all cases we need to
|
|
||||||
// get terminator's targets and apply the statement to all of them.
|
|
||||||
if loc.statement_index > body[loc.block].statements.len() {
|
|
||||||
let term = body[loc.block].terminator();
|
|
||||||
for i in term.successors() {
|
|
||||||
stmts_and_targets.push((Statement { source_info, kind: stmt.clone() }, i));
|
|
||||||
}
|
|
||||||
delta += 1;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
body[loc.block]
|
body[loc.block]
|
||||||
.statements
|
.statements
|
||||||
.insert(loc.statement_index, Statement { source_info, kind: stmt });
|
.insert(loc.statement_index, Statement { source_info, kind: stmt });
|
||||||
delta += 1;
|
delta += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (stmt, target) in stmts_and_targets.into_iter().rev() {
|
|
||||||
body[target].statements.insert(0, stmt);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn source_info_for_index(data: &BasicBlockData<'_>, loc: Location) -> SourceInfo {
|
pub fn source_info_for_index(data: &BasicBlockData<'_>, loc: Location) -> SourceInfo {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue