|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--coins.backend.Module
Represent module, the whole input of the compiler.
フィールドの概要 | |
(パッケージプライベート) static java.lang.String |
DEFAULT_CONVENTION
|
(パッケージプライベート) static java.lang.String |
DEFAULT_TARGET
|
BiList |
elements
List of functions/data |
SymTab |
globalSymtab
Global symbol table |
java.lang.String |
name
Module name |
LirFactory |
newLir
LirNode factory object |
Root |
root
Collection of global variables |
TargetMachine |
targetMachine
Target Machine |
コンストラクタの概要 | |
Module(java.lang.Object sexp,
Root root)
Create a module |
|
Module(java.lang.Object sexp,
java.lang.String targetName,
java.lang.String convention,
Root root)
Create a module |
メソッドの概要 | |
void |
addData(Symbol sym,
LirNode value)
Add new DATA object. |
Symbol |
addSymbol(java.lang.String name,
int storage,
int type,
int boundary,
java.lang.String segment,
java.lang.String linkage,
ImList opt)
Add global symbol |
void |
apply(BiList transList)
Apply transformations listed in the transList . |
void |
apply(ImList transList)
Apply transformations listed in the transList . |
void |
apply(LocalAnalyzer analyzer)
Apply some analysis on each function |
void |
apply(java.lang.Object trans)
Apply transformation (generic form). |
void |
apply(java.lang.Object[] transVector)
Apply transformations listed in the transVector . |
void |
apply(java.lang.String hook)
Apply transformation assigned to Hook. |
void |
apply(Transformer xformer)
Apply tranformation on module without argument. |
void |
apply(Transformer xformer,
ImList args)
Do some transform(or optimization) on each function with trace dump. |
void |
basicOptimization()
Do basic optimizations. |
Symbol |
constToData(LirNode value)
Convert immediate constant (INTCONST/FLOATCONST) to DATA component. |
static void |
doCompile(ImList sexp,
java.lang.String targetName,
java.lang.String convention,
Root root)
Compile S-expression LIR. |
(パッケージプライベート) void |
doData(ImList node)
Parse DATA node |
long |
elapsedTime()
Return elapsed time since module created. |
void |
generateCode()
Write machine code. |
void |
generateCode(java.io.OutputStream codeStream)
Write machine code to codeStream |
void |
generateCodeWith(java.lang.Object trans)
Write machine code with specific transformers. |
void |
generateCodeWith(java.io.OutputStream codeStream,
java.lang.Object trans)
Write machine code to codeStream with specific transformers. |
int |
genSymbolId()
Generate new symbol's id |
int |
getCurrentLineNo()
Return current line number. |
Symbol |
getSymbol(java.lang.String name)
Find symbol whose name is name in this context. |
static Module |
loadSLir(ImList sexp,
java.lang.String targetName,
java.lang.String convention,
Root root)
Convert LIR S-expression LIR to internal form and convert frame variables into register ones. |
Label |
lookupLabel(java.lang.String internalName)
Look up label by final name. |
Label |
newLabel()
Create new label instance with final name and return it. |
void |
printIt(java.io.PrintWriter out)
Print current module status |
void |
printIt(java.io.PrintWriter out,
LocalAnalyzer[] anals)
Print current module status with analyses |
void |
printStandardForm(java.io.PrintWriter out)
Print L-module in standard form. |
void |
renameLabelToFinal(Label label)
Rename existing label to final name. |
void |
require(LocalAnalyzer analyzer)
Require some analysis for each function |
void |
setAsmOut(java.io.OutputStream codeStream)
Specify assembler output stream. |
int |
symbolIdBound()
Return maximum symbol id plus 1. |
java.lang.Object |
toSexp()
Convert to S-expression LIR format. |
java.lang.String |
toString()
Return string representation of this object. |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
フィールドの詳細 |
static final java.lang.String DEFAULT_TARGET
static final java.lang.String DEFAULT_CONVENTION
public final java.lang.String name
public final SymTab globalSymtab
public final BiList elements
public final Root root
public final TargetMachine targetMachine
public final LirFactory newLir
コンストラクタの詳細 |
public Module(java.lang.Object sexp, Root root) throws SyntaxErrorException
public Module(java.lang.Object sexp, java.lang.String targetName, java.lang.String convention, Root root) throws SyntaxErrorException
メソッドの詳細 |
public int getCurrentLineNo()
public Symbol addSymbol(java.lang.String name, int storage, int type, int boundary, java.lang.String segment, java.lang.String linkage, ImList opt)
void doData(ImList node) throws SyntaxError
SyntaxError
public void addData(Symbol sym, LirNode value)
public Label lookupLabel(java.lang.String internalName)
public Label newLabel()
public void renameLabelToFinal(Label label)
public int genSymbolId()
public int symbolIdBound()
public Symbol getSymbol(java.lang.String name)
name
in this context.
public void apply(LocalAnalyzer analyzer)
public void require(LocalAnalyzer analyzer)
public void apply(java.lang.Object trans)
public void apply(java.lang.String hook)
public void apply(ImList transList)
transList
.
public void apply(BiList transList)
transList
.
public void apply(java.lang.Object[] transVector)
transVector
.
public void apply(Transformer xformer)
public void apply(Transformer xformer, ImList args)
public Symbol constToData(LirNode value)
value
- constant node to be converted
public void printStandardForm(java.io.PrintWriter out)
public void printIt(java.io.PrintWriter out)
public void printIt(java.io.PrintWriter out, LocalAnalyzer[] anals)
public java.lang.String toString()
java.lang.Object
内の toString
public java.lang.Object toSexp()
public static void doCompile(ImList sexp, java.lang.String targetName, java.lang.String convention, Root root) throws SyntaxErrorException
SyntaxErrorException
public static Module loadSLir(ImList sexp, java.lang.String targetName, java.lang.String convention, Root root) throws SyntaxErrorException
SyntaxErrorException
public void basicOptimization()
public void setAsmOut(java.io.OutputStream codeStream)
public void generateCode(java.io.OutputStream codeStream)
public void generateCodeWith(java.io.OutputStream codeStream, java.lang.Object trans)
public void generateCode()
public void generateCodeWith(java.lang.Object trans)
public long elapsedTime()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |