Create thunks before regular relocation scan.
We will need to do something like this to support range extension
thunks since that process is iterative.
Doing this also has the advantage that when doing the regular
relocation scan the offset in the output section is known and we can
just store that. This reduces the number of times we have to run
getOffset and I think will allow a more specialized .eh_frame
representation.
By itself this is already a performance win.
firefox
master 7.
295045737
patch 7.
209466989 0.
98826892235
chromium
master 4.
531254468
patch 4.
509221804 0.
995137623774
chromium fast
master 1.
836928973
patch 1.
823805241 0.
992855612714
the gold plugin
master 0.
379768791
patch 0.
380043405 1.
00072310839
clang
master 0.
642698284
patch 0.
642215663 0.
999249070657
llvm-as
master 0.
036665467
patch 0.
036456225 0.
994293213284
the gold plugin fsds
master 0.
40395817
patch 0.
404384555 1.
0010555177
clang fsds
master 0.
722045545
patch 0.
720946135 0.
998477367518
llvm-as fsds
master 0.
03292646
patch 0.
032759965 0.
994943428477
scylla
master 3.
427376378
patch 3.
368316181 0.
98276810292
llvm-svn: 276146