[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