[m-dev.] for review: retain aliasing information when merging instmaps of branched goals

Simon Taylor stayl at cs.mu.OZ.AU
Sun Jan 24 03:02:07 AEDT 1999


Hi,
 
> > > compiler/modecheck_unify.m:
> > > 	Modify `mode_info_make_aliased_insts' to only make aliases for
> > > 	insts of live variables.  This should significantly reduce the
> > > 	number of aliases that we need to keep track of.
> > 
> > Will this have bad implications for structure reuse?  You have to look
> > at the modes of dead variables there.
> > 
> 
> I've undone that change and instead check the liveness in
> `inst_merge'.  Inst_keys which have only one live reference at the
> merge point are removed at this stage.  I'm not sure exactly how
> structure re-use works.  Will this be ok, Simon?

What happens if a variable whose inst contains the only live reference to
an inst_key is passed into a branched goal, is assigned to another variable
within the branched goal and is dead after the branched goal?
The instmap after the branched goal should include the information that the
new and old variables are aliases.

If an inst_key is only referenced (directly or indirectly) by one variable
non-local to the branched goal, it's probably ok to remove it during the merge.

Simon.



More information about the developers mailing list