Package harpoon.Tools.PatMat

Pattern-matching instruction-selector-generator tool.

See:
          Description

Class Summary
CodeGeneratorGenerator CodeGeneratorGenerator generates a java program to convert Trees into Instr sequences.
CommutativityExpander The CommutativityExpander tool expands a set of Spec.Rules to include add'l valid patterns generated from the commutative properties of various Spec.ExpBinops.
Main  
MaximalMunchCGG MaximalMunchCGG finds an optimal tiling of instructions on a Tree-IR.
Parser  
Spec Spec represents the parsed specification of a set of Instruction Patterns for a target backend .
Spec.Detail A detail is an abstract representation for a piece of data about the Instruction Pattern or Rule.
Spec.DetailExtra Extension of Spec.Detail that requests an extra temporary register for the use of the action clause.
Spec.DetailList Linked list representation for representing the series of Spec.Details in this Spec.
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.
Spec.DetailVisitor Visitor class for traversing a set of Spec.Details and performing some action depending on the type of Spec.Detail visited.
Spec.DetailWeight Extension of Spec.Detail that stores a (name,weight) pair.
Spec.Exp Abstract immutable representation of an Expression in an Instruction Pattern.
Spec.ExpBinop Extension of Spec.Exp that represents a Binary Operation in the code.
Spec.ExpConst Extension of Spec.Exp that represents a Constant value in the code.
Spec.ExpId Extension of Spec.Exp that represents an Identifier in the code.
Spec.ExpList Linked list representation for representing the series of Spec.Exps in a given Spec.Exp or Spec.Stm.
Spec.ExpMem Extension of Spec.Exp that represents a Memory Access in the code (could be either Load or Store; Context-Sensitive).
Spec.ExpName Extension of Spec.Exp that represents a symbolic constant.
Spec.ExpTemp Extension of Spec.Exp that represents a Temporary value in the code.
Spec.ExpUnop Extension of Spec.Exp that represents a Unary operation.
Spec.ExpVisitor Visitor class for traversing a set of Spec.Exps and performing some action depending on the type of Spec.Exp visited.
Spec.IdList Linked list representation for representing a series of Identifier Strings in this Spec.
Spec.Leaf Abstract representation of leaves in the instruction pattern.
Spec.LeafId Extension of Spec.Leaf which represents an Identifier.
Spec.LeafNull Extension of Spec.Leaf representing a null constant.
Spec.LeafNumber Extension of Spec.Leaf which represents a explicit number in the specification.
Spec.LeafOp Extension of Spec.Leaf representing an opcode for Uop and/or Bop.
Spec.LeafSegType Extension of Spec.Leaf which represents a segment type in the specification.
Spec.LeafVisitor Visitor class for traversing a set of Spec.Leaf objects and performing some action depending on the type of Spec.Leaf visited.
Spec.Rule Abstract immutable representation of an Instruction Pattern.
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.
Spec.RuleList Linked list representation for representing the series of Spec.Rules in this Spec.
Spec.RuleStm Extension of Spec.Rule that also contains a Spec.Stm to match Tree statements.
Spec.RuleVisitor Visitor class for traversing a set of Spec.Rules and performing some action depending on the type of Spec.Rule visited.
Spec.Stm Abstract immutable representation of a Statement in an Instruction Pattern.
Spec.StmAlign Extension of Spec.Stm representing an alignment request.
Spec.StmCall Extension of Spec.Stm that represents a call to a procedure.
Spec.StmCjump Extension of Spec.Stm representing a conditional branch.
Spec.StmData Extension of Spec.Stm representing a raw datum in memory.
Spec.StmExp Extension of Spec.Stm representing an expression which is evaluated for its side effects (i.e. we throw away the return value).
Spec.StmJump Extension of Spec.Stm representing an unconditional branch.
Spec.StmLabel Extension of Spec.Stm representing a label which is the target of a branch or call.
Spec.StmMethod Extension of Spec.Stm representing a method header.
Spec.StmMove Extension of Spec.Stm representing an expression which moves a value from one place to another.
Spec.StmNativeCall Extension of Spec.Stm representing an expression which is evaluated for its side effects (i.e. we throw away the return value).
Spec.StmReturn Extension of Spec.Stm representing an expression which is evaluated for its side effects (i.e. we throw away the return value).
Spec.StmSegment Extension of Spec.Stm representing a change of output segment.
Spec.StmSeq Extension of Spec.Stm representing a sequence of statements to be executed in order.
Spec.StmThrow Extension of Spec.Stm representing a operation to throw an exception.
Spec.StmVisitor Visitor class for traversing a set of Spec.Stms and performing some action depending on the type of Spec.Stm visited.
Spec.TypeSet A representation for storing Types that values can be.
Sym CUP generated class containing symbol constants.
 

Package harpoon.Tools.PatMat Description

Pattern-matching instruction-selector-generator tool.

Author:
Felix Klock (pnkfelix@mit.edu), C. Scott Ananian <cananian@alumni.princeton.edu>
See Also:
A sample template of Instruction Patterns.