More testing in an oldish xeon shows that almost half of the time in the getOffset method is because of one memory access, the one fetching OutputOff in
return Pieces[It->second].OutputOff;
putting all the OutputOff in a single vector improves it.
Paths
| Differential D45399
Split SectionPiece in its parts Needs ReviewPublic Authored by • espindola on Apr 6 2018, 6:53 PM.
Details
Summary More testing in an oldish xeon shows that almost half of the time in the getOffset method is because of one memory access, the one fetching OutputOff in return Pieces[It->second].OutputOff; putting all the OutputOff in a single vector improves it.
Diff Detail Event TimelineComment Actions Have the OutputOffsets store just a uint64_t. This uses a bit of the hash for the live bit. With this there is nothing to do after the load other that return the value, which should allow pipelining the relocation loop.
Revision Contents
Diff 143212 ELF/InputSection.h
ELF/InputSection.cpp
ELF/SyntheticSections.h
ELF/SyntheticSections.cpp
|