[m-dev.] .opt files for intermodule analysis

Julien Fischer juliensf at csse.unimelb.edu.au
Wed Feb 13 15:08:26 AEDT 2008

On Wed, 13 Feb 2008, Peter Wang wrote:

> Review/feedback required on this idea.
> The idea is to add optimisation interface files for the
> `--intermodule-analysis' option (currently called .analysis_opt files in
> my workspace).  The content of these files would be exactly the same as
> the initial contents of an .opt file.
> (1) intermodule inlining, higher order specialisation, etc. will work
> with --intermodule-analysis, with minimal effort.  Those passes wouldn't
> benefit from being modified to use the analysis framework anyway (I think).

Well, they defintely won't benefit from things like clauses and type
definitions being in the .analysis files; they may benefit from
information about where to inline or higher-order specialise being put
in the .analysis files.

> (2) CTGC requires the definitions of imported abstract types.  Since
> .opt files already do everything we need, just reuse the same system.
> The reason for not just reusing .opt files is that when you use
> --intermodule-optimisation, exception analysis (etc.) will append their
> own analysis results into them.  With --intermodule-analysis those
> results should be in .analysis files, so there is potential for
> conflicting results or getting results from the wrong place.

I don't see why these two mechanisms need to be compatible with each
other.  Specifically, if --intermodule-analysis is enabled then
exception analysis and friends should just not write analysis pragmas
out to the .opt files.

> An alternative would be to separate the current .opt files into two,
> say, .opt0 and .opt.  .opt0 files would contain only the information
> which can be shared between `--intermodule-analysis' and
> `--intermodule-optimisation'.  Making an .opt file would imply making a
> .opt0 file (similarly for reading) but not the other way around.  I
> think I like this idea better.

Given that once --intermodule-analysis is working for the major
optimisations we will be getting rid of --intermodule-optimisation
anyway, this doesn't seem to be worth it.

mercury-developers mailing list
Post messages to:       mercury-developers at csse.unimelb.edu.au
Administrative Queries: owner-mercury-developers at csse.unimelb.edu.au
Subscriptions:          mercury-developers-request at csse.unimelb.edu.au

More information about the developers mailing list