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]

Re: IA-64 Porting


In article <00c701c0a168$ecdb2730$eafea0cc@noida.hclt.com> you write:
>I am interested in knowing the information regarding 
>porting of GCC for IA-64 architecture.

There is no convenient documentation for this work, as no one has written a
paper about the port.

>How would GCC be optimized for  IA-64
>features like branch predication,Advance Loads
>etc.

branch prediction and predication are two different topics.

predication support was added by extending the RTL to represent predicated
instructions, and adding the if-conversion (ifcvt.c) optimization pass.
Also, a register renaming pass was added that helps with register allocation
of predicated code.

Nothing specific has been done for branch prediction, but gcc already has
features added for other targets that can be used here.  There is a basic
block reordering pass that estimates branch probabilities.  This info can
be used to set branch prediction bits, and the IA-64 port does use this info.
There is builtin_expect which allows the programmer to indicate branches that
are likely/unlikely to be taken.  There is support for profile-directed
feedback that can drive branch prediction.

Advanced loads are currently not supported.  We need data/control speculation
optimizations in order to support them.  There is some support for control
speculation in the current scheduler, but I don't think we are using it
in the IA-64 port yet.  This is probably the next big optimization project
that will need to be worked on for the IA-64 back end.

Jim


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