[llvm] r227431 - Don't create multiple mergeable sections with -fdata-sections.

Rafael EspĂ­ndola rafael.espindola at gmail.com
Mon Feb 2 07:53:28 PST 2015


I was able to test this on a chrome build on linux.

What I did was

GYP_GENERATOR_FLAGS="output_dir=out_227431" GYP_DEFINES="clang=1
clang_use_chrome_plugins=0"
CXX=/home/espindola/llvm/build-227431/bin/clang++
CC=/home/espindola/llvm/build-227431/bin/clang gclient runhooks

(and repeat with r227430).

The size of the .o goes from 665940188 to 649564564 (0.975409767581109 X).

On the chrome binary, the sections that changed size were

.rodata: From 6851798 to 6985174 bytes (1.0194658394774627 X)
.symtab: From 11755800 to 11897472 bytes (1.0120512427907926 X)
.strtab: From 29712380 to 29719025 (1.000223644151024 X)

The link time (just the ld run) collected with "perf stat -r 10" is

r227430:  8.519591500 seconds time elapsed
             ( +-  0.60% )
r227431:  8.162686453 seconds time elapsed
             ( +-  0.29% )

I will take a look at how hard it would be to GC mergeable sections.

Cheers,
Rafael



More information about the llvm-commits mailing list