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.
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. 2) Use more precise way to calculate the values of the two kind of cycles, or just ignore this benefit assertion. 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'. Mostafa Hagog <[EMAIL PROTECTED]>: > > > > > Steven Bosscher <[EMAIL PROTECTED]> wrote on 22/04/2005 09:39:09: > > > > > > Thanks! > > For the record, this refers to a patch I sent to Mostafa and Canqun to > > do what Mostafa suggested last month to make SMS work for ia64, see > > http://gcc.gu.org/ml/gcc-patches/2005-03/msg02848.html. > > I have tested the patch on powerpc-apple-darwin and there are some tests > that > started failing. So I am going to debug it to see what causes the failures. > > Mostafa. > > > > > Gr. > > Steven > > > > > > Canqun Yang Creative Compiler Research Group. National University of Defense Technology, China.