mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-22 17:50:12 +01:00
r600/sfn: Work around dependency issue when splitting op to group
The instruction that is split may still be referenced as extra dependency in other instructions, so add a handle to the instruction that it can be set to be scheduled. Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21357>
This commit is contained in:
parent
8b5d41cacb
commit
ac6b95d40b
3 changed files with 6 additions and 0 deletions
|
|
@ -809,6 +809,7 @@ AluInstr::split(ValueFactory& vf)
|
||||||
r->del_use(this);
|
r->del_use(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
group->set_origin(this);
|
||||||
|
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -314,6 +314,8 @@ AluGroup::set_scheduled()
|
||||||
if (m_slots[i])
|
if (m_slots[i])
|
||||||
m_slots[i]->set_scheduled();
|
m_slots[i]->set_scheduled();
|
||||||
}
|
}
|
||||||
|
if (m_origin)
|
||||||
|
m_origin->set_scheduled();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -91,6 +91,8 @@ public:
|
||||||
bool addr_for_src() const { return m_addr_for_src; }
|
bool addr_for_src() const { return m_addr_for_src; }
|
||||||
bool has_kill_op() const { return m_has_kill_op; }
|
bool has_kill_op() const { return m_has_kill_op; }
|
||||||
|
|
||||||
|
void set_origin(AluInstr *o) { m_origin = o;}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void forward_set_blockid(int id, int index) override;
|
void forward_set_blockid(int id, int index) override;
|
||||||
bool do_ready() const override;
|
bool do_ready() const override;
|
||||||
|
|
@ -115,6 +117,7 @@ private:
|
||||||
bool m_addr_is_index{false};
|
bool m_addr_is_index{false};
|
||||||
bool m_addr_for_src{false};
|
bool m_addr_for_src{false};
|
||||||
bool m_has_kill_op{false};
|
bool m_has_kill_op{false};
|
||||||
|
AluInstr *m_origin{nullptr};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace r600
|
} // namespace r600
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue