<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Aug 24, 2016 at 10:11 AM, Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 24 August 2016 at 08:48, Alexandre Isoard via llvm-dev<br>
<span class=""><<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> I am probably stating the obvious, but if the function is side-effect free<br>
> (onlyReadsMemory) it is valid to remove it.<br>
><br>
> But I am guessing that does not belong to this pass.<br>
<br>
</span>I think it does.<br>
<br>
This is a very aggressive pass that does all sorts of inter-procedural<br>
cleanups, and unused side-effect free function calls is just the<br>
thing.</blockquote><div>I see. Then I agree.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
It looks to me that the compiler just got a bit more picky and your<br>
original assumption was wrong to begin with.<br></blockquote><div>However, he also stated that in the case the functions returns void it is not removed, which suggest there is something fishier going on.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Maybe your project needs to tell the middle-end (via function<br>
attributes) that the function does have side effects?<br>
<br>
cheers,<br>
--renato<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><b>Alexandre Isoard</b><br></div></div>
</div></div>