We previously treated all sections with differing addends as
unequal. This is not always true, particularly when the sections are
referencing literals: different addends may point to the same literal in
the output binary. References to absolute symbols and alt_entry symbols
can manifest this issue too (see icf.s), but are less common in practice.
To achieve this, we 1) move the addend check later in equalsConstant()
and 2) adjust our hash function to ignore symbol values and reloc
addends.
Along the way, I removed stubsHelperIndex from the hash computation as
it is effectively a no-op: Since D105044: [lld-macho] Move ICF earlier to avoid emitting redundant binds, ICF runs before
stubsHelperIndex gets set. The present implementation doesn't attempt
to factor DylibSymbol references into the hash at all, mirroring
LLD-ELF's approach. We may want to revisit this in the future after
doing some benchmarking.