labath wrote:

I re-ran the number, and the results are roughly the same.

> Am I misremembering that this came up before elsewhere? I guess that's what 
> the simple-template-name stuff fixed?

Yes, simple template names came about because some targets were overflowing the 
debug_str section. I'm kinda surprised it's overflowing again, but I don't know 
the details/numbers there.

> Not sure where we go from here then if this is a blocker.

It's definitely a "problem", but I'm not sure if it's a "blocker". We had some 
discussions about what we could do to absorb that cost, but it's not trivial 
and it's getting kind of over my head. The thing is that, while the size 
increase is unfortunate, the change also makes a lot sense as it makes things 
consistent, both with gcc and with clang's non-structor functions. This week is 
also pretty busy for all the llvm people, so we don't really have an official 
position on this.

> Maybe there's a way to reduce the amount of linkage names we emit, though not 
> sure off the top how we would decide that.

I don't know either. I was looking at the generated debug info with @dwblaikie, 
and we didn't find anything obvious.

> without having to do structural matching on the DIE context. I suppose we can 
> go back to that method. That would also still leave the cross-module case an 
> open question..

I like the structural match method, as it would open the door to potentially 
removing the linkage names from declaration DIEs (thereby *saving* debug_str 
space), but that's a more speculative approach, with unknown performance and 
other possible issues, so I don't feel entirely comfortable asking you to go 
down that path. The cross module thing is tricky, but I don't think it's 
fundamentally unsolvable -- basically, we just need to find a way to pass DIE 
information from one module to another.

> And from digging around, it looks like on linux we already rely on the 
> ManglingSubstitutor for the aliased structor variant case.

Yeah, that's because linux (elf?) will simply not generate the symbol for the 
C1 if the ABI doesn't require it to do that (and it's equivalent to C2). This 
actually brings back (painful) memories of when I (some 10 years ago) tried to 
remove this "optimization" and it caused an large increase in the .symtab 
section.

https://github.com/llvm/llvm-project/pull/149827
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to