aco: ignore blocked registers when checking edges in get_reg_impl()
authorRhys Perry <pendingchaos02@gmail.com>
Wed, 24 Jun 2020 12:23:12 +0000 (13:23 +0100)
committerMarge Bot <eric+marge@anholt.net>
Wed, 24 Jun 2020 20:38:35 +0000 (20:38 +0000)
commit7cad27831d27b668f592a7b8fb2b09b6f443cd8f
treeca82b36cba804bfcb99e57d42dce9dc66caf0295
parent91a82d006966d5e98feceebd962873b851a6ced1
aco: ignore blocked registers when checking edges in get_reg_impl()

If the only two registers available are consecutive and used by killed
operands, both of them will be blocked and fail the edge check.

Totals from 903 (0.66% of 135946) affected shaders:
VGPRs: 30892 -> 30884 (-0.03%)
CodeSize: 1584468 -> 1584044 (-0.03%); split: -0.05%, +0.02%
MaxWaves: 14374 -> 14378 (+0.03%)
Instrs: 306482 -> 306399 (-0.03%); split: -0.06%, +0.03%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5626>
src/amd/compiler/aco_register_allocation.cpp