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