[m-rev.] for treview: global, local and field vars in the MLDS

Julien Fischer jfischer at opturion.com
Sat Jul 22 18:14:49 AEST 2017


On Sat, 22 Jul 2017, Zoltan Somogyi wrote:

>
>>> The old compiler abused the MLDS (treating those constants as if they
>>> were global variables) in a way that module qualified them everywhere
>>> *except* in private_builtin.java.
>>>
>>> 3. Almost *all* of the diff part of JAVA_CSHARP_DIFF consists of the
>>> following single difference, repeated in lots and lots of times:
>>>
>>> - /* generic_type */ java.lang.Object closure = null;
>>> + /* generic_type */ java.lang.Object closure = closure_arg;
>>> cord.Cord_1 conv0_HeadVar__3_3 = null;
>>> - closure = closure_arg;
>>
>> I suspect that optimization was not occurring in the past precisely
>> because of the things that this diff addresses.
>
> So do I, but it may be that the reason is that in this diff, I rewrote part
> of the logic of the convert_assignments_into_initializers predicate
> in ml_optimize.m, because the old code offended my sensibilities.
> It did this by searching for the definition that defines a variable *twice* in a row,
> so I deleted the second search after changing the first to remember the location.
>
> Do you have any objection to committing the diff about writing out mmakefile
> fragments?

No, go ahead.

Julien.


More information about the reviews mailing list