[kaffe] i can't quite catch the method of "translate"

yan wei yanwei77 at gmail.com
Thu Feb 16 06:07:10 PST 2006


I'm analysing the souce codes of kaffe.
when I read the "translate" in KAFFE_HOME/kaffevm/jit3/machine.c.threre are
some notes like this:
/*
 * Translate a method into native code.
 *
 * Registers are allocated per basic block, using an LRU algorithm.
 * Contents of registers are spilled at the end of basic block,
 * depending on the edges in the CFG leaving the basic block:
 *
 * - If there is an edge from the basic block to an exception handler,
 *   local variables are spilled on the stack
 *
 * - If there is only one non-exception edge, and the target basic
 *   block is following the current block immediately, no spills are done
 *
 * - Otherwise, the local variables and the operand stack are spilled
 *   onto the stack
 */

some relative documents I have read, but I have some questions about the
notes above:
in the notes,  what is the "Registers"?  what is the "CFG"? what it means
about "edge"? what is the "basic block?", what the "spill" means? what those
words above describe?
can anyone help me? thank you very much
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://kaffe.org/pipermail/kaffe/attachments/20060216/716da5aa/attachment-0005.htm 


More information about the kaffe mailing list