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: 9 Nov 06 notes from GCC improvement for Itanium conference call


Vladimir Yanovsky wrote:

You may want to be aware of this:
http://gcc.gnu.org/wiki/SwingModuloScheduling
It could be related.

Vladimir


>Comments by Vladimir: >--------------------- >About software pipelining for Itanium: It is completely broken, more >accurately it never worked for Itanium. Because it is very (probably >most) important optimization for Itanium, after making SP working it >should be switched on by default at least for Itanium to keep it >working. GCC has a lot of optimizations which are not on by default >and they have tendency to be broken sometime.



I'm not sure whether Vladimir Makarov's comment above refers to modulo
scheduling (which is a special case of software pipelining) or to the RCSP
(resource-constrained software pipelining). Anyhow, what I really meant to
cite from the original note is this:


That comment was about SMS. Last time when I tried SMS for Itanium on SPEC2000 a few monts ago, a lot of tests did not work. As RCSP I don't think we need this. It is too complicated algorithm. Mainstream approach is modulo scheduling. I hope people from ISP RAS will implement enhanced software pipleining (as part of their new insn scheduler) as a complimentary software pipelining algorithm for loops with branches.

Imho the big problem of implementing software pipelining in gcc environment is passes working after the MS and changing the pipelined code. SMS is actually good for gcc because it makes register allocator changes (when register pressure is high) is less frequent. Unfortunately reload (ant other subsequent passes) does other transformations too (not only spilling registers when the pressure is high). But as Dorit wrote in her email SMS works well at least for PPC.


We also plan to fix swing modulo scheduling to make it work on ia64
and improve it by propagating data dependency information to RTL. We
plan to discuss this project on the GCC mailing list in a few weeks.






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