<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 15, 2015 at 7:16 PM, escha via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">You mean the input test data? I was testing performance using our offline perf suite (which is a ton of out of tree code), so it’s not something I can share, but I imagine any similar test suite put through a typical compiler pipeline will exercise ADCE in similar ways. ADCE’s cost is pretty much the sum of (cost of managing the set) + (cost of eraseinstruction), which in our case turns out to be 1/3 the former and 2/3 the latter (roughly).<br></blockquote><div><br></div><div>Have you looked at making eraseinstruction faster? Sounds like that would have a greater overall speedup since it would help many passes.</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
—escha<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
> On Sep 15, 2015, at 6:50 PM, Daniel Berlin <<a href="mailto:dberlin@dberlin.org">dberlin@dberlin.org</a>> wrote:<br>
><br>
> Can someone provide the file used to demonstrate the speedup here?<br>
> I'd be glad to take a quick crack at seeing if i can achieve the same speedup.<br>
><br>
><br>
> On Tue, Sep 15, 2015 at 2:16 PM, Owen Anderson via llvm-dev<br>
> <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> On Sep 14, 2015, at 5:02 PM, Mehdi Amini via llvm-dev<br>
>> <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>><br>
>> On Sep 14, 2015, at 2:58 PM, Pete Cooper via llvm-dev<br>
>> <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>><br>
>> On Sep 14, 2015, at 2:49 PM, Matt Arsenault via llvm-dev<br>
>> <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
>><br>
>> On 09/14/2015 02:47 PM, escha via llvm-dev wrote:<br>
>><br>
>> I would assume that it’s just considered to be garbage. I feel like any sort<br>
>> of per-pass side data like this should come with absolute minimal contracts,<br>
>> to avoid introducing any more inter-pass complexity.<br>
>><br>
>> I would think this would need to be a verifier error if it were ever non-0<br>
>><br>
>> +1<br>
>><br>
>> Otherwise every pass which ever needs this bit would have to first zero it<br>
>> out just to be safe, adding an extra walk over the whole functions.<br>
>><br>
>> Of course otherwise the pass modifying it will have to zero it, which could<br>
>> also be a walk over the whole function.  So either way you have lots iterate<br>
>> over, which is why i’m weary of this approach tbh.<br>
>><br>
>><br>
>> Every pass which ever uses this internally would have to set it to zero when<br>
>> it is done, adding an extra walk over the whole functions as you noticed.<br>
>> This goes against “you don’t pay for what you don’t use”, so definitively -1<br>
>> for this. Better to cleanup before use.<br>
>> I agree that the approach does not scale/generalize well, and we should try<br>
>> to find an alternative if possible. Now *if* it is the only way to improve<br>
>> performance significantly, we might have to weight the tradeoff.<br>
>><br>
>><br>
>> Does anyone have any concrete alternative suggestions to achieve the speedup<br>
>> demonstrated here?<br>
>><br>
>> —Owen<br>
>><br>
>> _______________________________________________<br>
>> LLVM Developers mailing list<br>
>> <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
>><br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div></div>