Fri May 16 15:48:58 CEST 2008
labels and multiple entry points
code with multiple entry points like this
: default-bla 123
: bla-it 1 + ;
is useful to have, but it's difficult to handle. the problems happen
when default-bla is accessed in isolation, i.e. when moving around
this needs a proper data structure, or at least assembler support..
* split the code into fallthrough chunks = a list of words where only
the last one is terminated.
* add assembler support for a 'fallthrough' opcode.
the point is: make the data structure such that optimization and code
migration becomes easier to do. fallthrough code should be treated as
a single entity, even if it contains multiple entry points.
operations on word w:
(A) does w fall into some w' ?
(B) does some w' fall into w
this is an extra level of linking between words. (A) is essential
knowledge, but (B) doesn't matter much for the word w itself..
so, each target word has a possible fallthrough word.
what about this: pass the assembler a list of words, where each word
is the head of a fallthrough word chain. the extra compiler state this
requires is a set of independent chains.