Re: dynamic optimisation

chip%soi@harvard.harvard.edu (Chip Morris)
Mon, 13 Nov 89 09:18:01 EST

          From comp.compilers

Related articles
dynamic optimisation lee@sq.sq.com (Liam Quin) (1989-11-09)
Re: dynamic optimisation chip%soi@harvard.harvard.edu (1989-11-13)
| List of all articles for this month |
Date: Mon, 13 Nov 89 09:18:01 EST
From: chip%soi@harvard.harvard.edu (Chip Morris)
Newsgroups: comp.compilers
References: <1989Nov10.141346.5943@esegue.segue.boston.ma.us>

In comp.compilers Liam Quin writes:


>Do you know of any compilers that will optimise a program (when compiling it)
>taking into account data produced by profiling in some way actual runs?


Our firm is currently working on a prototype implementation of Mike
Karr's thesis, "Code Generation By Coagulation" (see the 1984
Compilers Conference proceedings for a summary paper) that uses
profiles as in integral part of compilation. We presently have a
code generator working from a simple intermediate language. It could
be adapted to C or Pascal front-ends.


Our code generator is set up to make virtually all of its optimization
decisions based on an incremental cost calculation that uses the
program's profile and detailed knowledge of the cost of the target
machine's instruction set. Register allocation, code ordering (to
minimize jumps), and storage management (e.g. access in memory or load
into register?) are a few of the issues handled by cost computation.
Our register allocator can do as well or better than a C programmer using
register declarations. We also have a variety of schemes, some
implemented, some in design, that reduce or eliminate penalties for
using procedure calls.


Our work is DARPA-funded and public domain, so anyone who is
interested should contact me and I'll put him/her on our mailing list
for technical reports and papers.
--
Chip Morris, Senior Engineer
Software Options, Inc., 22 Hilliard St., Cambridge MA 02138 (617) 497-5054
chip%soi@harvard.harvard.edu or ...!harvard!soi!chip







Post a followup to this message

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