<div dir="ltr">Could you fork this and fix it for me so that I can build it in exactly the same way as you do? I also saw a clang crash, but before reproducing that error, I observed the other error that I reported to you, so I believe this is not the last error that needs to be fixed to run it on my machine.</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 7, 2017 at 4:11 PM, Michael Spencer <span dir="ltr"><<a href="mailto:bigcheesegs@gmail.com" target="_blank">bigcheesegs@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">This crash is unrelated to my patch. It fails the same way at <wbr>eddbec369c44094d57400299c5245b<wbr>fc390ebf66 .<span class="HOEnZb"><font color="#888888"><br></font></span><div class="gmail_extra"><span class="HOEnZb"><font color="#888888"><br clear="all"><div><div class="m_-6856055070848544670gmail_signature">- Michael Spencer</div></div></font></span><div><div class="h5">
<br><div class="gmail_quote">On Tue, Dec 5, 2017 at 8:17 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Please check out this branch (<a href="https://github.com/rui314/llvm-project/commits/cgprofile" target="_blank">https://github.com/rui314/llv<wbr>m-project/commits/cgprofile</a>) and run `./build.sh`.</div><div><br></div><div>On my machine, the script failed with the following error.</div><div><br></div><div>: && /ssd/llvm-project-cgprofile/bu<wbr>ild/bin/bin/clang++  -fPIC -fprofile-instr-use=/ssd/llvm-<wbr>project-cgprofile/build/instru<wbr>mented/default.profdata -fvisibility-inlines-hidden -std=c++11 -Wall -W -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wnon-virtual-dtor -Wno-comment -fcolor-diagnostics -O3 -DNDEBUG  -Wl,-z,defs -Wl,-z,nodelete -fuse-ld=lld -Wl,--color-diagnostics   -Wl,-rpath-link,/ssd/llvm-pro<wbr>ject-cgprofile/build/optimized<wbr>/./lib  -Wl,-O3 -Wl,--gc-sections  -Wl,--version-script,/ssd/llvm<wbr>-project-cgprofile/build/optim<wbr>ized/tools/lto/LTO.exports -shared -Wl,-soname,libLTO.so.6 -o lib/libLTO.so.6.0.0svn tools/lto/CMakeFiles/LTO.dir/L<wbr>TODisassembler.cpp.o tools/lto/CMakeFiles/LTO.dir/l<wbr>to.cpp.o  lib/libLLVMAArch64CodeGen.a lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64AsmPrinter.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64Disassembler<wbr>.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMAMDGPUCodeGen.a lib/libLLVMAMDGPUAsmParser.a lib/libLLVMAMDGPUAsmPrinter.a lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUDisassembler.<wbr>a lib/libLLVMAMDGPUInfo.a lib/libLLVMAMDGPUUtils.a lib/libLLVMARMCodeGen.a lib/libLLVMARMAsmParser.a lib/libLLVMARMAsmPrinter.a lib/libLLVMARMDesc.a lib/libLLVMARMDisassembler.a lib/libLLVMARMInfo.a lib/libLLVMARMUtils.a lib/libLLVMBPFCodeGen.a lib/libLLVMBPFAsmParser.a lib/libLLVMBPFAsmPrinter.a lib/libLLVMBPFDesc.a lib/libLLVMBPFDisassembler.a lib/libLLVMBPFInfo.a lib/libLLVMHexagonCodeGen.a lib/libLLVMHexagonAsmParser.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonDisassembler<wbr>.a lib/libLLVMHexagonInfo.a lib/libLLVMLanaiCodeGen.a lib/libLLVMLanaiAsmParser.a lib/libLLVMLanaiAsmPrinter.a lib/libLLVMLanaiDesc.a lib/libLLVMLanaiDisassembler.a lib/libLLVMLanaiInfo.a lib/libLLVMMipsCodeGen.a lib/libLLVMMipsAsmParser.a lib/libLLVMMipsAsmPrinter.a lib/libLLVMMipsDesc.a lib/libLLVMMipsDisassembler.a lib/libLLVMMipsInfo.a lib/libLLVMMSP430CodeGen.a lib/libLLVMMSP430AsmPrinter.a lib/libLLVMMSP430Desc.a lib/libLLVMMSP430Info.a lib/libLLVMNVPTXCodeGen.a lib/libLLVMNVPTXAsmPrinter.a lib/libLLVMNVPTXDesc.a lib/libLLVMNVPTXInfo.a lib/libLLVMPowerPCCodeGen.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCAsmPrinter.a lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCDisassembler<wbr>.a lib/libLLVMPowerPCInfo.a lib/libLLVMSparcCodeGen.a lib/libLLVMSparcAsmParser.a lib/libLLVMSparcAsmPrinter.a lib/libLLVMSparcDesc.a lib/libLLVMSparcDisassembler.a lib/libLLVMSparcInfo.a lib/libLLVMSystemZCodeGen.a lib/libLLVMSystemZAsmParser.a lib/libLLVMSystemZAsmPrinter.a lib/libLLVMSystemZDesc.a lib/libLLVMSystemZDisassembler<wbr>.a lib/libLLVMSystemZInfo.a lib/libLLVMX86CodeGen.a lib/libLLVMX86AsmParser.a lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Desc.a lib/libLLVMX86Disassembler.a lib/libLLVMX86Info.a lib/libLLVMX86Utils.a lib/libLLVMXCoreCodeGen.a lib/libLLVMXCoreAsmPrinter.a lib/libLLVMXCoreDesc.a lib/libLLVMXCoreDisassembler.a lib/libLLVMXCoreInfo.a lib/libLLVMBitReader.a lib/libLLVMCore.a lib/libLLVMLTO.a lib/libLLVMMC.a lib/libLLVMMCDisassembler.a lib/libLLVMSupport.a lib/libLLVMTarget.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64AsmPrinter.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUAsmPrinter.a lib/libLLVMAMDGPUInfo.a lib/libLLVMAMDGPUUtils.a lib/libLLVMARMDesc.a lib/libLLVMARMAsmPrinter.a lib/libLLVMARMUtils.a lib/libLLVMARMInfo.a lib/libLLVMBPFAsmPrinter.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonInfo.a lib/libLLVMLanaiDesc.a lib/libLLVMLanaiAsmPrinter.a lib/libLLVMLanaiInfo.a lib/libLLVMMipsAsmPrinter.a lib/libLLVMMSP430AsmPrinter.a lib/libLLVMNVPTXAsmPrinter.a lib/libLLVMPowerPCAsmPrinter.a lib/libLLVMSparcAsmPrinter.a lib/libLLVMSystemZDesc.a lib/libLLVMSystemZAsmPrinter.a lib/libLLVMSystemZInfo.a lib/libLLVMGlobalISel.a lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Utils.a lib/libLLVMXCoreAsmPrinter.a lib/libLLVMAsmPrinter.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMDebugInfoMSF.a lib/libLLVMSelectionDAG.a lib/libLLVMMCDisassembler.a lib/libLLVMObjCARCOpts.a lib/libLLVMPasses.a lib/libLLVMCodeGen.a lib/libLLVMTarget.a lib/libLLVMipo.a lib/libLLVMScalarOpts.a lib/libLLVMVectorize.a lib/libLLVMBitWriter.a lib/libLLVMLinker.a lib/libLLVMIRReader.a lib/libLLVMAsmParser.a lib/libLLVMInstCombine.a lib/libLLVMInstrumentation.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMObject.a lib/libLLVMBitReader.a lib/libLLVMMCParser.a lib/libLLVMMC.a lib/libLLVMProfileData.a lib/libLLVMCore.a lib/libLLVMBinaryFormat.a lib/libLLVMSupport.a -lrt -ldl -ltinfo -lpthread -lz -lm lib/libLLVMDemangle.a -Wl,-rpath,"\$ORIGIN/../lib" && :</div><div>/usr/local/bin/ld.lld: error: can't create dynamic relocation R_X86_64_32S against local symbol in readonly segment; recompile object files with -fPIC</div><div>>>> defined in lib/libLLVMAArch64CodeGen.a(AA<wbr>rch64AsmPrinter.cpp.o)</div><div>>>> referenced by AArch64AsmPrinter.cpp</div><div>>>>               AArch64AsmPrinter.cpp.o:(LLVM<wbr>InitializeAArch64AsmPrinter) in archive lib/libLLVMAArch64CodeGen.a</div><div><br></div><div>/usr/local/bin/ld.lld: error: can't create dynamic relocation R_X86_64_32S against local symbol in readonly segment; recompile object files with -fPIC</div><div>>>> defined in lib/libLLVMAArch64CodeGen.a(AA<wbr>rch64AsmPrinter.cpp.o)</div><div>>>> referenced by AArch64AsmPrinter.cpp</div><div>>>>               AArch64AsmPrinter.cpp.o:(LLVM<wbr>InitializeAArch64AsmPrinter) in archive lib/libLLVMAArch64CodeGen.a</div><div><br></div></div><div class="m_-6856055070848544670gmail-HOEnZb"><div class="m_-6856055070848544670gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 5, 2017 at 6:38 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Mon, Dec 4, 2017 at 2:30 PM, Michael Spencer <span dir="ltr"><<a href="mailto:bigcheesegs@gmail.com" target="_blank">bigcheesegs@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I've attached updated patches.<div><br></div><div>I just tested these patches on Linux based on {llvm, clang, compiler-rt, lld} as of r319686 and everything worked just fine with the following steps:</div><div><br></div><div>* Applied the patches.</div><div>* Built llvm, clang, compiler-rt and lld in a Release build. (cgprofile-build)</div><div>* Built llvm, and lld in a Release build using the clang from cgprofile-build with `-fprofile-instr-generate`. (instrumented-build)</div><div>* Ran `check-lld` on instrumented-build</div><div>* Ran `cgprofile-build/llvm-profdata merge <PATH-TO-LLVM-SOURCE>/llvm-pro<wbr>ject/lld/test/ELF/default.prof<wbr>raw -o default.profdata` in the instrumented-build directory</div></div></blockquote><div><br></div></span><div>This step is wrong. `default.profraw` file does not exist in that directory.</div><div><br></div><div>After fixing the path, I could follow the next step, but during the build with profile data, clang crashed.</div><div><br></div><div>Looks like we wasted too much time just to reproduce one result on the other end. I'll write a shell script to do all these steps in a batch without human interaction so that we don't need to type in the commands by hand. I'll upload everything to github, so please wait for a while.</div><div><div class="m_-6856055070848544670gmail-m_-1356541479604210595h5"><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>* Built llvm, and lld in a Release build using the clang from cgprofile-build with `-fprofile-instr-use=default.p<wbr>rofdata`. (cg-profile-optimized-build)<br></div><div>* Checked that the .o files from cg-profile-optimized-build had call graph profiles using `cgprofile-build/llvm-readobj -elf-cg-profile`</div><span class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000HOEnZb"><font color="#888888"><div><br></div></font></span><div><div class="gmail_extra"><span class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000HOEnZb"><font color="#888888"><div><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail_signature">- Michael Spencer</div></div></font></span><div><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000h5">
<br><div class="gmail_quote">On Mon, Nov 27, 2017 at 9:11 PM, Michael Spencer <span dir="ltr"><<a href="mailto:bigcheesegs@gmail.com" target="_blank">bigcheesegs@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-"><div><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-m_-4323962386317694069gmail_signature">On Mon, Nov 27, 2017 at 9:07 PM, Davide Italiano <span dir="ltr"><<a href="mailto:davide@freebsd.org" target="_blank">davide@freebsd.org</a>></span> wrote:<br></div></div></span><div class="gmail_quote"><span class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Maybe this happens only on Linux? As far as I can tell the patch has been developed on Windows entirely. Michael, have you tried linux?</div></blockquote><div><br></div></span><div>It has been tested mostly on Linux.</div><span class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-HOEnZb"><font color="#888888"><div><br></div><div>- Michael Spencer<br></div></font></span><span class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-m_-4323962386317694069gmail-HOEnZb"><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-m_-4323962386317694069gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">On Nov 27, 2017 9:05 PM, "Michael Spencer" <<a href="mailto:bigcheesegs@gmail.com" target="_blank">bigcheesegs@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-m_-4323962386317694069gmail-m_-4838227406008380012m_6431875760530314970gmail_signature">On Mon, Nov 27, 2017 at 5:44 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I rebased the patches to HEAD and tried to use it again. When I ran `bin/llvm-profdata merge default.profraw -o default.profdata`, it creates almost empty default.profdata and it shrunk default.profraw. That seems pretty odd to me. Michael, do you know what is going on?</div><div><br></div><div>Before:</div><div><br></div><div>-rw-r-----  1 ruiu eng  29M Nov 27 17:39 default.profraw<br></div><div><br></div><div>After:</div><div><br></div><div>-rw-r-----  1 ruiu eng  560 Nov 27 17:39 default.profdata</div><div>-rw-r-----  1 ruiu eng 2.2M Nov 27 17:39 default.profraw</div><div><br></div><div>The rebased patch is available at <a href="https://reviews.llvm.org/D40534" target="_blank">https://reviews.llvm.org/D4<wbr>0534</a>.</div></div></blockquote><div><br></div><div>I'm not sure what the issue is without more information. My patch doesn't change how llvm profile information works, it only uses the data.</div><div><br></div><div>- Michael Spencer<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-m_-4323962386317694069gmail-m_-4838227406008380012m_6431875760530314970gmail-HOEnZb"><div class="m_-6856055070848544670gmail-m_-1356541479604210595m_-2955578650734446000m_3985831905972062585gmail-m_-4323962386317694069gmail-m_-4838227406008380012m_6431875760530314970gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 27, 2017 at 2:01 PM, Davide Italiano <span dir="ltr"><<a href="mailto:davide@freebsd.org" target="_blank">davide@freebsd.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span>On Mon, Nov 27, 2017 at 1:49 PM, Rui Ueyama <<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>> wrote:<br>
> I'm so sorry that I didn't respond in a timely manner. I'm reading it again<br>
> now.<br>
><br>
<br>
</span>No worries, definitely not your fault. The whole back and forth has<br>
been a little slow, but this has been around for almost 6 months now<br>
(and has been in development for much longer) so we should really<br>
decide whether we want to ship it or kill it :)<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>
</blockquote></div></div>
</div></div></blockquote></span></div><br></div></div>
</blockquote></div><br></div></div></div></div></div>
</blockquote></div></div></div><br></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></div></div>
</blockquote></div><br></div>