r300/compiler: Don't track readers into an IF block.
authorTom Stellard <tstellar@gmail.com>
Tue, 2 Nov 2010 05:06:20 +0000 (22:06 -0700)
committerTom Stellard <tstellar@gmail.com>
Tue, 2 Nov 2010 05:06:20 +0000 (22:06 -0700)
This makes rc_get_readers_normal() more conservative than it needs to be,
but it fixes some incorrect behavior in the optimization passes.

src/mesa/drivers/dri/r300/compiler/radeon_dataflow.c

index 5927498818b08be780a9551626c8e41aee129135..885e227e7949ef46252b4373232557bdee228e3d 100644 (file)
@@ -624,6 +624,9 @@ void  rc_get_readers_normal(
                        data->Abort = 1;
                        return;
                case RC_OPCODE_IF:
+                       /* XXX We can do better here, but this will have to
+                        * do until this dataflow analysis is more mature. */
+                       data->Abort = 1;
                        branch_depth++;
                        break;
                case RC_OPCODE_ELSE: