<div dir="ltr">Hi,<div><br></div><div>The function <font face="monospace">getInductionVariable</font> mandates the loop to be in "SimplifyForm".</div><div><font face="monospace"><br></font></div><div><font face="monospace">Loop::getInductionVariable(ScalarEvolution &SE) {</font></div><div><span style="color:rgb(0,0,0)"><font face="monospace">  if (!isLoopSimplifyForm())</font></span></div><div><font color="#000000" face="monospace">    return nullptr;</font></div><div><font face="monospace">  ...</font></div><div><font face="monospace">  ...</font></div><div><font face="monospace">}</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">bool Loop::isLoopSimplifyForm() {</font></div><div><font face="monospace">   return getLoopPreheader() && getLoopLatch() && hasDedicatedExits();<br></font></div><div><font face="monospace">}</font></div><div><span style="font-family:monospace"><br></span></div><div><span style="font-family:monospace">/// Return true if no exit block for the loop has a predecessor that is</span><br></div><div><font face="monospace">/// outside the loop.<br>bool hasDedicatedExits() const;<br></font><div><br></div><div>Is it necessary for the loop to have <b>DedicatedExists </b>to find the induction variable?</div><div>Can this condition be relaxed?</div><div><div><br></div>-- <br><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Regards,</div><div>DTharun</div></div></div></div></div></div></div></div></div></div></div>