[Bug tree-optimization/37916] [4.3/4.4/4.5/4.6 Regression] SSA names causing register pressure; unnecessarily many simultaneously "live" names.

hp at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Mar 11 01:31:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37916

--- Comment #20 from Hans-Peter Nilsson <hp at gcc dot gnu.org> 2011-03-11 01:31:14 UTC ---
(In reply to comment #19)
> Random thought on this PR: With a scheduler description, -fschedule-insns
> -fsched-pressure may help.

That theory should be testable by compiling for e.g. a x86_64 target; see
comment #12, but to answer your question...

> Is there a reason why there is no scheduler description?

Yes.  For a while, there was nothing to schedule.

...except for CPUs in systems a cache, where it helps to schedule to avoid RaW
hazards.
...and then pipelined variants came, with other hazards to schedule (to avoid
bubbles, no mips1-type madness).
...but then, I noticed that scheduling with the "new" scheduler wasn't
supported for CC0 targets.
...which later was either fixed, or just a plain misunderstanding (cf.
m68k/cf.md).
...and when checking the cycle-correct simulator, I found that there weren't
many cycles to schedule away, hence a fair amount of work for no apparent gain,
at least for the intended purpose of insn scheduling.

There you go, the reasons in a nutshell.  And while there's still a possibility
that it's a pragmatic solution (modulo #c12), it doesn't strike me as requiring
a scheduler to be the Right Thing to do for a fix to this problem.
(Though from a general GCC maintenance perspective, automatically defaulting to
a trivial scheduler might be a good idea.)



More information about the Gcc-bugs mailing list