[llvm] [DebugInfo] Make DIArgList inherit from Metadata and always unique (PR #72147)

Stephen Tozer via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 16 07:38:28 PST 2023


SLTozer wrote:

>     * It looks like some files might end up being different according to the compile time tracker [0], in that one or two of the bitcode files report file-size differences. It's not clear to me whether that's actually a spurious difference though, as the numeric sizes aren't different.

I'll try and reproduce this before merging to make sure nothing bad is going on - I have suspicions that this is an innocent case of us being able to merge debug history ranges that previously were pinged as different due to distinct DIArgLists, but there's a (`+0.00%`) size increase for 7zip, so I'll need to figure out whether anything weird is happening there.

>     * IIRC the reason why https://reviews.llvm.org/D108968 was filed was because of a nondeterminism problem when uniquifying DIArgLists that only appears deep in LTO builds. We should be careful about re-enabling DIArgList uniquification in light of that, I see it's being re-implemented here (will look), is that likely to solve the reported nondeterminism issue?

The non-determinism problem solved in that patch was essentially that we _weren't_ properly reuniquing DIArgLists, so we ended up in situations where equal DIArgLists had different pointers. This change should properly reunique DIArgLists, and should actually close a potential case where equal DIArgLists can have different pointers (i.e. if one is made distinct).

https://github.com/llvm/llvm-project/pull/72147


More information about the llvm-commits mailing list