Re: Data Structure Reorganizing Optimizations

praetorius@figs.enet.dec.com (Robert Praetorius)
Wed, 23 Nov 1994 23:40:50 GMT

          From comp.compilers

Related articles
[19 earlier articles]
Re: Data Structure Reorganizing Optimizations glew@ichips.intel.com (1994-11-13)
Re: Data Structure Reorganizing Optimizations monnier@di.epfl.ch (1994-11-14)
Re: Data Structure Reorganizing Optimizations rockwell@nova.umd.edu (1994-11-14)
Re: Data Structure Reorganizing Optimizations dsiebert@icaen.uiowa.edu (1994-11-14)
Re: Data Structure Reorganizing Optimizations ok@cs.rmit.oz.au (1994-11-21)
Re: Data Structure Reorganizing Optimizations thorinn@diku.dk (1994-11-21)
Re: Data Structure Reorganizing Optimizations praetorius@figs.enet.dec.com (1994-11-23)
| List of all articles for this month |
Newsgroups: comp.arch,comp.compilers
From: praetorius@figs.enet.dec.com (Robert Praetorius)
Summary: be descriptive, not proscriptive
Keywords: design, tools
Organization: Digital Equipment Corporation
References: 94-10-108 94-11-129
Date: Wed, 23 Nov 1994 23:40:50 GMT

ok@cs.rmit.oz.au (Richard A. O'Keefe) writes...
  . . .
> A particularly noteworthy point is that two different structs with the
> same declared fields might be _used_ in different ways, thus warranting
> different arrangements according to (2) and (3). That makes separate
> compilation tricky. I could quite happily sacrifices the existing ordering
> rules of C structs, but I could not sacrifice separate compilation.
> That means that any rearrangements the compiler did *unprompted* should be
> confined to strictly local ones based on the declared types and order of
> the fields, such as type (1).
    . . .


          Makes separate compilation tricky, but not impossible:


One approach might be to use profiling feedback* to make
these decisions - if the compiler had access to info on
data access patterns, it could make the same decision
when compiling each module.


Another possibility is to have an integrated development
environment that carries descriptive information that can
be used when compiling modules that aren't the first to
reference a given structure.


In both cases, one might not expect very good results on the 1st
compilation (with improving results on later compilations), but there's
no reason the 1st pass results would be any worse than current compilers
(and in the second case, some reason they might be better).


          Separate compilation doesn't have to mean having no information on
the other modules being compiled.


*see ftp://ftp.fwi.uva.nl/pub/functional/icos_project.ps.Z for an
  interesting paper that touches on the value of profiling feedback
  in optimization.
--


Post a followup to this message

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