Improve DXIL ControlFlow detection of loop blocks

Now handles finding all loop blocks in a loop where a block (2) in the loop is only in a single path:

0 -> 1 -> 3 - 1
0 -> 1 -> 2 -> 3
3 -> 4 -> END
This commit is contained in:
Jake Turner
2024-12-30 11:54:09 +00:00
parent da9207bc13
commit 71b6ed09e5
@@ -130,8 +130,6 @@ int32_t ControlFlow::BlockInAnyPath(uint32_t block, uint32_t pathIdx, int32_t st
if(endNode == PATH_END)
return -1;
m_CheckedPaths[pathIdx] = true;
// Check any paths linked to by the end node of the current path
const rdcarray<uint32_t> &childPathsToCheck = m_BlockPathLinks.at(endNode);
for(uint32_t childPathIdx : childPathsToCheck)