[M3devel] M3CG_LLVM.m3, commit 7eb3628

Rodney M. Bates rodney_bates at lcwb.coop
Wed Jul 19 03:02:36 CEST 2017

Peter, I don't understand the rationale for the change in commit 7eb3628.  For llvm, the front end
is set to pull nested procedures out and place them completely after their containing static ancestor.
So all uses of a display index will occur after the end of the procedure declaring the
uplevel-referenced variable, and the computation of cumUplevelRefdCt, at the end of the
outer procedure will be soon enough.

If it were not so, even this change would not be early enough, because, with Modula-3 having no
declare-before-use rule, an uplevel reference can be to a variable declared after the referencing
nested procedure.

Have I missed something?
Rodney Bates
rodney.m.bates at acm.org

More information about the M3devel mailing list