<div dir="ltr">Hi Tehila, <div><br></div><div>LLVM should not unconditionally remove such a function call because @foo may have side effects. IIRC, if you mark @foo as "readonly" (<a href="http://llvm.org/docs/LangRef.html#function-attributes">http://llvm.org/docs/LangRef.html#function-attributes</a>), then DCE should be able to remove the call. </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 29, 2015 at 8:55 AM, Tehila Mayzels 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"><div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal" style="text-align:left;direction:ltr">Hi,<u></u><u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr"><u></u> <u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr">I wrote an IR pass and it adds some instructions that are not used.<u></u><u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr">For example:<u></u><u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr"><u></u> <u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr"><span style="background:white">%1 = call i64 @foo()<u></u><u></u></span></p><p class="MsoNormal" style="text-align:left;direction:ltr"><span style="background:white"><u></u> <u></u></span></p><p class="MsoNormal" style="text-align:left;direction:ltr"><span style="background:white">When %1 is not used at all.<u></u><u></u></span></p><p class="MsoNormal" style="text-align:left;direction:ltr"><span style="font-size:13.5pt;background:white"><u></u> <u></u></span></p><p class="MsoNormal" style="text-align:left;direction:ltr">I thought that running DCE (-dce) or DIE (-die) after my pass will remove such instructions, but it didn't.<u></u><u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr"><u></u> <u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr">Why? And is there a way to do that?<u></u><u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr"><u></u> <u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr">Thanks,<u></u><u></u></p><p class="MsoNormal" style="text-align:left;direction:ltr">Tehila.<u></u><u></u></p></div></div><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></blockquote></div><br></div>