Re: [patch][PR52640] Fix quadratic behavior with many referenced extern functions

2012-03-26 Thread Steven Bosscher
On Wed, Mar 21, 2012 at 9:35 PM, Diego Novillo wrote: > On 3/21/12 3:30 PM, Steven Bosscher wrote: > >> +/* FIXME: Trunk is at GCC 4.8 now and the above problem still hasn't been >> +   addressed properly.  This caused PR 52640 due to O(external_decls**2) >> +   lookups in the pending_assemble_ext

Re: [patch][PR52640] Fix quadratic behavior with many referenced extern functions

2012-03-21 Thread Diego Novillo
On 3/21/12 3:30 PM, Steven Bosscher wrote: +/* FIXME: Trunk is at GCC 4.8 now and the above problem still hasn't been + addressed properly. This caused PR 52640 due to O(external_decls**2) + lookups in the pending_assemble_externals queue in assemble_external. + Paper over with this point

[patch][PR52640] Fix quadratic behavior with many referenced extern functions

2012-03-21 Thread Steven Bosscher
Hello, The test case for this bug triggeres O(extern_delcs**2) behavior because value_member traverses the pending_assemble_externals list from start to end for every new extern decl. The solution I've picked, is to add a pointer set, and while there I made pending_assemble_externals a VEC instea