Module: Mesa
Branch: master
Commit: 5a3c1f4f0bfbcc9ea1900891435c28df73b5afa8
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5a3c1f4f0bfbcc9ea1900891435c28df73b5afa8

Author: Daniel Schürmann <[email protected]>
Date:   Tue Apr 14 12:15:56 2020 +0100

aco: stop get_reg_simple after reaching max_used_gpr

Reviewed-by: Rhys Perry <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>

---

 src/amd/compiler/aco_register_allocation.cpp | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/amd/compiler/aco_register_allocation.cpp 
b/src/amd/compiler/aco_register_allocation.cpp
index 11b54ba8339..9a36019ff37 100644
--- a/src/amd/compiler/aco_register_allocation.cpp
+++ b/src/amd/compiler/aco_register_allocation.cpp
@@ -408,10 +408,16 @@ std::pair<PhysReg, bool> get_reg_simple(ra_ctx& ctx,
       unsigned last_pos = 0xFFFF;
 
       for (unsigned current_reg = lb; current_reg < ub; current_reg++) {
+
          if (reg_file[current_reg] == 0 && !ctx.war_hint[current_reg]) {
             if (last_pos == 0xFFFF)
                last_pos = current_reg;
-            continue;
+
+            /* stop searching after max_used_gpr */
+            if (current_reg == ctx.max_used_sgpr + 1 || current_reg == 256 + 
ctx.max_used_vgpr + 1)
+               break;
+            else
+               continue;
          }
 
          if (last_pos == 0xFFFF)

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to