r600/sfn: don't track address registers in live ranges
There is only one address register, and for the index registers we don't do a special register allocation, so no need to track these either. Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21347>
This commit is contained in:
@@ -429,9 +429,14 @@ LiveRangeInstrVisitor::visit(UNUSED LDSReadInstr *instr)
|
||||
void
|
||||
LiveRangeInstrVisitor::record_write(const Register *reg)
|
||||
{
|
||||
if (reg->has_flag(Register::addr_or_idx))
|
||||
return;
|
||||
|
||||
auto addr = reg->get_addr();
|
||||
if (addr && addr->as_register()) {
|
||||
record_read(addr->as_register(), LiveRangeEntry::use_unspecified);
|
||||
if (addr) {
|
||||
|
||||
if (addr->as_register() && !addr->as_register()->has_flag(Register::addr_or_idx))
|
||||
record_read(addr->as_register(), LiveRangeEntry::use_unspecified);
|
||||
|
||||
const auto av = static_cast<const LocalArrayValue *>(reg);
|
||||
auto& array = av->array();
|
||||
@@ -455,12 +460,15 @@ LiveRangeInstrVisitor::record_read(const Register *reg, LiveRangeEntry::EUse use
|
||||
if (!reg)
|
||||
return;
|
||||
|
||||
auto addr = reg->get_addr();
|
||||
if (addr && addr->as_register()) {
|
||||
sfn_log << SfnLog::merge << "Record reading address register " << *addr << "\n";
|
||||
if (reg->has_flag(Register::addr_or_idx))
|
||||
return;
|
||||
|
||||
auto& ra = m_register_access(*addr->as_register());
|
||||
ra.record_read(m_line, m_current_scope, use);
|
||||
auto addr = reg->get_addr();
|
||||
if (addr) {
|
||||
if (addr->as_register() && !addr->as_register()->has_flag(Register::addr_or_idx)) {
|
||||
auto& ra = m_register_access(*addr->as_register());
|
||||
ra.record_read(m_line, m_current_scope, use);
|
||||
}
|
||||
|
||||
const auto av = static_cast<const LocalArrayValue *>(reg);
|
||||
auto& array = av->array();
|
||||
|
||||
Reference in New Issue
Block a user