This is the mail archive of the gcc-help@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: Fwd: gcc instruction scheduling makes things worse?


He Xiao wrote:
When I finished the scheduler, I got a strange phenomenon:
The CPI is reduced, but the total execution cycles are dramatically increased.

I  read  THE GNU INSTRUCTION SCHEDULER written by  Michael D. Tiemann,
which mentioned a similar situation in sparc arch( chapter 7 extension
and future work), This article infromed me that register pressure is a
really big problem during instruction scheduling. I know I must ignore
something critical, but I don't know what it is. Is anyone there
helping me? Thank in advance.

You should use gcc-help mailing list for such questions.

Michael Tiemann's scheduler was removed long ago (I don't remember exactly but about 10 years ago). That was a list BB block scheduler processing dependencies backward.

The current scheduler (except schedulers used for Itanium) is based on IBM Haifa Lab interblock scheduler.

But the problem is still the same: usage of Haifa scheduler before RA may result in worse code in average for architectures with small or moderate size register file. That is because the scheduler is not register pressure aware. And that is one reason why insn scheduler before RA are switched off for x86/x86_64.

Some work on register pressure sensitive insn scheduling is being done. I hope this work will be available for GCC4.5.


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