This is the mail archive of the gcc@gcc.gnu.org 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]

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


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