[llvm] [BOLT][NFC] Unset UseAssemblerInfoForParsing for emission (PR #94778)

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 7 12:00:42 PDT 2024


MaskRay wrote:

> > Any idea why there is a quadratic behavior? Is the LayoutOrder cache not utilized? The following code should only be executed once for each section.
> > ```
> >         for (MCFragment &F : *FA->getParent())
> >           F.setLayoutOrder(++LayoutOrder);
> > ```
> > 
> > 
> >     
> >       
> >     
> > 
> >       
> >     
> > 
> >     
> >   
> > If you have any smaller example, I am happy to investigate by myself. My arbitrary picking one bold/test test doesn't find any repeated execution pattern.
> 
> The issue manifests only for large binaries with LSDA (C++ exceptions). RocksDB might be a suitable target. I can try to prepare the binary and add it to [rafaelauler/bolt-tests](https://github.com/rafaelauler/bolt-tests)

Thanks! I guess you probably came to the wrong culprit b06e736982a3568fe2bcea8688550f9e393b7450 , which made me confused. The culprit for your use case might be the trigger #91082 .

LGTM. These `getUseAssemblerInfoForParsing` instances are tech debt, which I hope will be eliminated at some point...

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


More information about the llvm-commits mailing list