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: alpha call patterns


> A while back I was working on improving the call patterns on Alpha.  The
> problem is, the compiler doesn't know that a call is really a load
> instruction followed by a jump.

No, the problem is that gcc does not know how to separate address
loads and calls or memmory loads but keep them related, ie.

	ldq	$16,bar!literal!1
	ldq	$27,foo($gp)!literal!2
	...
	ldq	$16,0($16)!lituse_base!
	jsr	$26,($27),foo!lituse_jsr!N

But for now, I'll warrent you'll get more speed on OSF/1 with ld -O2
as it is, since it should be able to replace ldq/jsr in most cases
with bsr.  But it needs the LITUSE relocs emitted by the macro to do it.

> I don't know if newer versions of gcc or gas are any better.

Not wrt this issue.  I know how to do what needs to be done to get
the link time optimizations, but havn't gotten to it yet.

> I gave up on Alpha a year ago (Linux/Alpha was so bad that I decided
> I would be better off using my Alpha as a table to hold my SPARC manuals).

Sorry to hear that.  I think we're pretty stable these days, and though
we still need more compiler work we don't suck -- we can get 95% of DU's
cc performance on EV4, somewhat less on EV5.  I hope haifa will be able
to help out with this.



r~


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