[gambit-list] Dependeny graphs for reachable bindings: Gambit 4.9.3 vs 4.9.4

Marc Feeley feeley at iro.umontreal.ca
Tue Jan 4 09:45:25 EST 2022


> On Jan 4, 2022, at 9:31 AM, Sven Hartrumpf <hartrumpf at gmx.net> wrote:
> 
> 
> Too large, will try that with a smaller program.
> 
>> This might point to an optimization you need to turn off to get the
>> same result as v4.9.3 . The drop from 7178 to 6248 “reachable” procedures
>> may simply be better inlining by the v4.9.4 compiler. Turning off inlining
>> with a (declare (not inline)) may be all that is needed.

Just reading through the list of 930 definitions (7178-6248) may give you a clue if they have common characteristic (small? or from the same “module”?) or unusual properties (defined more than once?).

It could be the case that there is a single definition that is causing 929 others to be considered dead by v4.9.4 .  For example your code may be calling a “print-report” procedure, and the implementation of print-report uses 929 procedures that are not used elsewhere than the implementation of print-report.  If the v4.9.4 optimizer is smart enough to figure out that print-report is not actually needed, then that causes a difference of 930 dead procedures.

Marc




More information about the Gambit-list mailing list