Add missing use_srcloc in postopt and regalloc passes
This commit is contained in:
committed by
Benjamin Bouvier
parent
b7dfe8aaa6
commit
5e12f4f2b8
@@ -128,6 +128,7 @@ fn optimize_cpu_flags(
|
||||
// We found a compare+branch pattern. Transform it to use flags.
|
||||
let args = info.args.as_slice(&pos.func.dfg.value_lists)[1..].to_vec();
|
||||
pos.goto_inst(info.cmp_inst);
|
||||
pos.use_srcloc(info.cmp_inst);
|
||||
match info.kind {
|
||||
CmpBrKind::Icmp { mut cond, arg } => {
|
||||
let flags = pos.ins().ifcmp(info.cmp_arg, arg);
|
||||
|
||||
@@ -292,6 +292,9 @@ impl<'a> Context<'a> {
|
||||
|
||||
// Insert a copy instruction at the top of `ebb`.
|
||||
let mut pos = EncCursor::new(self.func, self.isa).at_first_inst(ebb);
|
||||
if let Some(inst) = pos.current_inst() {
|
||||
pos.use_srcloc(inst);
|
||||
}
|
||||
pos.ins().with_result(param).copy(new_val);
|
||||
let inst = pos.built_inst();
|
||||
self.liveness.move_def_locally(param, inst);
|
||||
@@ -347,6 +350,7 @@ impl<'a> Context<'a> {
|
||||
pred_val: Value,
|
||||
) -> Value {
|
||||
let mut pos = EncCursor::new(self.func, self.isa).at_inst(pred_inst);
|
||||
pos.use_srcloc(pred_inst);
|
||||
let copy = pos.ins().copy(pred_val);
|
||||
let inst = pos.built_inst();
|
||||
|
||||
|
||||
@@ -420,6 +420,7 @@ impl<'a> Context<'a> {
|
||||
// secondary `opidx` key makes it possible to use an unstable (non-allocating) sort.
|
||||
self.reg_uses.sort_unstable_by_key(|u| (u.value, u.opidx));
|
||||
|
||||
self.cur.use_srcloc(inst);
|
||||
for i in 0..self.reg_uses.len() {
|
||||
let ru = self.reg_uses[i];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user