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

Zoltan Somogyi zs at cs.mu.OZ.AU
Thu Oct 12 13:41:10 AEDT 2000


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."

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.

Zoltan.
--------------------------------------------------------------------------
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