This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Register Allocation
- From: Adrian Strätling<adrian dot straetling at cs dot tu-chemnitz dot de>
- To: GCC <gcc at gcc dot gnu dot org>
- Date: Tue, 21 Sep 2004 23:13:53 +0200
- Subject: Register Allocation
Hi,
I'm working on a target that does support up to 8 parallel instructions,
but they have to be grouped at compile time. The scheduler could do much
better than it currently does if there were less (output) depencies.
Is it possible to tell the register allocator not to reduce the register
count to the minimum?
example:
( || means that this insn is executed in parallel to the last one )
1) mvkl L4, b4 \
2) mvkh L4, b4 + push ret_label
3) stw b4, *--b15 /
|| mvkl times2, b4 \
4) mvkh times2, b4 + branch
5) b b4 /
L4:
If the second temporary were not assigned to b4 but to b5, the schedule
would be shorter:
1) mvkl L4, b4
|| mvkl times2, b5
2) mvkh L4, b4
|| mvkh times2, b5
3) stw b4, *--b15
|| b b5
L4:
Thanks,
Adrian