Mon Apr 28 22:14:36 EDT 2008
so, can i sidestep the issue and eliminate unnecessary splits at the
end of macros? probably not: will mess up optimizations. local exits
for macros are an exception. is it possible to somehow automatically
ignore the last one, to scan the code for references? no: if a split
occurs during the execution of a macro by any other means, some jumps
to exit might not be visible.
a b c ; d e f ;
so, what are the tasks:
* maintain an exit label (dynamic parameter)
* figure out whether to split or not at the end of the macro
the problem is that ALWAYS splitting is bad, because it interferes
with optimization. checking if the label is reachable should be not
too difficult if the start of compilation can be marked somehow.
let's go back to what i'm really trying to do here: to _emulate_ a
return stack. why don't i just have such a thing instantiated
explicitly in the compiler state, so other return stack operations can
be emulated also?