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]

Re: SMS in gcc4.0


On Wednesday 01 June 2005 16:43, Canqun Yang wrote:
> Hi, all
>
> I've taken a look on modulo-sched.c recently, and found
> that both new_cycles and orig_cycles are imprecise. The
> reason is that kernel_number_of_cycles does not take the
> data dependences of insns into account as the DFA
> scheduler does in haifa-sched.c.

How does this affect the cycles computation?

> On IA-64, three improvements are needed to let SMS work.
> 1) Modify doloop_register_get or the similar function
> defined in doloop.c to recognize the loop count
> register. I have supplied a patch about this in April.

Mustafa and I have a patch that has a similar effect, see
http://gcc.gnu.org/ml/gcc-patches/2005-06/msg00035.html.

> 2) Use more precise way to calculate the values of the
> two kind of cycles, or just ignore this benefit assertion.

Probably need to be more precise :-/

When I manually hacked modulo-sched.c to ignore this test, I
did see loops getting scheduled, but I also ran into ICEs in
cfglayout.

> 3) The counted loop register 'ar.lc' of IA-64 can not be
> updated  directly. Another temporary register is needed
> to evaluate the value of the actural loop count after
> SMS schedule, and assign its value to 'ar.lc'.

Actually, should SMS just not update the loop register in place?
I never figured out why it tries to produce a sub insns (using
gen_sub2_insn which is also wrong btw).

Gr.
Steven


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