Out of 243 examples (these are the interesting ones having names starting with "SpvParserCFGTest"), the 9 cases below are deemed infeasible.
Blocks not structurally-reachable. This, this, this and this have blocks which are structurally unreachable.
This and this one is rejected due to the constraint MultipleOutedges which says that "if a non-header block 'b' has multiple successors then 'b' must be a break block or a continue one".....Later we augmented the rule to: "A non-header block B can have 2 successors, C and D, if at least one of the edges B->C and B->D is an exit edge."
Here, here and here there are two backedges branching to a loop header.
Out of 243 examples (these are the interesting ones having names starting with "SpvParserCFGTest"), the 9 cases below are deemed infeasible.
Blocks not structurally-reachable. This, this, this and this have blocks which are structurally unreachable.![jump (0)](https://user-images.githubusercontent.com/60270973/134250025-d3e44887-5b2c-4754-b579-1a958783e3c2.png)
This and this one is rejected due to the constraint MultipleOutedges which says that "if a non-header block 'b' has multiple successors then 'b' must be a break block or a continue one".....Later we augmented the rule to: "A non-header block B can have 2 successors, C and D, if at least one of the edges B->C and B->D is an exit edge."![Pasted Graphic 5](https://user-images.githubusercontent.com/60270973/134250890-64e51f4f-f645-4f03-a3b9-440552368255.png)
Here, here and here there are two backedges branching to a loop header.![LoopHeader](https://user-images.githubusercontent.com/60270973/134251605-b6573e7e-428a-4ebd-b24d-f805d3338a42.png)