|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectharpoon.Tools.PatMat.Spec
public class Spec
Spec represents the parsed specification of a set of
Instruction Patterns for a target backend .
NOTE: Current documentation was written late at night
and therefore may be misleading; I'm worried that it isn't META
enough. Must go over it and make sure that its clear that I'm
talking about the specification for a set of instruction patterns,
and NOT the actual IR for the code being analyzed and optimized by the
compiler.
| Nested Class Summary | |
|---|---|
static class |
Spec.Detail
A detail is an abstract representation for a piece of data about the Instruction Pattern or Rule. |
static class |
Spec.DetailExtra
Extension of Spec.Detail that requests an extra
temporary register for the use of the action clause. |
static class |
Spec.DetailList
Linked list representation for representing the series of Spec.Details in this Spec. |
static class |
Spec.DetailPredicate
Extension of Spec.Detail that stores a
predicate_string which is a piece of Java code
that decides if a particular Spec.Rule can be
applied. |
static class |
Spec.DetailVisitor
Visitor class for traversing a set of Spec.Details
and performing some action depending on the type of
Spec.Detail visited. |
static class |
Spec.DetailWeight
Extension of Spec.Detail that stores a
(name,weight) pair. |
static class |
Spec.Exp
Abstract immutable representation of an Expression in an Instruction Pattern. |
static class |
Spec.ExpBinop
Extension of Spec.Exp that represents a Binary
Operation in the code. |
static class |
Spec.ExpConst
Extension of Spec.Exp that represents a Constant
value in the code. |
static class |
Spec.ExpId
Extension of Spec.Exp that represents an
Identifier in the code. |
static class |
Spec.ExpList
Linked list representation for representing the series of Spec.Exps in a given Spec.Exp or
Spec.Stm. |
static class |
Spec.ExpMem
Extension of Spec.Exp that represents a Memory
Access in the code (could be either Load or Store;
Context-Sensitive). |
static class |
Spec.ExpName
Extension of Spec.Exp that represents a symbolic
constant. |
static class |
Spec.ExpTemp
Extension of Spec.Exp that represents a Temporary
value in the code. |
static class |
Spec.ExpUnop
Extension of Spec.Exp that represents a Unary
operation. |
static class |
Spec.ExpVisitor
Visitor class for traversing a set of Spec.Exps
and performing some action depending on the type of
Spec.Exp visited. |
static class |
Spec.IdList
Linked list representation for representing a series of Identifier Strings in this Spec. |
static class |
Spec.Leaf
Abstract representation of leaves in the instruction pattern. |
static class |
Spec.LeafId
Extension of Spec.Leaf which represents an
Identifier. |
static class |
Spec.LeafNull
Extension of Spec.Leaf representing a null constant. |
static class |
Spec.LeafNumber
Extension of Spec.Leaf which represents a
explicit number in the specification. |
static class |
Spec.LeafOp
Extension of Spec.Leaf representing an opcode
for Uop and/or Bop. |
static class |
Spec.LeafSegType
Extension of Spec.Leaf which represents a
segment type in the specification. |
static class |
Spec.LeafVisitor
Visitor class for traversing a set of Spec.Leaf objects
and performing some action depending on the type of
Spec.Leaf visited. |
static class |
Spec.Rule
Abstract immutable representation of an Instruction Pattern. |
static class |
Spec.RuleExp
Extension of Spec.Rule that also contains a
Spec.Exp to match Tree expressions
and the identifier for the result that this
produces. |
static class |
Spec.RuleList
Linked list representation for representing the series of Spec.Rules in this Spec. |
static class |
Spec.RuleStm
Extension of Spec.Rule that also contains a
Spec.Stm to match Tree statements. |
static class |
Spec.RuleVisitor
Visitor class for traversing a set of Spec.Rules
and performing some action depending on the type of
Spec.Rule visited. |
static class |
Spec.Stm
Abstract immutable representation of a Statement in an Instruction Pattern. |
static class |
Spec.StmAlign
Extension of Spec.Stm representing an alignment
request. |
static class |
Spec.StmCall
Extension of Spec.Stm that represents a call to a
procedure. |
static class |
Spec.StmCjump
Extension of Spec.Stm representing a conditional
branch. |
static class |
Spec.StmData
Extension of Spec.Stm representing a raw datum in
memory. |
static class |
Spec.StmExp
Extension of Spec.Stm representing an expression
which is evaluated for its side effects (i.e. we throw away
the return value). |
static class |
Spec.StmJump
Extension of Spec.Stm representing an
unconditional branch. |
static class |
Spec.StmLabel
Extension of Spec.Stm representing a label which
is the target of a branch or call. |
static class |
Spec.StmMethod
Extension of Spec.Stm representing a method header. |
static class |
Spec.StmMove
Extension of Spec.Stm representing an expression
which moves a value from one place to another. |
static class |
Spec.StmNativeCall
Extension of Spec.Stm representing an expression
which is evaluated for its side effects (i.e. we throw away
the return value). |
static class |
Spec.StmReturn
Extension of Spec.Stm representing an expression
which is evaluated for its side effects (i.e. we throw away
the return value). |
static class |
Spec.StmSegment
Extension of Spec.Stm representing a change of
output segment. |
static class |
Spec.StmSeq
Extension of Spec.Stm representing a sequence of
statements to be executed in order. |
static class |
Spec.StmThrow
Extension of Spec.Stm representing a operation to
throw an exception. |
static class |
Spec.StmVisitor
Visitor class for traversing a set of Spec.Stms
and performing some action depending on the type of
Spec.Stm visited. |
static class |
Spec.TypeSet
A representation for storing Types that values can be. |
| Field Summary | |
|---|---|
String |
class_stms
Java code statements that are going to be placed inside class body (helper methods, fields, inner classes). |
String |
global_stms
Java code statements that are going to be placed outside class body (package declaration, import statements). |
String |
method_epilogue_stms
Java code statements to be inserted in the epilogue of the code generator method body. |
String |
method_prologue_stms
Java code statements to be inserted in the prologue of the code generator method body. |
Spec.RuleList |
rules
List of Instruction Patterns for this machine specification. |
| Constructor Summary | |
|---|---|
Spec(String global_stms,
String class_stms,
String method_prologue_stms,
String method_epilogue_stms,
Spec.RuleList rules)
Creates a Spec. |
|
| Method Summary | |
|---|---|
String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
public final String global_stms
public final String class_stms
public final String method_prologue_stms
public final String method_epilogue_stms
public final Spec.RuleList rules
null is a legal value.
| Constructor Detail |
|---|
public Spec(String global_stms,
String class_stms,
String method_prologue_stms,
String method_epilogue_stms,
Spec.RuleList rules)
Spec.
| Method Detail |
|---|
public String toString()
toString in class Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||