[llvm-dev] Scaling to many basic blocks

Michael Zolotukhin via llvm-dev llvm-dev at lists.llvm.org
Sat Aug 22 15:57:24 PDT 2015


Hi,

Several passes would have troubles with such code (namely, GVN and JumpThreading). Recently we exposed similar issues when new more aggressive unrolling heuristic was implemented - we unrolled big loops expecting that the linear code would be then optimized, and it indeed was optimized, but compile time regressed significantly. But probably some of these issues have been fixed already - I didn’t check.

Thanks,
Michael
> On Aug 22, 2015, at 3:03 PM, Russell Wallace via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> How well does LLVM scale to many basic blocks? Let's say you have a single function consisting of a million basic blocks each with a few tens of instructions (and assuming the whole thing isn't trivially repetitive so the number of simultaneously live variables and whatever is large) and you feed that through the optimisers into the backend code generator, will this work okay, or will it take a very long time, or will it run into a scenario of 'look, all compilers are designed on the assumption that nobody is going to write a million lines of code in a single function'? (Not that I'm planning to do so by hand either, I'm just thinking about certain scenarios in automatic code generation.)
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.llvm.org_cgi-2Dbin_mailman_listinfo_llvm-2Ddev&d=BQIGaQ&c=eEvniauFctOgLOKGJOplqw&r=ygVmcuuQ1MUhRUoJm-IgPtgjmvM0byfjlHDg99vufEI&m=z0N7FJAyaeJqJqE_W9ltYzHHpYI5tfa3q7x8UoMNaLA&s=mVoa5Fp3pKx6PIZ3F96zYIKlJmBSyzqARoAtuu0ws5A&e= 



More information about the llvm-dev mailing list