Permuting fields of records

garavel@imag.fr (Hubert Garavel)
Fri, 4 Jun 1993 13:55:25 GMT

          From comp.compilers

Related articles
Permuting fields of records garavel@imag.fr (1993-06-04)
Re: Permuting fields of records drw@runge.mit.edu (1993-06-06)
Re: Permuting fields of records nickh@CS.CMU.EDU (1993-06-08)
Re: Permuting fields of records henry@zoo.toronto.edu (1993-06-09)
C structure padding drw@zermelo.mit.edu (1993-06-26)
Re: C structure padding pat@tesuji.qc.ca (1993-06-27)
Re: C structure padding lord+@andrew.cmu.edu (Tom Lord) (1993-06-27)
[4 later articles]
| List of all articles for this month |
Newsgroups: comp.compilers
From: garavel@imag.fr (Hubert Garavel)
Keywords: optimize, question, comment
Organization: IMAG Institute, University of Grenoble, France
Date: Fri, 4 Jun 1993 13:55:25 GMT

Hello,


We are currently considering the problem of packing "record" types by
modifying the order of the record fields. For instance, the following C
structure
struct {
char a;
short b;
char c;
}
usually requires 6 bytes on 32-bytes machines (due to alignment
constraints). However, it is possible to reduce this size to 4 bytes
by permuting fields:
struct {
short b;
char a;
char c;
}


Does anybody know an algorithm (or a heuristic) for solving this problem
automatically? Are there some existing compilers that perform such
optimization? Do they take into account the presence of bit fields?
Thanks in advance.


Hubert
--
Hubert GARAVEL | VERIMAG (U.M.R. C-9939)
hubert.garavel@imag.fr | IMAG Campus B.P. 53X
tel: +(33) 76 51 43 54 | 38041 GRENOBLE cedex
fax: +(33) 76 51 33 79 | FRANCE
[Disregarding bit fields, a heuristic that usually works is to sort the
fields largest first. C compilers don't reorder structure fields because
the ANSI/ISO C standards says they can't. -John]
--


Post a followup to this message

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