[lld-macho] ICF: Do more work in equalsConstant, less in equalsVariable
In particular, relocations to absolute symbols or literal sections can be handled in equalsConstant(), since their output addresses will not change across each iteration of ICF. Offsets and addends can also be dealt with entirely in equalsConstant(), making the code somewhat easier to reason about. Only ConcatInputSections need to be handled in equalsVariable(). LLD-ELF's implementation takes a similar approach. Although this should make ICF do less work, in practice it seems like there is no stat sig difference in time taken when linking chromium_framework. This refactor is motivated by an upcoming diff which improves ICF's handling of addends. Reviewed By: #lld-macho, gkm Differential Revision: https://reviews.llvm.org/D106212
Loading
Please register or sign in to comment