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
_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to