From: Vladimir Makarov <vmakarov@redhat.com>
To: reply@meinersbur.de
Cc: gcc@gcc.gnu.org
Subject: Re: Register Pressure in Instruction Level Parallelism
Date: Mon, 29 Jun 2009 20:40:00 -0000 [thread overview]
Message-ID: <4A491793.1020404@redhat.com> (raw)
In-Reply-To: <4A490F97.5000609@uni-paderborn.de>
Michael Kruse wrote:
>
>
> Vladimir Makarov wrote:
>> Michael Kruse wrote:
>>> If the register sufficiency is higher than the physical number of
>>> registers, spill code is added to the graph.
>>>
>> For me, that is the most interesting part, unfortunately Touti (as I
>> remember) in his thesis say practically nothing about this.
> In the thesis, a modified Poletto algorithm is presented to add spill
> code.
>
>
I've just checked the thesis again. I don't think decreasing register
pressure through spilling will work well. First of all Polleto linear
scan RA is worse than Chaitin-Briggs approach. Even its major
improvement extending linear scan is worse than Chaitin-Briggs
approach. My experience with an ELS implementation in GCC has shown me
this although in original article about ELS the opposite is stated (the
comparison in the article was done in GCC but with the new ra project
which was unsuccessful implementation of Chaitin-Briggs RA and it was
done only on ppc64. I am sure that on x86/x86_64 ELS would behave even
worse). That is about basic RA spill in Touti's thesis.
The bigger problem is that decreasing register pressure does not take
live range splitting into account what good modern RAs do. With this
point of view, an approach for register pressure decrease in Bob
Morgan's book is more perspective because it does also live range
splitting (by the way, I tried Morgan's approach with the old RA more
than 5 year ago and did not look compelling for me that time).
>>> I'd prefer to implement this for the gcc, but my advisor wants me to
>>> do it for the university's own compiler. Therefore I could also need
>>> arguments why to do it for the GCC.
>>>
>> Personally, I'd love to see this work done in GCC. I believe the
>> research work in compiler field should be done in real industrial
>> compilers because that is a final target of the research. I saw many
>> times that researchers report big improvements of their algorithms
>> because they are using toy compilers but when the same algorithms are
>> implemented in GCC they give practically nothing. For me a toy
>> compiler criteria is defined how good they are on some generally used
>> compiler benchmarks as SPEC (the better existing compiler
>> performance, the harder to get the same percent improvement). So if
>> your university compiler performance is close for example to
>> SPECFP2000, I think you could use it to get a real optimization impact.
>>
>> On the other hand, you definitely will get better numbers (and
>> spending less time) using a toy compiler than GCC and your research
>> probably could look more successful with the academic point of view.
> I don't think it a toy project. Industry is involved (embedded
> systems) and it also has multiple back-ends. The problem with it is,
> that it is (at least partially) proprietary. And I don't know about
> the other part. However, you can't download it on the web.
Could you tell us what compiler is this?
next prev parent reply other threads:[~2009-06-29 19:35 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-28 12:37 Michael Kruse
2009-06-28 19:06 ` Dave Korn
2009-06-28 22:53 ` Albert Cohen
2009-06-28 23:56 ` Dave Korn
2009-06-29 6:13 ` Albert Cohen
2009-06-29 18:04 ` Vladimir Makarov
2009-07-01 6:09 ` Jeff Law
2009-07-02 21:53 ` Vladimir Makarov
2009-07-01 5:58 ` Jeff Law
2009-06-29 0:30 ` Michael Kruse
[not found] ` <303e1d290906281549t4ebfce81m5152069742fa9a1@mail.gmail.com>
2009-06-29 6:28 ` Fwd: " Kenneth Zadeck
2009-06-28 23:01 ` Michael Kruse
2009-06-29 0:03 ` Dave Korn
2009-06-29 17:05 ` Vladimir Makarov
2009-06-29 16:27 ` Vladimir Makarov
2009-06-29 20:03 ` Michael Kruse
2009-06-29 20:40 ` Vladimir Makarov [this message]
2009-06-29 21:04 ` Michael Kruse
2009-06-30 15:01 ` Albert Cohen
2009-07-01 6:06 ` Jeff Law
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A491793.1020404@redhat.com \
--to=vmakarov@redhat.com \
--cc=gcc@gcc.gnu.org \
--cc=reply@meinersbur.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).