Hi!

 Has there been any contribution from HP at all on itanium specific
optimizations? I am referring to instruction scheduling and stuff at
that level.

 Our interfaces are derived largely from stanford (SUIF) -but if I had
to contribute, I can contribute to the existing environment. It is a
question of whether the gcc team needs optimizations and/or someone else
from HP is already contributing towards that (and of course whether HP's
policy allows for me to controbute).

Regards
-kamal

-----Original Message-----
From: Vladimir N. Makarov [mailto:[EMAIL PROTECTED] 
Sent: Friday, June 01, 2007 8:53 PM
To: Prasad, Kamal R
Cc: gcc@gcc.gnu.org
Subject: Re: Optimizations for itanium

Prasad, Kamal R wrote:

>Hello,
>
> Can someone tell me the back-end optimizations available for itanium 
>(IA64)?
>We (HP) may be able to contribute to this from our side.
>
>  
>
Sorry, it is ambiguous question.  There are a lot of optimizations in
GCC.  Most of them are available for Itanium.

If you are interesting in the state of optimizations specific and quite
important for Itanium, then here is the list of a few of them:

o data dependence and alias analysis.  It is pretty good on tree-SSA
level (you could ask Daniel Berlin [EMAIL PROTECTED] and Diego
Novillo [EMAIL PROTECTED] about details) but this information is not
propagated to RTL.  ISP (institute for system programming) of  RAS
(Russian Academy of Sciences) have been working on this but I don't know
the current status of the work.  Please contact Andrew Belevantsev
[EMAIL PROTECTED] if you want to know more.

o modulo scheduling.  GCC has swing modulo scheduling (please ask Ayal
Zaks [EMAIL PROTECTED] about the details).  Imho, major problem with the
implementation is absence a good data-dependency analysis on this level,
difficulties to use DFA for pipelining, and modulo scheduling is done
early (there are code changes after that).  A lot of thing can be done
to improve it (including predicated prologue/epilogue loops).

o instruction scheduling.  GCC uses regional insn scheduler without insn
cloning which is originated from Haifa scheduler and supports data and
control speculation (that was implemented by ISP RAS).  There is ongoing
work to implement more sophisticated insn-scheduler (including enhanced
software pipelining).  This work is close to selective scheduling.  The
work is done by ISP RAS, so please contact to them about the details.

o data prefetching.  It has been implemented on tree-SSA level by Zdenek
Dvorak  ([EMAIL PROTECTED]).  Imho, this implementation is in a
pretty good shape.

The major problem of the contribution of a code to GCC from other
compilers is the different environment (IR, infrastructure, coding
standards and so on).  For example, Haifa insn scheduler has been
contributed almost 10 years ago and imho still not fully integrated yet.
There are also legal issue to bring the code.  So I think it is more
productive to work on improvement of the current GCC implementation.
But may be I am wrong and your code has a very a good interface and can
be easily integrated in any compiler.

Vlad

Reply via email to