Implements the ThinLTO summary support for memprof related metadata.
This includes support for the assembly format, and for building the
summary from IR during ModuleSummaryAnalysis.
To reduce space in both the bitcode format and the in memory index,
we do 2 things:
- We keep a single vector of all uniq stack id hashes, and record the index into this vector in the callsite and allocation memprof summaries.
- When building the combined index during the LTO link, the callsite and allocation memprof summaries are only kept on the FunctionSummary of the prevailing copy.
Should we add a comment indicating these are used by memprof?