[PATCH] D29240: IR: Consider two DISubprograms to be odr-equal if they have the same template parameters.

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 30 18:08:58 PST 2017


I'm having trouble paging this back in.

IIRC, one goal was to improve compile time by checking fewer fields.  Do you happen to know why the LinkageName wasn't sufficient here?  Sure, this fixes a crash, but why?

Also, for debug info testcases that aren't handmade, we usually include the C/C++ source in comments so that it's easy to regenerate them.  Maybe if I saw the source I would understand the root cause.

> On 2017-Jan-27, at 21:35, Peter Collingbourne via Phabricator <reviews at reviews.llvm.org> wrote:
> 
> pcc added a comment.
> 
> It occurred to me that this may have something to do with the `enableDebugTypeODRUniquing()` thing, so figured we could just turn it off if we end up splitting the module. But I took a closer look at the code and discovered that they are completely separate (clang has this turned off anyway, as I'd expect). Taking a look at history it looks like both mechanisms were added around the same time. Why do we have both? Can't we have `enableDebugTypeODRUniquing()` also turn on the `isDeclarationOfODRMember` uniquing?
> 
> 
> https://reviews.llvm.org/D29240
> 
> 
> 



More information about the llvm-commits mailing list