Yes, that makes sense but not if it isn't doing anything with it. If it doesn't inline it then it shouldn't be modifying it, or at least that's what makes sense to me. If part of it's job is to delete functions that were created "dead" by some other opt, then shouldn't that opt be deleting the functions it makes dead?<br>
<br>I guess I don't see the point in deleting functions (even dead ones) that it doesn't touch, what's the point? Why bother to even compile those functions then? It's not like clang or llvm-gcc gives me an empty function, only "-inline"?<br>
<br><div class="gmail_quote">On Fri, Feb 10, 2012 at 3:10 PM, Eli Friedman <span dir="ltr"><<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Fri, Feb 10, 2012 at 2:47 PM, Ryan Taylor <<a href="mailto:ryta1203@gmail.com">ryta1203@gmail.com</a>> wrote:<br>
> Seems like bad behavior to just decide to delete the function, no? Why not<br>
> just ignore it then and output the input?<br>
<br>
</div>Deleting dead functions is part of the functionality of -inline.<br>
<span class="HOEnZb"><font color="#888888"><br>
-Eli<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
><br>
> On Fri, Feb 10, 2012 at 2:43 PM, Eli Friedman <<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>><br>
> wrote:<br>
>><br>
>> On Fri, Feb 10, 2012 at 2:38 PM, Ryan Taylor <<a href="mailto:ryta1203@gmail.com">ryta1203@gmail.com</a>> wrote:<br>
>> > I have some code that has one function and if I use the-inline on it<br>
>> > then<br>
>> > these opts eliminate the entire function (which is the entire file).<br>
>> ><br>
>> > Bugpoint produces bugpoint-reduced-simplified.bc, but when I then run<br>
>> > "opt<br>
>> > bugpoint-reduced-simplified.bc -inline" I get nothing, file get emptied.<br>
>> ><br>
>> > It doesn't crash or assert. I have attached a test case.<br>
>><br>
>> Your function has internal linkage and no uses; therefore, your .ll<br>
>> file is equivalent to the empty .ll file.<br>
>><br>
>> -Eli<br>
><br>
><br>
</div></div></blockquote></div><br>