[PATCH] D22433: Handle versioned symbols efficiently.
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 18 09:04:45 PDT 2016
grimar added a comment.
In https://reviews.llvm.org/D22433#486515, @ruiu wrote:
> Submitted as r275711. Can you run your benchmark again so that we find what was wrong?
I probably missing something but I can't realize how you have so large numbers like 6-7 seconds in your benchmark.
The last my attemp was:
1. I prepared release lld build. (I suppose you probably used debug build here ?)
2. I configured another build with
-DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_PARALLEL_COMPILE_JOBS=8 -DLLVM_ENABLE_THREADS=true -DCMAKE_CXX_FLAGS="-fPIC -std=c++11 -fuse-ld=lld" -DCMAKE_C_FLAGS="-fPIC -fuse-ld=lld" -DCMAKE_C_COMPILER=/home/umb/LLVM/llvm-build/bin/clang -DCMAKE_CXX_COMPILER=/home/umb/LLVM/llvm-build/bin/clang++
So it uses everything from step 1. And builded it.
3. After that I am trying to just relink the lld configured at step 2 with lld from step 1.
sudo schedtool -F -p 99 -a 0x1 -e perf stat -r 1 /home/umb/LLVM/llvm-build/bin/ld.lld -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o bin/lld /usr/lib/gcc/x86_64-linux-gnu/5.3.1/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/5.3.1/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5.3.1/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/5.3.1 -L/usr/lib/gcc/x86_64-linux-gnu/5.3.1/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5.3.1/../../.. -L/home/umb/LLVM/llvm-build/bin/../lib -L/lib -L/usr/lib -allow-shlib-undefined -O3 --gc-sections tools/lld/tools/lld/CMakeFiles/lld.dir/lld.cpp.o -lpthread lib/liblldDriver.a lib/liblldCOFF.a lib/liblldELF.a lib/libLLVMSupport.a lib/liblldMachO.a lib/liblldReaderWriter.a lib/liblldYAML.a lib/liblldCore.a lib/libLLVMLibDriver.a lib/liblldConfig.a lib/libLLVMOption.a lib/libLLVMAArch64CodeGen.a lib/libLLVMGlobalISel.a lib/libLLVMAArch64AsmParser.a lib/libLLVMAArch64Disassembler.a lib/libLLVMAArch64Desc.a lib/libLLVMAArch64AsmPrinter.a lib/libLLVMAArch64Info.a lib/libLLVMAArch64Utils.a lib/libLLVMAMDGPUCodeGen.a lib/libLLVMAMDGPUAsmParser.a lib/libLLVMAMDGPUDisassembler.a lib/libLLVMAMDGPUDesc.a lib/libLLVMAMDGPUAsmPrinter.a lib/libLLVMAMDGPUInfo.a lib/libLLVMAMDGPUUtils.a lib/libLLVMARMCodeGen.a lib/libLLVMARMAsmParser.a lib/libLLVMARMDisassembler.a lib/libLLVMARMDesc.a lib/libLLVMARMAsmPrinter.a lib/libLLVMARMInfo.a lib/libLLVMBPFCodeGen.a lib/libLLVMBPFDesc.a lib/libLLVMBPFAsmPrinter.a lib/libLLVMBPFInfo.a lib/libLLVMHexagonCodeGen.a lib/libLLVMHexagonAsmParser.a lib/libLLVMHexagonDisassembler.a lib/libLLVMHexagonDesc.a lib/libLLVMHexagonInfo.a lib/libLLVMMipsCodeGen.a lib/libLLVMMipsAsmParser.a lib/libLLVMMipsDesc.a lib/libLLVMMipsAsmPrinter.a lib/libLLVMMipsDisassembler.a lib/libLLVMMipsInfo.a lib/libLLVMMSP430CodeGen.a lib/libLLVMMSP430Desc.a lib/libLLVMMSP430AsmPrinter.a lib/libLLVMMSP430Info.a lib/libLLVMNVPTXCodeGen.a lib/libLLVMNVPTXDesc.a lib/libLLVMNVPTXAsmPrinter.a lib/libLLVMNVPTXInfo.a lib/libLLVMPowerPCCodeGen.a lib/libLLVMPowerPCAsmParser.a lib/libLLVMPowerPCDesc.a lib/libLLVMPowerPCAsmPrinter.a lib/libLLVMPowerPCDisassembler.a lib/libLLVMPowerPCInfo.a lib/libLLVMSparcCodeGen.a lib/libLLVMSparcAsmParser.a lib/libLLVMSparcDesc.a lib/libLLVMSparcAsmPrinter.a lib/libLLVMSparcDisassembler.a lib/libLLVMSparcInfo.a lib/libLLVMSystemZCodeGen.a lib/libLLVMSystemZAsmParser.a lib/libLLVMSystemZDisassembler.a lib/libLLVMSystemZDesc.a lib/libLLVMSystemZAsmPrinter.a lib/libLLVMSystemZInfo.a lib/libLLVMX86CodeGen.a lib/libLLVMX86AsmParser.a lib/libLLVMX86Desc.a lib/libLLVMX86AsmPrinter.a lib/libLLVMX86Utils.a lib/libLLVMX86Disassembler.a lib/libLLVMX86Info.a lib/libLLVMXCoreCodeGen.a lib/libLLVMAsmPrinter.a lib/libLLVMDebugInfoCodeView.a lib/libLLVMSelectionDAG.a lib/libLLVMXCoreDesc.a lib/libLLVMXCoreAsmPrinter.a lib/libLLVMXCoreDisassembler.a lib/libLLVMXCoreInfo.a lib/libLLVMMCDisassembler.a lib/libLLVMLTO.a lib/libLLVMObjCARCOpts.a lib/libLLVMPasses.a lib/libLLVMCodeGen.a lib/libLLVMTarget.a lib/libLLVMBitWriter.a lib/libLLVMipo.a lib/libLLVMObject.a lib/libLLVMMCParser.a lib/libLLVMLinker.a lib/libLLVMIRReader.a lib/libLLVMBitReader.a lib/libLLVMAsmParser.a lib/libLLVMScalarOpts.a lib/libLLVMVectorize.a lib/libLLVMInstCombine.a lib/libLLVMInstrumentation.a lib/libLLVMMC.a lib/libLLVMTransformUtils.a lib/libLLVMAnalysis.a lib/libLLVMProfileData.a lib/libLLVMCore.a lib/libLLVMSupport.a -lrt -ldl -lpthread -lz -lm -rpath "\$ORIGIN/../lib" -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5.3.1/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5.3.1/../../../x86_64-linux-gnu/crtn.o
My relink time is still about 0.2-0.3 seconds then:
222.831375 task-clock (msec) # 0.999 CPUs utilized
0 context-switches # 0.000 K/sec
0 cpu-migrations # 0.000 K/sec
35,448 page-faults # 0.159 M/sec
So I see we do the benchmark differently. That I guess the reason of why I had no difference in results here: https://reviews.llvm.org/D21681#466406.
Repository:
rL LLVM
https://reviews.llvm.org/D22433
More information about the llvm-commits
mailing list