[M3commit] [modula3/cm3] 36cdd4: Refactor CopyOpenArray for call site use.

GitHub noreply at github.com
Thu Oct 5 00:17:05 CEST 2017

  Branch: refs/heads/master
  Home:   https://github.com/modula3/cm3
  Commit: 36cdd49c1075cccf847148b3d44d29ccda5274a2
  Author: Rodney Bates <rodney.m.bates at acm.org>
  Date:   2017-10-04 (Wed, 04 Oct 2017)

  Changed paths:
    M m3-sys/m3front/src/misc/CG.m3
    M m3-sys/m3front/src/types/OpenArrayType.m3
    M m3-sys/m3front/src/values/Formal.m3
    M m3-sys/m3front/src/values/Variable.m3

  Log Message:
  Refactor CopyOpenArray for call site use.

Variable.CopyOpenArray generates prolog code to copy an open array
passed by VALUE.  Such copies are also needed at call sites for an
open array passed READONLY that is not a designator and/or not the
same type as the formal.

Change CopyOpenArray so it uses values on the stack rather than a
Variable.T, passed in.  This is so it can be used at call sites,
where no Variable.T is necessarily available.

This change does not add call site copying.  It is pure refactor
and generates identical CG intermediate code for the prolog copy.

More information about the M3commit mailing list