nv50/ir: make sure cfg iterator always hits all blocks
authorIlia Mirkin <imirkin@alum.mit.edu>
Fri, 19 Aug 2016 04:41:59 +0000 (00:41 -0400)
committerIlia Mirkin <imirkin@alum.mit.edu>
Tue, 23 Aug 2016 22:30:12 +0000 (18:30 -0400)
commit092f994a034b718f6170c631655ccaba8d2aa768
tree6ed4ee2a4ea9d4301419ec5055c899b4cea885a3
parent7bdccd104bf49861adfd891ea35884f2197e1c44
nv50/ir: make sure cfg iterator always hits all blocks

In some very specially-crafted cases, we could attempt to visit a node
that has already been visited, and then run out of bb's to visit, while
there were still cross blocks on the list. Make sure that those get
moved over in that case.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96274
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Cc: mesa-stable@lists.freedesktop.org
src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp