This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: patch to implement thread coloring in IRA

On Wed, Nov 13, 2013 at 6:56 PM, Vladimir Makarov wrote:
>   The following patch improves coloring.  The order of pushing allocnos on
> the coloring stack from a bunch of colorable allocnos was always important
> for generated code performance.  LRA has a mechanism of allocating pseudos
> by threads.  Thread in LRA is a set of non-conflicting pseudos connected by
> moves (or by future reload insns).  Allocating pseudos by threads in LRA
> permits to improve code by increasing chance of removing the move insns.
>   So the same mechanism can be used for IRA.  The patch implements it.  The
> difference is only that LRA forms thread statically before allocation
> sub-pass.  That is because the basic allocation are already done in IRA.
> The statically thread forming works well for IRA too.  But even better
> results can be got by dynamically forming threads.  It means that we are
> forming threads during allocation and includes only colorable allocnos.
>   The results of using threads in IRA is pretty good.  The average code size
> (text segment) of SPEC2000 is improved (by >0.1% for x86 SPECFP2000 and >
> 0.3% for x86-64 SPECFP2000). The biggest code performance improvement (> 1%)
> is obtained on x86-64 SPECFP2000.  Performance tools report that additional
> code takes only about 0.05% additionally executed insns.


Can you please also update the leading comment in ira.c? It seems
worth mentioning this approach under the "Coloring" bullet
(Not sure if that whole comment block is otherwise up to date??)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]