|[3 earlier articles]|
|Re: SPARC compiler optimisation firstname.lastname@example.org (1992-02-15)|
|Re: SPARC compiler optimisation email@example.com (1992-02-22)|
|Re: SPARC compiler optimisation firstname.lastname@example.org (1992-02-26)|
|Re: SPARC compiler optimisation email@example.com (1992-02-27)|
|Re: SPARC compiler optimisation nickh@CS.CMU.EDU (1992-02-28)|
|Re: SPARC compiler optimisation nickh@CS.CMU.EDU (1992-03-02)|
|Re: SPARC compiler optimisation firstname.lastname@example.org (1992-03-02)|
|Load and store double (WAS: SPARC compiler optimisation) email@example.com (1992-03-03)|
|Dual-word moves (was SPARC compiler optimisation) firstname.lastname@example.org (1992-03-03)|
|Re: SPARC compiler optimisation email@example.com (1992-03-09)|
|From:||firstname.lastname@example.org (Preston Briggs)|
|Organization:||Rice University, Houston|
|References:||92-02-120 92-02-133 92-03-004|
|Date:||Mon, 2 Mar 1992 19:11:54 GMT|
email@example.com (David Keaton) writes:
> This can be cut down by
> aligning on a 64-bit boundary and using ldd (load-double) instructions.
> On implementations with a 64-bit bus, this doubles the througput. On
> 32-bit implementations, it adds only one clodk to the load instead of the
> minimum two or three for a whole extra load instruction. Neither the Sun
> nor the GNU compilers take advantage of this very well.
nickh@CS.CMU.EDU (Nick Haines) writes:
>Can I ask whether gcc2 makes use of ldd and std? Or whether there are _any_
>compilers out there that do? It was very frustrating.
The alignment restrictions make compiler use of LDD and STD very tough.
In particular, it's difficult for the compiler to be sure that arguments
to subroutines are aligned. We've thought about doing interprocedural
propagation of alignment information, but never built such a thing. I'm
not sure how often it would pay off. Perhaps often in numeric Fortran;
I'm not so sure about C routines.
I think of aligned LDD and STD as kind of a mistake for RISC machines,
since they can't be generated by compilers. I expect they're usually
justified for their usefulness in hand-coded library routines, especially
block copies and such, where alignment can be tested.
Return to the
Search the comp.compilers archives again.