Mesa (staging/20.1): aco: fix register allocation for subdword instructions on GFX10

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jun 1 16:45:52 UTC 2020


Module: Mesa
Branch: staging/20.1
Commit: 768f98ef7b98efede686afbb80ce375922035829
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=768f98ef7b98efede686afbb80ce375922035829

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Fri May 29 10:02:39 2020 +0200

aco: fix register allocation for subdword instructions on GFX10

Cc: 20.1 <mesa-stable at lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Daniel Schürmann <daniel at schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5148>
(cherry picked from commit 75a730ced59701201ef4247cbe2189a9be6a9d18)

---

 .pick_status.json                            | 2 +-
 src/amd/compiler/aco_register_allocation.cpp | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 127c6e84ee4..991e940af8d 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -679,7 +679,7 @@
         "description": "aco: fix register allocation for subdword instructions on GFX10",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": null
     },
diff --git a/src/amd/compiler/aco_register_allocation.cpp b/src/amd/compiler/aco_register_allocation.cpp
index 8d6971e1c4d..dfa70c624c1 100644
--- a/src/amd/compiler/aco_register_allocation.cpp
+++ b/src/amd/compiler/aco_register_allocation.cpp
@@ -1861,10 +1861,8 @@ void register_allocation(Program *program, std::vector<TempSet>& live_out_per_bl
 
             if (!definition.isFixed()) {
                Temp tmp = definition.getTemp();
-               /* subdword instructions before RDNA write full registers */
                if (tmp.regClass().is_subdword() &&
-                   !instr_can_access_subdword(instr) &&
-                   ctx.program->chip_class <= GFX9) {
+                   !instr_can_access_subdword(instr)) {
                   assert(tmp.bytes() <= 4);
                   tmp = Temp(definition.tempId(), v1);
                }



More information about the mesa-commit mailing list