Vladimir N. Makarov wrote:
Maxim Kuvyrkov wrote:

Hi.

I want to share some of my thoughts and doings on improving / cleaning
up current GCC instruction scheduler (Haifa) - most of them are just
small obvious improvements.

I have semi-ready patches for about a half of them and would appreciate
any early suggestion or comments on the following draft plan:


...

Any comments, suggestions or 'please don't do that' will be greatly
appreciated.


...


Good aliasing is very important for the scheduler. But I'd look at this more wider. We need a good aliasing for many RTL optimizations. What's happened to ISP RAS aliasing patch propagating SSA info to RTL? Why is it stalled?

As for Sanjiv Gupta's aliasing work, that was interesting but as I remember the patch made compiler too slow (like 40% slower). You should make this approach faster to make it accepted as used by default.

I understand that good aliasing is important for several RTL passes and I hope that the general aliasing support will improve in time. I must admit that I didn't investigate the Gupta's patch yet, but I believe that it is so slow because it needs to rescan the function many times in order to get correct aliasing information. On the other hand alias analysis for scheduler's data speculation has a luxury of being not correct at times. So it looks like a low hanging fruit to me to try fast but not safe variant of Gupta's work and see if the magic will happen.


Another important thing to do is to make the 1st scheduler register pressure sensitive. It would improve performance and solve the 1st insn scheduling problem for x86, x86_64. Now it is off by default because the scheduler moves insns containing hard regs too freely and this results in failure of the reload to find a hard register of a small class.

If you need benchmarking for machines (like ppc) you have no access to, I can provide the benchmarking.

I should also mention that I do all these works in my spare time which
is not a lot, thus the above is my plan for about a half of the year.

I really appreciate. May be if you or ISP RAS could find students (e.g. from Moscow University) to do this as Google Summer Code, it could help you. I think it is not too late. You should ask Ian Taylor or Daniel Berlin, if you want to do this.

The projects I've described are too small to qualify as a 3 months works. But your suggestion to solve the 'scheduler -> ra' problem I would estimate just like the right one.

The other GSC project might be to investigate and fix the places in compiler where exported from tree-ssa aliasing information is being invalidated.

So basically here are three Google Summer of Code projects:

  o Scheduler -> RA
  o Fix passes that invalidate tree-ssa alias export.
o { Fast but unsafe Gupta's aliasing patch, Unsafe tree-ssa alias export } in scheduler's data speculation.

Ian, Daniel, what do you think?


Thanks,

Maxim


Reply via email to