OSDN Git Service

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)
committerEmil Velikov <emil.l.velikov@gmail.com>
Thu, 1 Sep 2016 10:39:45 +0000 (11:39 +0100)
commit61a6d84679f696ec787aefba43f77aadd8baac9f
treea802d18b013bb007c6505580af709c71f9d40b5b
parentfabc5c2783d4fa5b2d08c873057ba8d4ef798caf
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
(cherry picked from commit 092f994a034b718f6170c631655ccaba8d2aa768)
src/gallium/drivers/nouveau/codegen/nv50_ir_graph.cpp