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]

"register struct": work in progress


Hello guys,
I am writing a GCC port for a machine with a quite big register file:
512 32 bit registers.
Most of the calculations which the machine is used for is done on
"structures", so it is *absolutely* necessary to support automatic
"register struct" variables in order to have a production compiler.
For this reason I am workin on a patch to add this feature to GCC in the
most non-intrusive way I can: infact (tell me if I'm wrong) I suppose
that this "extension" cuold be useful to the whole GCC community.
For instance the port has began from version 2.95.2, so will be the
patch.

I will sincerely appreciate any suggestion, comment, hint, idea and help
from whoever would like to partecipate.
The patch, once completed, will be offered to FSF.

Technically, my idea follows the suggestions in the mails by Richard
Henderson and Greg McGary in the thread "Liberating structs from memory"
in the gcc@gcc.gnu.org mail list: the idea is to use a PARALLEL of REG
to represent a struct variable always kept in a register file.
In the mentioned thread they talked about keeping in the register file
struct variables whose address is never taken. For now I just put
structs in registers if the keyword "register" is used when declaring
automatic variables.
I suppose that this feature should be used *only* in processors with an
adeguate number of registers, so I suppose some switch should be added
to control this extension.

As soon as i can you will receive a preliminary patch in this mail list.

Thank you in advance for your help

Benedetto


*******
Benedetto Proietti		benedetto.proietti@roma1.infn.it
INFN, APE project		Rome, Italy

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