インタフェースの概要 |
AsmStmt |
The C front of COINS accepts following asm statement:
asm("#param paramDecsriptionList \n"
"#clobber destroyed-register-list \n"
asmInstructionSequence ,
actual-parameter-list );
where
paramDescriptionList -> paramDescription
| paramDescriptionList , paramDescription
paramDescription ->
%register // input parameter variable (rvalue)
| w%register // output parameter variable (lvalue)
| m%register // input/output parameter variable (lvalue)
| s // constant representing static address
| a // constant repreZsenting automatic variable address
destroyed-register-list -> %register // register contents is destroyed
| destroyed-register-list , %register
asmInstructionSequence ->
"asmInstruction \n"
| asmInstructionSequence "asmInstruction \n"
actualParameterList ->
expression // expression representing actual parameter
| actualParameterList , expression
The %register represents a register or a class of registers
defined in the TMD.
|
AssignStmt |
Assign-statement. |
BlockStmt |
Block representing a sequence of statements. |
ConstNode |
Constant node |
ElemNode |
Element name node. |
Exp |
Exp interface
HIR Exp class interface.
|
ExpListExp |
ExpListExp
Interface for the expression representing a list of expressions (Exp).
|
ExpStmt |
ExpStmt
Expression treated as a statement. |
ForStmt |
For-statement interface.
|
FunctionExp |
FunctionExp
Function call interface. |
HIR |
HIR interface
High Level Intermediate Representation (HIR) interface.
|
HIR0 |
HIR0 interface
Simplified High-level Intermediate Representation interface (HIR0).
|
HirIterator |
HirIterator interface
Traverse HIR node in depth first order. |
HirList |
HirList interfac
HirList is an IrList that contains HIR objects as its elements.
|
HirSeq |
HirSeq interface
Sequence of expressions, symbols, and others.
|
HirVisitor |
HirVisitor
Visitor for processing HIR nodes |
IfStmt |
If-statement. |
IndexedLoopStmt |
IndexedLoop-statement interface.
|
InfNode |
Information list node
(pragma, comment line, etc.)
|
InfStmt |
Information node treated as a statement
(pragma, comment line, etc.)
|
JumpStmt |
JumpStmt interface |
LabelDef |
Label definition |
LabeledStmt |
LabeledStmt Labeled statement interface |
LabelNode |
LabelNode: Label reference node. |
LoopStmt |
LoopStmt -> // Loop statement is either for-loop, while-loop,
// repeat-loop, indexed loop, or other general loop.
// All of them are implemented as a general loop
// with some restriction depending on the loop type.
// Compiler components (other than front part) should
// treat general loop, that is, do not assume some child
// is null without checking whether the child is null
// or not |
NullNode |
Null node interface |
PhiExp |
PhiExp
Phi expression interface. |
PointedExp |
Pointed variable interface. |
Program |
Program interface |
QualifiedExp |
Qualified variable interface. |
RepeatStmt |
Repeat-while-statement (do-while, repeat-until) interface.
|
ReturnStmt |
|
SetDataStmt |
SetDataStmt interface
Specify initial values in the form
(setData l-value valueSpec)
where, l-value is an expression such as variable representing the storage
area where initial value is to be set, and valueSpec is a constant expression
representing initial values to be set.
|
Stmt |
Stmt
Stmt (statement) class interface.
|
SubpDefinition |
Subprogram definition node. |
SubpNode |
Subprogram name node. |
SubscriptedExp |
Subscripted variable interface. |
SwitchStmt |
switch statement interface. |
SymNode |
Symbol node |
TypeNode |
Type name node interface. |
UntilStmt |
Until-statement (do-while, repeat-until) interface.
|
VarNode |
Variable name node. |
WhileStmt |
While-statement interface.
|
クラスの概要 |
AsmStmtImpl |
Asm node is treated as a statement. |
AssignStmtImpl |
Assignment statement class. |
BlockStmtImpl |
Block representing a sequence of statements. |
ConstNodeImpl |
Constant node |
ElemNodeImpl |
Element name node class. |
ExpImpl |
ExpImpl
HIR expression class.
|
ExpListExpImpl |
ExpListExpImpl
Expression representing a list of expressions (Exp).
|
ExpStmtImpl |
ExpStmtImpl
Expression treated as a statement. |
ForStmtImpl |
For-statement class. |
FunctionExpImpl |
FunctionExpImpl
Function call expression. |
HIR_Impl |
HIR_Impl class |
HirAnnex |
class HirAnnex
Additional information that is not given in some case
and not given to some nodes. |
HirIteratorImpl |
HirIteratorImpl class
Traverse HIR node in depth first order. |
HirListImpl |
class HirListImpl
List of expressions, symbols, and others.
|
HirModify |
HirModify class
This class contains methods to modify HIR tree. |
HirSeqImpl |
class HirSeqImpl
Sequence of expressions, symbols, and others. |
HirVisitorModel1 |
HirVisitorModel1
Visitor model for processing HIR nodes where
visiting procedure is written in the method visit of this class
and each method of the form atXxx called from acceptor of HIR class
does a processing without writing traverse procedure.
|
HirVisitorModel2 |
HirVisitorModel2
Visitor model for processing HIR nodes where
each acceptor calls visitChildren method to traverse its children.
|
IfStmtImpl |
If-statement class.
|
IndexedLoopStmtImpl |
IndexedLoop-statement class. |
InfNodeImpl |
Information list node (pragma, comment line, etc.) |
InfStmtImpl |
Information node treated as a statement (pragma, comment line, etc.) |
JumpStmtImpl |
JumpStmt class |
LabelDefImpl |
Label definition |
LabeledStmtImpl |
LabeledStmtImpl Labeled statement class |
LabelNodeImpl |
Label reference node. |
LoopStmtImpl |
Loop-statement class.
// Components (children) of loop statement
// child1: LoopInitPart. |
NullNodeImpl |
Null node |
PhiExpImpl |
PhiExpImpl
Phi expression class. |
PointedExpImpl |
Pointed variable class. |
PrintStmtVisitor |
PrintStmtVisitor
Example of the use of Visitor for printing HIR statement
(Extends HirVisitorModel1.) |
PrintVisitor |
PrintVisitor
Visitor for printing HIR
(Example of extending HirVisitorModel2.) |
ProgramImpl |
ProgramImpl class |
QualifiedExpImpl |
Qualified variable class. |
RepeatStmtImpl |
Repeat-statement (do-while, repeat-until) class. |
ReturnStmtImpl |
Return statement. |
SetDataStmtImpl |
SetDataStmtImpl class
Specify initial values in the form
(setData l-value valueSpec) |
SimplifyHir |
SimplifyHir:
This class simplifies HIR by deleting labeled statements with
null statement body if the label is not explicitly refered,
in order to suppress the generation of useless basic blocks
in converting HIR to LIR. |
StmtImpl |
Statement |
SubpDefinitionImpl |
Subprogram definition node. |
SubpNodeImpl |
Subprogram name node. |
SubscriptedExpImpl |
Subscripted variable class. |
SubsPtrTransformation |
SubsPtrTransformation
Array subscript (Subs) expression to pointer expression transformation
and vice versa. |
SwitchModify |
switch modify class.
|
SwitchStmtImpl |
switch statement class.
|
SymNodeImpl |
Symbol node |
TestHir |
TestHir class
Test HIR
User may tentatively add a method call in order to test some HIR
expression or nullify (by changing to comment) some method calls in
the TestHir constructor.
|
TestHir2 |
Example of using HirVisitorModel2.
|
TypeNodeImpl |
Type name node class. |
UntilStmtImpl |
Until-statement (do-while, repeat-until) class. |
VarNodeImpl |
Variable name node class. |
WhileStmtImpl |
While-statement class. |