https://bugs.freedesktop.org/show_bug.cgi?id=90887 --- Comment #36 from jr --- Created attachment 117865 --> https://bugs.freedesktop.org/attachment.cgi?id=117865&action=edit Edge type fix for prototype patch With this patch on top of the prototype patch edge splitting during PhiMovesPass should no longer change non forward edges to forward. I think with current master this isn't a problem, because the split edge will always be a forward edge, but this still isn't a valid assumption. After adding the following patch the fs-critical-edge test shows that edge splitting now preserves the edge type. This patch should also solve the 'all incoming edges are forward edges' problem that may be the cause of the missing blocks. diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp index f153674..753bcbf 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp @@ -2838,7 +2838,7 @@ Converter::handleInstruction(const struct tgsi_full_instruction *insn) } if (prevBB->getExit()->op == OP_BRA) { - prevBB->cfg.attach(&convBB->cfg, Graph::Edge::FORWARD); + prevBB->cfg.attach(&convBB->cfg, Graph::Edge::TREE); prevBB->getExit()->asFlow()->target.bb = convBB; } setPosition(convBB, true); -- You are receiving this mail because: You are the QA Contact for the bug. You are the assignee for the bug.