<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Jul 31, 2013, at 6:53 AM, Krzysztof Parzyszek <<a href="mailto:kparzysz@codeaurora.org">kparzysz@codeaurora.org</a>> wrote:<div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">On 7/30/2013 11:44 PM, Chris Lattner wrote:<br><blockquote type="cite"><br>The canonical form should be that loop invariants are hoisted.<br></blockquote><br>The canonical form should not depend on the knowledge as to what is invariant and what isn't.  It has more to do with preserving certain "common" properties of a loop, such as header, preheader, latch branch, etc.<br></div></blockquote><div dir="auto"><br></div><div dir="auto">Canonicalization of the IR is not about guarantees, it is about what assumptions passes can make and what form they have to tolerate.</div><br><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><blockquote type="cite">Optimizations should not depend on perfect loops.<br></blockquote><br>What do you mean by "perfect loops"?  I was talking about perfect nests.<br></div></blockquote></div><br><div>I'm talking about perfect loop nests, as in the classical fortran loop transformation sense.</div><div><br></div><div>-Chris</div></body></html>