Michael137 wrote:

> > Sorry, it's been a while since I last reviewed this and I must admit I 
> > forgot about this in the mean time. The only thing I'd like to check before 
> > we can land this is to hear from @Michael137 who has been actively working 
> > on FindTypes performance recently whether this aligns or clashes with what 
> > he's been working on so we don't get a mid-air collision between patches.
> 
> Sounds good, I look forward to hearing if this fixes the issues as well. 
> Before this fix I ran a case where I did an expression like 
> "MyClass::iterator" and before this fix, with linux and no accelerator 
> tables, we would convert DWARF into clang AST types for over 2 million types, 
> and after this fix it went down to 11. This was when debugging LLDB + LLVM + 
> clang with debug info, so there were TONS of "iterator" entries in the manual 
> DWARF index.
> 
> On Apple the type accelerator tables have the hash of the fully qualified 
> name which can help reduce the number of types we parse, but we don't have 
> this on linux even with DWARF5 + .debug_names

To add more context to Adrian's comment, we've been working on reviving 
https://reviews.llvm.org/D101950, which changes the way we complete record 
types. The main blocker was performance, because as you mention, we often end 
up doing these expensive namespace searches, which gets much more noticeable 
with D101950. The problem we saw was mostly triggered by the second lookup that 
`-gsimple-template-names` does in `FindTypes`.

I applied your patch on top of D101950 and performance seems to be much better 
(by 2 orders of magnitude). It did break some tests locally for me, so I'm just 
skimming this patch to see what changed

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

Reply via email to