I think this bug crept in only recently.
---
src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp
b/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp
index 56884e6..7a302da 100644
--- a/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp
+++ b/src/mesa/drivers/dri/i965/brw_dead_control_flow.cpp
@@ -103,6 +103,13 @@ dead_control_flow_eliminate(backend_visitor *v)
if (earlier_block && earlier_block->can_combine_with(later_block)) {
earlier_block->combine_with(later_block);
+ foreach_block (block, v->cfg) {
+ if (block->if_block == later_block)
+ block->if_block = earlier_block;
+ if (block->else_block == later_block)
+ block->else_block = earlier_block;
+ }
+
/* If ENDIF was in its own block, then we've now deleted it and
* merged the two surrounding blocks, the latter of which the
* __next block pointer was pointing to.
--
1.8.5.5
_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev