<div dir="ltr">tools/llvm-lto should get you pretty close.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jan 2, 2015 at 8:32 PM, David Callahan <span dir="ltr"><<a href="mailto:dcallahan@fb.com" target="_blank">dcallahan@fb.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">









<div style="word-wrap:break-word;color:rgb(0,0,0);font-size:14px;font-family:Calibri,sans-serif">
<div>
<p class="MsoNormal"><a name="14ab070d5681244b_OLE_LINK2"></a><a name="14ab070d5681244b_OLE_LINK1">Hi,<u></u><u></u></a></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I am new to the LLVM dev community so forgive a perhaps obvious question. I am looking at bug 17623 which is an LTO/optimizer interaction bug.  I am working on a Mac with Xcode installed but have also built the 3.6 LLVM binaries (from a
 few month old local branch). <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">The default version of “ld” from Apple supports an option “-save-temps” which I believe saves bitcode both before and after the optimizer (and the bug is visible as a difference between these two)
<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-family:Consolas">~/llvm-install/bin/clang -flto -O2 -c -o bug17623.o bug17623.c<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">"/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.10.0 -lSystem /Users/dcallahan/llvm-install/bin/..\<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-family:Consolas">/lib/clang/3.6.0/lib/darwin/libclang_rt.osx.a -save-temps -o bug36 bug17623.o</span><u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">(this produces bug36.lto.bc and bug36.lto.opt.bc) <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">However, if I use “opt” to try and duplicate the actions run by “ld”, as in:
<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-family:Consolas">~/llvm-install/bin/opt -O2 -o bug36.opt.bc bug36.lto.bc<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">This generates a different (much cleaner and correct!) output.
<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">So my questions are:<u></u><u></u></p>
<p>
1.<span style="font-size:7pt;font-family:'Times New Roman'">    
</span>Is it feasible to get “opt” to reproduce the behavior of “ld”?
<u></u><u></u></p>
<p>
2.<span style="font-size:7pt;font-family:'Times New Roman'">    
</span>Assuming I am just missing some parameters to “opt”, how do I determine what they should be?<u></u><u></u></p>
<p class="MsoNormal">Thanks<span class="HOEnZb"><font color="#888888"><u></u><u></u></font></span></p><span class="HOEnZb"><font color="#888888">
<p class="MsoNormal">David<u></u><u></u></p>
</font></span></div>
</div>

<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
<br></blockquote></div><br></div>