I pushed the following after some light testing: commit a072ef8748a65d286e9b542bb9ea6e020fdcc7f8 Author: Ilia Mirkin <imirkin@alum.mit.edu> Date: Thu Sep 10 01:54:30 2015 -0400 nv50/ir: make edge splitting fix up phi node sources But it's not the final word on this stuff... as Béla mentioned in comment 13, some games aren't completely fixed by this. I have some Hearthstone traces (from bug #75776) which still have minor visual artifacts. Further, they are fixed by splitting more edges. [I made the condition only look at p->cfg.outgoingCount() > 1, which includes a whole lot more than critical edges. This is clearly wrong, but... gives some ideas.]