[m-dev.] where the .NET compiler is slow

Peter Ross pro at missioncriticalit.com
Thu Feb 27 02:22:04 AEDT 2003


On Wed, Feb 26, 2003 at 03:20:19PM +0100, Peter Ross wrote:
> On Wed, Feb 26, 2003 at 09:49:43PM +1100, Fergus Henderson wrote:
> > On 26-Feb-2003, Peter Ross <pro at missioncriticalit.com> wrote:
> > > I just did a simple analysis of the compile time of hello.m when using
> > > the compiler built in the il grade.
> > > 
> > > Here are the 3 sections which consume the most time
> > >     - Checking typeclass instances (53%)
> > >     - Conversion of parse tree to HLDS (18%)
> > >     - RTTI initialization (12%)
> > > 
> > > I have no idea why the typechecking is so slow.
> > 
> > It is probably related to --intermodule-optimization.
> > We're probably reading in a lot of typeclass instance declarations
> > from `.opt' files.  There's a similar effect for the C back-end:
> > checking typeclass instances is responsible for more than 20% of the
> > compilation time for `mmc --intermodule-optimization -C hello.m'.
> > 
> Actually I have been searching some more and I have tracked it down.
> 
> The significantly slow area is dead predicate elimination (phase 02b).
> In particular the deletion of all the pred_infos from the
> predicate_table.  I am currently about to test a change where rather
> than deleting everything from the table we build a new table from
> scratch.
> 
Using the suggestion the code runs about twice as fast.  The diff is on
the way.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list