-- If pattern -- // block A if (check == 10) { atob(); // block B btoc(); } else { atoc(); } // block C -- If-else pattern -- // block A if (check == 15) { // block B } else { // block C } // block D -- Loop + tail pattern -- while(1) { // block A var check = maybe(); // block B if (!(check == 41)) { break; } } // block C -- Loop with phi to head // code 1 var $i_0 = 0;var $x_0 = 5; while(1) { // code 2 if (!($2)) { var $x_1 = $x_0; label = 18; break; } // code 3 if ($6) { break; } else { var $i_0 = $7;var $x_0 = $5; } } if (label == 18) { // code 7 } // code 4 if ($10) { // code 5 } // code 6 var $x_1 = $13; // code 7 -- phi on split dead ends -- // block A................................................................................................... if (chak()) { atob(); // block B................................................................................................... btod(); // block D } else { atoc(); // block C................................................................................................... ctod2(); // block D } -- Unbalanced with a dead end -- // block A if (!(check == 10)) { return C; } while(1) { // block B // block D } -- if (expensive || expensive2) X else Y; Z -- // block A do { if (expensive()) { label = 33; } else { // block B if (expensive2()) { label = 33; break; } // block D break; } } while(0); if (label == 33) { // block C; } while(1) { // block E // block F }