Mesa (staging/22.1): ac/nir: Do not set cursor in try_extract_additions

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue May 3 16:42:44 UTC 2022


Module: Mesa
Branch: staging/22.1
Commit: bedc452f8b6d41c37a8fa401dbb84e3c14a2eb25
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bedc452f8b6d41c37a8fa401dbb84e3c14a2eb25

Author: Konstantin Seurer <konstantin.seurer at gmail.com>
Date:   Mon May  2 09:33:45 2022 +0200

ac/nir: Do not set cursor in try_extract_additions

Fixes: 61ac5ac ("radv,ac/nir: lower global access to _amd global access intrinsics")
Signed-off-by: Konstantin Seurer <konstantin.seurer at gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16270>
(cherry picked from commit d639608b8bff266f8340105b1a7c50c4f1f605ed)

---

 .pick_status.json                           | 2 +-
 src/amd/common/ac_nir_lower_global_access.c | 4 +---
 2 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 48c10ef1c09..036b0226072 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -238,7 +238,7 @@
         "description": "ac/nir: Do not set cursor in try_extract_additions",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": "61ac5acca3b58ea4ebac45d1aa0732ae9c6517d5"
     },
diff --git a/src/amd/common/ac_nir_lower_global_access.c b/src/amd/common/ac_nir_lower_global_access.c
index 1249dd3ba1b..4ef6aeb4ed0 100644
--- a/src/amd/common/ac_nir_lower_global_access.c
+++ b/src/amd/common/ac_nir_lower_global_access.c
@@ -37,8 +37,6 @@ try_extract_additions(nir_builder *b, nir_ssa_scalar scalar, uint64_t *out_const
    nir_ssa_scalar src0 = nir_ssa_scalar_chase_alu_src(scalar, 0);
    nir_ssa_scalar src1 = nir_ssa_scalar_chase_alu_src(scalar, 1);
 
-   b->cursor = nir_before_instr(&alu->instr);
-
    for (unsigned i = 0; i < 2; ++i) {
       nir_ssa_scalar src = i ? src1 : src0;
       if (nir_ssa_scalar_is_const(src)) {
@@ -64,7 +62,6 @@ try_extract_additions(nir_builder *b, nir_ssa_scalar scalar, uint64_t *out_const
    if (!replace_src0 && !replace_src1)
       return NULL;
 
-   b->cursor = nir_before_instr(&alu->instr);
    replace_src0 = replace_src0 ? replace_src0 : nir_channel(b, src0.def, src0.comp);
    replace_src1 = replace_src1 ? replace_src1 : nir_channel(b, src1.def, src1.comp);
    return nir_iadd(b, replace_src0, replace_src1);
@@ -139,6 +136,7 @@ process_instr(nir_builder *b, nir_instr *instr, void *_)
    uint64_t off_const = 0;
    nir_ssa_def *offset = NULL;
    nir_ssa_scalar src = {addr_src->ssa, 0};
+   b->cursor = nir_after_instr(addr_src->ssa->parent_instr);
    nir_ssa_def *addr = try_extract_additions(b, src, &off_const, &offset);
    addr = addr ? addr : addr_src->ssa;
 



More information about the mesa-commit mailing list