[sel-sched] Allow the scheduler to work before register allocation

Andrey Belevantsev abel@ispras.ru
Thu Mar 29 15:46:00 GMT 2007


Hello,

This patch allows the scheduler to work before reload on ia64.  The 
following changes were needed:

- new function choose_best_pseudo_reg that works for pseudos instead of 
hard regs.  At the moment, it doesn't control register pressure in any 
way, i.e., new register is allocated whenever it's needed; I'm going to 
fix this after performance testing.

- bugfixes in handling SCHED_GROUP_P insns;

- not moving TRAP_RISKY insns through a jump insn;

- setting no_new_pseudos to 0, and extending sched-deps.c structures 
accordingly;

- substitution inside subregs is not allowed for now.  This is because 
validate_change calls simplify_subreg when we change things inside one, 
and later we're not able to unsubstitute, and thus to find an original 
operation;

- new flag selective_scheduling2 to use after reload.

By default, the scheduler still works only after reload (until the 
register pressure problems are not fixed.)  Bootstrapped and regression 
tested (c, c++, fortran) on ia64.  There was a single failing testcase 
compared to the unpatched branch; however, the testcase also failed when 
the 2nd scheduler wasn't run at all, and we didn't find any problems in 
the 1st pass.

Committed to sel-sched branch as revision 123331.

Andrey


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: beforeload-fixes-1.clg
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070329/c440ac9c/attachment.ksh>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: beforeload-fixes-1.diff
Type: text/x-patch
Size: 37499 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20070329/c440ac9c/attachment.bin>


More information about the Gcc-patches mailing list