guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: wip-cse


From: Ludovic Courtès
Subject: Re: wip-cse
Date: Tue, 17 Apr 2012 14:42:36 +0200
User-agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.93 (gnu/linux)

Hi!

Andy Wingo <address@hidden> skribis:

> This pass does a few related things:
>
>  * Replacement of an expression with a reference to a lexical
>    identifier.
>
>  * Inferring the boolean value of an expression, given previous
>    expressions that were true.
>
>  * Eliminating an expression where it can cause no effect.

OK, excellent.

> It does not name new values, however.  If we switched to CPS as our IR,
> then we would have a lot more names, and CSE could be more effective.

OK.

> Sure.  In these I just replaced some of the calls to "log" with "pk".
> The "inferring" lines indicate boolean-valued expressions that were
> folded.  The "elided" lines indicate useless expressions in effect
> context.  The "propagate-value" lines... hm, there aren't any.  They
> would correspond to replacing expressions with lexical-refs.

Nice, understood!

>> What impact does it have on compilation time in module/?
>
> Dunno.  It almost doubles the fresh recompilation of of peval, though
> (1.3s to 2.3s).

So it’s probably safe to assume that the overall compilation time
doubles as well?

>>> seeing that lookup in vhashes is fairly slow.  Dunno.  If we can speed
>>> up vhashes somehow then we win in CSE, peval, and other passes, so
>>> probably it's best to focus there.
>>
>> I think we’ll need C-level profiling to see what’s going on.  Do you
>> have such info already?  Otherwise I can look into it.
>
> I don't have any such info yet.

BTW, you may also want to try with a higher value of
‘block-growth-factor’.  With a factor of 2, roughly half of the values
are found in the first vlist block; with a higher value, you would
increase that ratio, at the expense of increased memory consumption.

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]