<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Oct 29, 2010, at 3:08 PM, Eli Friedman wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On Fri, Oct 29, 2010 at 2:05 PM, Owen Anderson <<a href="mailto:resistor@mac.com">resistor@mac.com</a>> wrote:<br><blockquote type="cite">Author: resistor<br></blockquote><blockquote type="cite">Date: Fri Oct 29 16:05:17 2010<br></blockquote><blockquote type="cite">New Revision: 117709<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=117709&view=rev">http://llvm.org/viewvc/llvm-project?rev=117709&view=rev</a><br></blockquote><blockquote type="cite">Log:<br></blockquote><blockquote type="cite">Give up on doing in-line instruction simplification during correlated value propagation.  Instruction simplification<br></blockquote><blockquote type="cite">needs to be guaranteed never to be run on an unreachable block.  However, earlier block simplifications may have<br></blockquote><blockquote type="cite">changed the CFG to make block that were reachable when we began our iteration unreachable by the time we try to<br></blockquote><blockquote type="cite">simplify them. (Note that this also means that our depth-first iterators were potentially being invalidated).<br></blockquote><br>It isn't obvious to me how value propagation actually modifies the CFG…<br></div></blockquote></div><br><div>It doesn't.  It could, however, determine that a comparison can be constant folded to true (or false).  The Simplify routines could use that replacement to turn a conditional branch into a direct branch, removing an edge from the CFG in the process.</div><div><br></div><div>--Owen</div></body></html>