All: While/For ( condition1) { Some code here. If(condition2 ) continue; Some code here. }
Fig(1) For the above loop in Fig(1) there will be two backedges and multiple latches. The below code can be transformed to the below in order to have a single backedge. While/For (condition1) { Some code here. If( condition2) Goto latch; Some code here. Latch: } Fig(2). With the transformation shown in Fig(2) the presence of GoTo inside loops affect and disables many optimizations. To enable the loops in Fig(1) can also be transformed to multiple loops with each backedge that will make the affected optimizations enabled and the transformed Multiple loops will enable many optimizations that are disabled with the presence of GoTo in Fig(2) and multiple latches given in Fig(1). Thoughts? Thanks & Regards Ajit