More than you ever wanted to know about Fortran array indexing;-)

Toon Moene toon@moene.indiv.nluug.nl
Thu Oct 9 15:14:00 GMT 1997


Jeff wrote:

>  On a somewhat related note, as I've mentioned, with my
>  patch to handle more complex givs (aka the USE patch) I
>  generally get worse code on my PA.  I _believe_ this is
>  due to loop not realizing that many givs are related and
>  due to the giv cost/benefit analysis not handling more
>  complicated givs.

Pah, it probably means the PA is broken as an architecture :-) -  
I've tried it on machines as far apart as DEC Alpha and Motorola  
m68k - all Fortran code I throw at it gets compiled to better code  
*with* your `USE' patch; certainly all others (with possibly the x86  
as the sole exception) must fall between these extremes ...

Oh, BTW, making combine_givs_p accept all possible candidate givs  
for combining does not result in much improvement, because the  
return value of this function is but one of the (half a dozen)  
conditions that have to be fulfilled before giv G2 can be combined  
with giv G1 (see the routine combine_givs, i.e. without `_p').

Obviously, this could work correctly if every giv could have a  
_list_ of other givs that could be combined with it, and  
combine_givs computed the transitive closure of the  
G2-combines-with-G1 relation (checking, in the mean time, that the  
computational relationship remained a valid addressing mode).

But that requires `some' more work ;-)

Cheers,
Toon.



More information about the Gcc mailing list