<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><br><div>Begin forwarded message:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>From: </b></span><span style="font-family:'Helvetica'; font-size:medium;">Mon Ping Wang <<a href="mailto:monping@apple.com">monping@apple.com</a>><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Date: </b></span><span style="font-family:'Helvetica'; font-size:medium;">June 4, 2010 10:36:17 AM PDT<br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>To: </b></span><span style="font-family:'Helvetica'; font-size:medium;">Duncan Sands <<a href="mailto:baldrick@free.fr">baldrick@free.fr</a>><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Cc: </b></span><span style="font-family:'Helvetica'; font-size:medium;"><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;"><span style="font-family:'Helvetica'; font-size:medium; color:rgba(0, 0, 0, 1);"><b>Subject: </b></span><span style="font-family:'Helvetica'; font-size:medium;"><b>Re: [llvm-commits] [llvm] r105453 - in /llvm/trunk: lib/CodeGen/SelectionDAG/LegalizeTypes.cpp test/CodeGen/X86/widen_shuffle-1.ll test/CodeGen/X86/widen_shuffle-2.ll</b><br></span></div><br><div>Hi Duncan,<br><br>An alternative to fixing it this way is to change how SelectionDAG::ReplaceAllUsesWith works.  It could remove the From node from the CSE map and then reinsert the node back into the map after replacing all uses.  If you don't like that, I'll revert the change to give you a few days of poking at it.<br><br>Ciao,<br>  -- Mon Ping<br><br><br>On Jun 4, 2010, at 12:30 AM, Duncan Sands wrote:<br><br><blockquote type="cite">Hi Mon Ping,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><blockquote type="cite">Fixed a bug during widening where we would avoid legalizing a node.  When we<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">replace an OpA with a widened OpB, it is possible to get new uses of OpA due to CSE<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">when recursively updating nodes.  Since OpA has been processed, the new uses are<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">not examined again.  The patch checks if this occurred and it it did, updates the<br></blockquote></blockquote><blockquote type="cite"><blockquote type="cite">new uses of OpA to use OpB.<br></blockquote></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">this is an incredibly fragile bit of code.  It's almost impossible to touch it<br></blockquote><blockquote type="cite">without breaking something!  At a minimum, for testing you should configure LLVM<br></blockquote><blockquote type="cite">with *expensive checks enabled*, bootstrap gcc and run the entire testsuite.<br></blockquote><blockquote type="cite">That said I would rather you reverted this, and give me a few days to poke at<br></blockquote><blockquote type="cite">the testcase.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Ciao,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Duncan.<br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">llvm-commits mailing list<br></blockquote><blockquote type="cite"><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br></blockquote><blockquote type="cite"><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br></blockquote><br></div></blockquote></div><br></body></html>