With the patch, it could be fixed a conformance issue in my side.

-----Original Message-----
From: Beignet [mailto:[email protected]] On Behalf Of 
Zhigang Gong
Sent: Tuesday, October 20, 2015 4:07 PM
To: [email protected]
Cc: Gong, Zhigang
Subject: [Beignet] [PATCH] GBE: fix a regression bug at post phi copy 
optimization.

Forgot to handle the undefined phi value set of BBs when we replace registers. 
This information will be used at next round DAG generation.

Signed-off-by: Zhigang Gong <[email protected]>
---
 backend/src/ir/liveness.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/backend/src/ir/liveness.cpp b/backend/src/ir/liveness.cpp index 
414bf42..d48f067 100644
--- a/backend/src/ir/liveness.cpp
+++ b/backend/src/ir/liveness.cpp
@@ -82,6 +82,8 @@ namespace ir {
         if (info.liveOut.contains(from)) {
           info.liveOut.erase(from);
           info.liveOut.insert(to);
+          // FIXME, a hack method to avoid the "to" register be treated as
+          // uniform value.
           bb->definedPhiRegs.insert(to);
         }
         if (info.upwardUsed.contains(from)) { @@ -92,6 +94,10 @@ namespace ir {
           info.varKill.erase(from);
           info.varKill.insert(to);
         }
+        if (bb->undefPhiRegs.contains(from)) {
+          bb->undefPhiRegs.erase(from);
+          bb->undefPhiRegs.insert(to);
+        }
       }
     }
   }
--
1.9.1

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to