The order file indicates how input sections should be sorted within each output
section, based on the symbols contained within those sections.
This diff sets the stage for implementing and testing
.subsections_via_symbols, where we will break up InputSections by each symbol
and sort them more granularly.
Depends on D79228.
From what I understand of https://llvm.org/docs/ProgrammersManual.html#dss-stringmap, StringMap copies key strings over into its own storage. That's great when you want it to take ownership of the key strings, but all our strings here should already be part of the global allocator pool. I think DenseMap<StringRef, SymbolPriorityEntry> would work better for us here.
In the process, I went down a bit of a rabbit hole on LLVM's hash tables and CachedHashStringRef, and now I'm confused about LLD's usage of the latter :D I'll probably post to llvm-dev.