|
|||||||||
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.Detail s 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.Detail s
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.Exp s 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.Exp s
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 String s 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.Rule s 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.Rule s
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.Stm s
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 |