<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
<br>
Reid's explanation of "an external function that LLVM is not allowed to<br>
reason about the body of" is a much better explanation, as a good<br>
benchmark will place llvm.blackbox() exactly where real code would call,<br>
say, getrandom() (on input) or printf() (on output).<br></blockquote><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>
However, as the function call overhead of said external function isn't<br>
part of the _developer's_ code, </blockquote><div><br></div><div>This isn't call overhead though.</div><div>It's a conditional and two calls someone wrote in some benchmark code.</div><div>That's not call overhead ;-)</div><div><br></div><div>It's just that i've proven the condition has no side effects and doesn't matter, so i eliminated it.</div><div><br></div><div>Thus, I'm trying to ask the question: "Will the use case really still be served if we let us eliminate these conditionals as useless, when the whole point is to let people test the overhead of things the compiler wanted to eliminate because it thinks they are useless"</div><div>;-)</div><div><br></div></div></div></div>