[m-dev.] [Q] Eager code gen and structure reuse problem

Peter Ross petdr at miscrit.be
Thu Oct 12 18:02:46 AEDT 2000


On Thu, Oct 12, 2000 at 01:41:10PM +1100, Zoltan Somogyi wrote:
> On 11-Oct-2000, Peter Ross <petdr at miscrit.be> wrote:
> >         % --no-lazy-code assumes that const(_) rvals are really
> >         % constant, and that create(_) rvals with constant arguments can
> >         % be materialized in an assignable rval without further code.
> >         % For float_consts, the former is true only if either
> >         % static_ground_terms or unboxed_floats is true, and the latter
> >         % cannot be true without static_ground_terms.
> >         option_neg_implies(lazy_code, static_ground_terms, bool(yes)),
> > 
> > Is it possible to remove this constraint?
> 
> I presume you want to remove the part that says
> 
> 	"create(_) rvals with constant arguments can
> 	be materialized in an assignable rval without further code."
> 
Yes that is the part.

> It ought to be possible, yes. Have a look at the condition of the if-then-else
> in var_locn__assign_cell_to_var.
> 
> You will have to make sure that any modifications you make don't screw up
> the places where the compiler generates constant terms of its own, e.g.
> for string switches and lookup switches. However, this should be simple,
> since such terms should not be subject to structure reuse.
> 
Thanks.

Peter
--------------------------------------------------------------------------
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