Displaying 3 results from an estimated 3 matches for "printfopt".
2012 Jun 18
0
[LLVMdev] Which pass converts call printf to puts?
Hi Thomson,
the new call to puts() is inserted right away, whereas the old call to
printf() is removed a bit later in SimplifyLibCalls::runOnFunction(). If
you browse the code a bit and backtrack the call stack to see what
happens with the return value of PrintFOpt::OptimizeFixedFormatString(),
you will stumble upon this segment in SimplifyLibCalls.cpp:1703ff.:
// Try to optimize this call.
Value *Result = LCO->OptimizeCall(CI, TD, TLI, Builder);
if (Result == 0) continue;
DEBUG(dbgs() << "SimplifyLibCalls simplified: " << *CI;...
2012 Jun 17
5
[LLVMdev] Which pass converts call printf to puts?
I found that LLVM optimized the IR by replacing printf with puts. I
wondered which pass did this optimization? And is it common that puts is
faster (and some other metric) than printf?
--
Thanks
Thomson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120617/08aa6c45/attachment.html>
2012 Jun 18
2
[LLVMdev] Which pass converts call printf to puts?
...de>wrote:
> Hi Thomson,
>
> the new call to puts() is inserted right away, whereas the old call to
> printf() is removed a bit later in SimplifyLibCalls::runOnFunction(). If
> you browse the code a bit and backtrack the call stack to see what
> happens with the return value of PrintFOpt::OptimizeFixedFormatString(),
> you will stumble upon this segment in SimplifyLibCalls.cpp:1703ff.:
>
> // Try to optimize this call.
> Value *Result = LCO->OptimizeCall(CI, TD, TLI, Builder);
> if (Result == 0) continue;
>
> DEBUG(dbgs() << "SimplifyLibCalls simp...