|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcoins.backend.gen.CodeGenerator.Match
Node of matching tree (or DAG)
| Field Summary | |
(package private) int |
cost1
cost |
(package private) int |
cost2
cost |
(package private) LirNode |
dest
Destination register variable node. |
(package private) java.util.Map |
genLabelTbl
Label table. |
(package private) CodeGenerator.Match[] |
kid
Direct children of this operator. |
(package private) int[] |
order
Code generation order. |
(package private) LirNode |
orig
Original LIR operator being matched. |
(package private) CodeGenerator.Match[] |
rLeaf
Place of leaf nodes in the rule. |
(package private) int[] |
rLeafIndex
|
(package private) Rule |
rule
The rule best-matched. |
(package private) LirNode[] |
src
Source register variable nodes. |
(package private) CodeGenerator.Match[] |
subtrees
Root of subinstruction tree. |
(package private) int |
suNumber
Sethi-Ullman number. |
(package private) CodeGenerator.Match[] |
tLeaf
Place of leaf node in the output instruction tree. |
(package private) int[] |
tLeafIndex
|
| Constructor Summary | |
(package private) |
CodeGenerator.Match(LirNode orig,
CodeGenerator.Match[] kid,
Rule rule,
int cost1,
int cost2)
Create match object. |
| Method Summary | |
(package private) void |
allocTemp(LirNode required,
java.lang.String regset)
Assign destination register variable. |
(package private) void |
decompLir(BiList list)
Generate decomposed LIR from match tree. |
(package private) void |
generateDecomposed(BiList list)
Decompose original LIR tree. |
(package private) boolean |
hasCode()
Return true if this node has assembler code to be generated. |
(package private) boolean |
isCheaperThan(CodeGenerator.Match x)
Return true if this match is cheaper than x |
(package private) boolean |
isCore()
Return true if this node is the root of a instruction tree. |
(package private) boolean |
isDerived()
Return true if this node is derived rule. |
(package private) void |
printIt(java.io.PrintWriter out)
Print contents of Match instance on Stream out for debugging. |
(package private) ImList |
quiltCode()
Generate assembler in ImList form. |
(package private) CodeGenerator.Match |
removeSet(boolean pass1)
Remove SET operation if possible. |
(package private) void |
scheduleBySuNumber()
Compute Sethi-Ullman number and reorder instructions. |
(package private) CodeGenerator.Match |
skipNonOpRules()
Skip non-operational rules at root. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
LirNode orig
Rule rule
int cost1
int cost2
LirNode dest
LirNode[] src
CodeGenerator.Match[] kid
CodeGenerator.Match[] rLeaf
int[] rLeafIndex
CodeGenerator.Match[] tLeaf
int[] tLeafIndex
CodeGenerator.Match[] subtrees
int suNumber
int[] order
java.util.Map genLabelTbl
| Constructor Detail |
CodeGenerator.Match(LirNode orig,
CodeGenerator.Match[] kid,
Rule rule,
int cost1,
int cost2)
| Method Detail |
void printIt(java.io.PrintWriter out)
boolean hasCode()
boolean isCore()
boolean isDerived()
boolean isCheaperThan(CodeGenerator.Match x)
CodeGenerator.Match removeSet(boolean pass1)
void allocTemp(LirNode required,
java.lang.String regset)
void scheduleBySuNumber()
void generateDecomposed(BiList list)
void decompLir(BiList list)
CodeGenerator.Match skipNonOpRules()
ImList quiltCode()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||