Re: SPARC compiler optimisation

preston@dawn.cs.rice.edu (Preston Briggs)
Mon, 2 Mar 1992 19:11:54 GMT

          From comp.compilers

Related articles
[3 earlier articles]
Re: SPARC compiler optimisation ucsd!math.ucla.edu!pmontgom@uunet.uu.net (1992-02-15)
Re: SPARC compiler optimisation grunwald@foobar.cs.colorado.edu (1992-02-22)
Re: SPARC compiler optimisation andrew@highland.oz.au (1992-02-26)
Re: SPARC compiler optimisation dmk@craycos.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 preston@dawn.cs.rice.edu (1992-03-02)
Load and store double (WAS: SPARC compiler optimisation) pardo@cs.washington.edu (1992-03-03)
Dual-word moves (was SPARC compiler optimisation) ram+@cs.cmu.edu (1992-03-03)
Re: SPARC compiler optimisation vanroy@prl.dec.com (1992-03-09)
| List of all articles for this month |
Newsgroups: comp.compilers
From: preston@dawn.cs.rice.edu (Preston Briggs)
Keywords: sparc, optimize
Organization: Rice University, Houston
References: 92-02-120 92-02-133 92-03-004
Date: Mon, 2 Mar 1992 19:11:54 GMT

dmk@craycos.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.


Preston Briggs
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.