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: Live range shrinkage in pre-reload scheduling


On 05/15/2014 02:46 AM, Ramana Radhakrishnan wrote:
> On Wed, May 14, 2014 at 5:38 PM, Richard Sandiford
> <rdsandiford@googlemail.com> wrote:
>> Vladimir Makarov <vmakarov@redhat.com> writes:
>>> On 2014-05-13, 6:27 AM, Kyrill Tkachov wrote:
>>>> Hi all,
>>>>
>>>> In haifa-sched.c (in rank_for_schedule) I notice that live range
>>>> shrinkage is not performed when SCHED_PRESSURE_MODEL is used and the
>>>> comment mentions that it results in much worse code.
>>>>
>>>> Could anyone elaborate on this? Was it just empirically noticed on x86_64?
>>>>
>>> It was empirically noticed on SPEC2000.  The practice is a single
>>> criteria for heuristic optimizations.  Sometimes a new heuristic
>>> optimization might look promising but the reality might be quite different.
> Vlad - Was that based on experiments on x86_64 ?
>
>
Yes, I benchmarked x86 and x86-64.  I believe this pass can help when we
don't use the 1st insn scheduler (that is x86/x86-64 case).  If the 1st
insn scheduler is profitable, I guess it is better to use
register-pressure insn scheduling than live-range shrinkage + insn
scheduling (even with register pressure).

Even for x86/x86-64 the improvement was quite small for live-range
shrinkage.  Therefore it is not a default optimization.  There are a set
of optimizations in GCC which can improve some cases worsen others in
practically equal number of cases.  They could be a good candidate for
machine-learning option choosing (e.g. MILEPOST project) because it is
hard to predict for human when they help (if it would be easy then we
could switch on these optimizations only for such cases).

I guess somebody could continue work on improving live-range shrinkage
on the scheduler code base.  May be there are better approaches to mine
here.



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