|
From: Kevin K. <kev...@gm...> - 2017-06-06 01:31:50
|
Tonight's commits eliminate callframes from 'entry', 'returnCode',
'returnOptions', 'return' and 'returnException' if the only callframe in
the procedure is the entry callframe. (Still to come: detecting that
invoked commands don't need the callframe at all.)
Many of our demo cases buy at least some performance back with this change.
I noticed that the code issuer was looking for an output type of NOTHING on
the 'entry' instruction. I changed that to looking for the empty operand
{}. If I put Nothing on the left-hand side, type analysis obligingly
assigned the type 'CALLFRAME' to the symbol 'Nothing' and propagated that
nonsense everywhere. I left 'Nothing' on the places where it appears on the
right-hand side, so only 'entry' is affected so far (When I do the next
step, I'm sure that I'll find the same issue with 'invoke', but I'm not
there yet.)
Kevin
|