<div dir="ltr"><div><div>Hi Tobias,<br><br></div>Thanks for the report! I've now submitted r258366 with a fix.<br><br></div>Dan<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 20, 2016 at 12:13 PM, Tobias Grosser <span dir="ltr"><<a href="mailto:tobias@grosser.es" target="_blank">tobias@grosser.es</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 01/20/2016 08:03 AM, Dan Gohman via llvm-commits wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Author: djg<br>
Date: Wed Jan 20 01:03:08 2016<br>
New Revision: 258296<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=258296&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=258296&view=rev</a><br>
Log:<br>
[SelectionDAG] Fold more offsets into GlobalAddresses<br>
<br>
SelectionDAG previously missed opportunities to fold constants into<br>
GlobalAddresses in several areas. For example, given `(add (add GA, c1), y)`, it<br>
would often reassociate to `(add (add GA, y), c1)`, missing the opportunity to<br>
create `(add GA+c, y)`. This isn't often visible on targets such as X86 which<br>
effectively reassociate adds in their complex address-mode folding logic,<br>
however it is currently visible on WebAssembly since it currently has very<br>
simple address mode folding code that doesn't reassociate anything.<br>
<br>
This patch fixes this by making SelectionDAG fold offsets into GlobalAddresses<br>
at the same times that it folds constants together, so that it doesn't miss any<br>
opportunities to perform such folding.<br>
</blockquote>
<br></span>
Hi Dan,<br>
<br>
I see a miscompile in LNT after this patch:<br>
<br>
<a href="http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3/builds/7631" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3/builds/7631</a><br>
<br>
The previous build passes and the other commits seem to be in components that are unlikely to even be used.<br>
<br>
Best,<br>
Tobias<br>
</blockquote></div><br></div>