Skip scanRelocs for non-alloc sections.

Description

Skip scanRelocs for non-alloc sections.

Relocations against sections with no SHF_ALLOC bit are R_ABS relocations.
Currently we are creating Relocations vector for them, but that is wasteful.
This patch is to skip vector construction and to directly apply relocations
in place.

This patch seems to be pretty effective for large executables with debug info.
r266158 (Rafael's patch to change the way how we apply relocations) caused a
temporary performance degradation for such executables, but this patch makes
it even faster than before.

Time to link clang with debug info (output size is 1070 MB):

before r266158: 15.312 seconds (0%)
r266158:        17.301 seconds (+13.0%)
Head:           16.484 seconds (+7.7%)
w/patch:        13.166 seconds (-14.0%)

Differential Revision: http://reviews.llvm.org/D19645

Details

Committed
ruiuApr 28 2016, 11:42 AM
Differential Revision
D19645: Skip scanRelocs for non-alloc sections.
Parents
rL267916: AMDGPU: Fix mishandling array allocations when promoting alloca
Branches
Unknown
Tags
Unknown