[PATCH] D19528: [ELF] - Implemented -z combrelocs/nocombreloc.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Fri May 6 04:38:17 PDT 2016


grimar added a comment.

In http://reviews.llvm.org/D19528#422386, @rafael wrote:

> Please do simplify the patch to first not set any new DT_ and sort only by offset. Lets benchmark just that first.


I did that (simplified version I used is here: http://reviews.llvm.org/D20013) and got no any perfomance boost after that at all 
(or very minor what I believe is just a computing error):

Middle from 5 runs is shown.
Without patch:

  umb at ubuntu:~/umb/LLVM/self-hosting/bin$ LD_DEBUG=statistics ./clang
       46693:	
       46693:	runtime linker statistics:
       46693:	  total startup time in dynamic loader: 193739180 cycles
       46693:		    time needed for relocation: 166734504 cycles (86.0%)
       46693:	                 number of relocations: 27736
       46693:	      number of relocations from cache: 2247
       46693:	        number of relative relocations: 2020
       46693:		   time needed to load objects: 24664951 cycles (12.7%)
  clang-3.9: error: no input files
       46693:	
       46693:	runtime linker statistics:
       46693:	           final number of relocations: 28487
       46693:	final number of relocations from cache: 2247

With patch (no tag, sort by offset).

  umb at ubuntu:~/umb/LLVM/selfhost-reduced/bin$ LD_DEBUG=statistics ./clang
       46666:	
       46666:	runtime linker statistics:
       46666:	  total startup time in dynamic loader: 188386979 cycles
       46666:		    time needed for relocation: 161439636 cycles (85.6%)
       46666:	                 number of relocations: 27736
       46666:	      number of relocations from cache: 2247
       46666:	        number of relative relocations: 2020
       46666:		   time needed to load objects: 24821139 cycles (13.1%)
  clang-3.9: error: no input files
       46666:	
       46666:	runtime linker statistics:
       46666:	           final number of relocations: 28487
       46666:	final number of relocations from cache: 2247

I think results are expected as symbols are not grouped together, what
looks to be the main condition for optimization to work.


http://reviews.llvm.org/D19528





More information about the llvm-commits mailing list