aad4f15506c2b5ff9f3304a467b51b45dd77554d is the first bad commit commit aad4f15506c2b5ff9f3304a467b51b45dd77554d Author: Jason Ekstrand <jason.ekstrand@intel.com> Date: Wed Aug 31 14:45:08 2016 -0700 nir: Remove fake edges in the CF handling code When NIR was first introduced, Connor added this fake-edge hack to work around issues related to unreachable blocks. Thanks to GLSL IR's jump lowering code, the only unreachable code you can have is a block after an infinite loop. With SPIR-V, we didn't have the jump lowering code so we could also end up with the "if (...) { break; } else { continue; }" case which generates an unreachable block after the if. Because of this, most of NIR had to be fixed up for handling unreachable blocks. The only remaining case of not handling unreachable blocks was specifically the block-after-infinite-loop case in dead_cf which was fixed by the previous commit. We can now delete the fake edge hack. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Connor Abbott <cwabbott0@gmail.com> :040000 040000 b084afb90cdcfa37be94c6b8edeab3fea8076faf d3ed6d3db2f7e9b62b8f4da952e0e768cb6f8856 M src bisect run success
Thanks for the bug report. I sent a patch to the list to fix it.
Fix just landed in master: commit 821e36638531ddadb32d5bac633c0b21c73bea67 Author: Jason Ekstrand <jason.ekstrand@intel.com> Date: Sat Sep 3 11:57:05 2016 -0700 nir/tests: Update the CF tests to not assume fake edges In aad4f1550, we removed the concept of "fake" edges from NIR. Now, if you have a block at the end of an infinite loop it really has no predecessors. This updates the unit tests to match. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97587 Tested-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.