[M3commit] [modula3/cm3] b3c18e: Rework indirect calls to possibly nested procedure...
Jay
jay.krell at cornell.edu
Tue Dec 1 20:41:33 CET 2015
I suggest one or two changes to the IR.
1. An "official" in-memory representation of a complete unit or program. Modern systems can afford it.
2. More information with function calls. Likely combining parameters with calls. No more start/end. All parameters must be locals (possibly uplevel) or parameters or globals or temporaries, never expressions. This is likely the case already.
And, aside, look what I do for C. I made it work somehow. I don't remember off hand but I did odd stuff also because of static links. Like maybe always passing one, even if null, as last parameter, because extra parameters are always allowed in C. I declare the function pointers with "..." (slightly different in C vs. C++).
The gcc backend passes static link in a register dedicated to it.
- Jay
On Nov 30, 2015, at 2:00 PM, Rodney Bates <rodney.m.bates at acm.org> wrote:
> Moreover, CM3's seemingly nice idea of making IR operators
> method calls makes it very awkward to do idiom recognition or
> state-dependent handling of general-purpose operators.
More information about the M3commit
mailing list