Re: SPARC compiler optimisation

nickh@CS.CMU.EDU (Nick Haines)
Mon, 02 Mar 92 20:01:55 GMT

          From comp.compilers

Related articles
[2 earlier articles]
Re: SPARC compiler optimisation how@leland.stanford.edu (1992-02-14)
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)
Re: SPARC compiler optimisation vanroy@prl.dec.com (1992-03-09)
| List of all articles for this month |
Newsgroups: comp.compilers
From: nickh@CS.CMU.EDU (Nick Haines)
In-Reply-To: nickh@CS.CMU.EDU's message of 28 Feb 92 15:53:21 GMT
Keywords: optimize, sparc
Organization: School of Computer Science, Carnegie Mellon University
References: 92-02-120 92-03-004
Date: Mon, 02 Mar 92 20:01:55 GMT

In article 92-03-004 I wrote that last year I had
difficulty getting gcc or cc to generate ldd and std instructions. I
have received several mail messages, suggesting the use of the -malign
or -dalign switches (on gcc and cc respectively).


I did try these switches. They didn't help. To give a little more detail:
I was working on data in memory that was constructed there by another
program. I knew that certain pointers in this data could _only_ (by the
nature of the other program) point to double-aligned objects. (By the
point my code accesses these objects, it is deducible that they are
double-aligned from the prior bit-twiddling on the pointers, but I did not
expect any compiler to spot this). I spent 4 days trying to convey this
fact to either compiler, inculding the use of -malign and -dalign, and
declaring a union type between these objects and double floats (and long
long ints under gcc). There seemed to be no way.


These switches seem just fine for _allocating_ (static, or even dynamic)
memory as double-aligned, and I seem to recall that in one case the copy
of an object kept in the stack (which was completely unnecessary) was
double-aligned, but I couldn't do what I wanted at all.


I would have dearly liked a type declaration specifier, similar to
`register' or `static', with which I could give the alignment of these
objects, and this seems to me to be the natural solution, but neither
compiler gives it.


Nick Haines nickh@cs.cmu.edu
--


Post a followup to this message

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