[LLVMdev] LTO v. opt

David Callahan dcallahan at fb.com
Fri Jan 2 20:32:48 PST 2015


Hi,

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).

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)

~/llvm-install/bin/clang -flto -O2 -c -o bug17623.o bug17623.c
"/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.10.0 -lSystem /Users/dcallahan/llvm-install/bin/..\
/lib/clang/3.6.0/lib/darwin/libclang_rt.osx.a -save-temps -o bug36 bug17623.o

(this produces bug36.lto.bc and bug36.lto.opt.bc)

However, if I use “opt” to try and duplicate the actions run by “ld”, as in:

~/llvm-install/bin/opt -O2 -o bug36.opt.bc bug36.lto.bc

This generates a different (much cleaner and correct!) output.

So my questions are:

1.     Is it feasible to get “opt” to reproduce the behavior of “ld”?

2.     Assuming I am just missing some parameters to “opt”, how do I determine what they should be?
Thanks
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150103/753549c7/attachment.html>


More information about the llvm-dev mailing list