<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hi,</div><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 5, 2016, at 3:22 PM, Kai Wang via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><br clear="all" class=""><div class="">Hi all,</div><div class=""><br class=""></div><div class="">I'm trying to generate whole program bitcode files for linux kernel and do <span style="font-family:Arial,Helvetica,sans-serif;font-size:13px" class="">interprocedural analysis on kernel.</span></div><div class=""><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px" class="">I use llvmlinux to compile kernel with clang and  generate a bunch of bitcode files successfully.</span></div><div class=""><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px" class="">I need to link all these bitcode files together into a single bitcode file, so that I can run whole program analysis. </span></div><div class=""><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px" class=""><br class=""></span></div><div class=""><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px" class="">Can I use llvm-link to achieve this?</span></div></div></div></blockquote><div><br class=""></div><div>Yes.</div><br class=""><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><div class=""><span style="font-family:Arial,Helvetica,sans-serif;font-size:13px" class="">Or should I use l</span><span style="font-size:13px;font-family:Arial,Helvetica,sans-serif" class="">ibLTO</span> to link all these bitcode files together? I guess I have to modify the linux kernel's build scripts and Makefiles?</div></div></div></blockquote><div><br class=""></div><div>libLTO is used directly by *some* linkers to perform both linking the modules and optimizing the result. Depending on what you’re trying to achieve, it can be interesting for you.</div><div>In any case you can start with llvm-link to get your analysis working with opt, and it won’t be hard to integrate it in LTO later if needed. </div><div><br class=""></div><div>— </div><div>Mehdi</div><div><br class=""></div></div></body></html>