Re: ELF to COFF Convertor

jgj@ssd.csd.harris.com (Jeff Jackson)
18 Mar 1997 12:58:55 -0500

          From comp.compilers

Related articles
ELF to COFF Convertor sarnaik@asic.mtv.nec.com (1997-02-16)
Re: ELF to COFF Convertor rfg@monkeys.com (1997-02-27)
Re: ELF to COFF Convertor arnold@mathcs.emory.edu (1997-02-27)
Re: ELF to COFF Convertor lfm@pgroup.com (1997-03-01)
Re: ELF to COFF Convertor meissner@cygnus.com (Michael Meissner) (1997-03-01)
Re: ELF to COFF Convertor jgj@ssd.csd.harris.com (1997-03-05)
Re: ELF to COFF Convertor meissner@cygnus.com (Michael Meissner) (1997-03-14)
Re: ELF to COFF Convertor jgj@ssd.csd.harris.com (1997-03-18)
| List of all articles for this month |
From: jgj@ssd.csd.harris.com (Jeff Jackson)
Newsgroups: comp.compilers
Date: 18 Mar 1997 12:58:55 -0500
Organization: I would rather be windsurfing.
References: 97-02-100 97-02-158 97-03-018 97-03-033 97-03-059
Keywords: linker

> A small data area points to a location in memory (+32768 from the
> beginning of the .sdata sectionin the case of the Solaris/Linux
> powerpc V.4/eabi). Small variables can be referenced in one
> instruction:
>
> lwz 0,foo@sdarel(13)
>
> and the linker will automatically put the address of foo - the address
> of _SDA_BASE_ into the address field.


OK. I understand. Concurrent takes a very different approach to
this. We reserve r28, r29, r30, r31 during code generation. Then our
post-link optimizer scans the program for the 4 most common hi16
values and initializes the reserved registers with those values and
deletes the appropriate `lis' instructions. (There are numerous
options to control the weighting of `lis' instructions by routine and
nesting level). Also, if the set of uses reached by one `lis'
instruction are reached by a set of other `lis' instructions to some
other registers such that that register always has the correct hi16
bits set, we will delete that `lis' instruction and change the uses to
use that other register. And if you think that description was
complicated, you should see the implementation :-). We often see as
much as a 20% performance boost from this in FORTRAN code.
--
Jeffrey Glen Jackson
--


Post a followup to this message

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