brw: add infra to make use of the address register in the IR
This limits the address register to simple cases inside a block. Validation ensures that the address register is only written once and read once. Instruction scheduling makes sure that instructions using the address register in the generator are not scheduled while there is an usage of the register in the IR. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Caio Oliveira <caio.oliveira@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28199>
This commit is contained in:
committed by
Marge Bot
parent
c9fa235c28
commit
0a5bdf1199
@@ -263,6 +263,19 @@ brw_reg::is_accumulator() const
|
||||
return file == ARF && (nr & 0xF0) == BRW_ARF_ACCUMULATOR;
|
||||
}
|
||||
|
||||
bool
|
||||
brw_reg::is_address() const
|
||||
{
|
||||
return file == ADDRESS;
|
||||
}
|
||||
|
||||
unsigned
|
||||
brw_reg::address_slot(unsigned byte_offset) const
|
||||
{
|
||||
assert(is_address());
|
||||
return (reg_offset(*this) + byte_offset) / 2;
|
||||
}
|
||||
|
||||
bool
|
||||
brw_reg::equals(const brw_reg &r) const
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user