|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object scale.common.Root scale.score.Note scale.score.expr.Expr scale.score.expr.NaryExpr scale.score.expr.PhiExpr scale.score.expr.ExprPhiExpr
public class ExprPhiExpr
This class represents a ExprPhi operation in static single assignment form.
$Id: ExprPhiExpr.java,v 1.37 2006-02-28 16:37:11 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
It is used by PRE.
PRE
Field Summary |
---|
Fields inherited from class scale.score.expr.Expr |
---|
fpReorder, SE_DOMAIN, SE_NONE, SE_OVERFLOW, SE_STATE |
Constructor Summary | |
---|---|
ExprPhiExpr(int ver)
|
|
ExprPhiExpr(int ver,
Type type,
Vector<Expr> operands)
|
|
ExprPhiExpr(Type type,
Vector<Expr> operands)
All in-coming values should be of the same type. |
Method Summary | |
---|---|
Expr |
copy()
Perform a deep copy of the expression tree. |
boolean |
getCanBeAvail()
|
java.lang.String |
getDisplayLabel(java.lang.Object extra)
|
boolean |
getDownSafe()
|
boolean |
getLater()
|
int |
getVersion()
|
boolean |
getWillBeAvail()
|
void |
setCanBeAvail(boolean canBeAvail)
|
void |
setDownSafe(boolean downSafe)
|
void |
setLater(boolean later)
|
void |
setVersion(int version)
|
void |
setWillBeAvail(boolean willBeAvail)
|
java.lang.String |
toStringSpecial()
Return any special information of a node that is not a child or annotation. |
void |
visit(Predicate p)
Process a node by calling its associated routine. |
Methods inherited from class scale.score.expr.PhiExpr |
---|
clearEdge, clearEdgeMarkers, dependsOnDeclaration, edgeMarked, executionCostEstimate, findCriticalChord, findLinearCoefficient, getAffineRepresentation, getConstantValue, getDisplayLabel, isLoopInvariant, markEdge, optimizationCandidate, removeOperand, sideEffects, validate |
Methods inherited from class scale.score.expr.NaryExpr |
---|
addOperand, containsDeclaration, equivalent, getDeclList, getExprList, getLoadExprList, getOperand, getOperandArray, loopClean, numOperands, pushOperands, recordRefs, removeRefs, removeUseDef, replaceDecl, setOperand, unlinkExpression |
Methods inherited from class scale.score.Note |
---|
getChord, getEssentialUse, setAnnotationLevel, setReportLevel, toString |
Methods inherited from class scale.common.Root |
---|
addAnnotation, allAnnotations, allMatchingAnnotations, getAnnotation, getDisplayName, getDisplayString, getNodeCount, getNodeID, hasAnnotation, hasEqualAnnotation, hashCode, removeAnnotation, removeAnnotations, toStringAnnotations, toStringClass, trace, trace, trace |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public ExprPhiExpr(Type type, Vector<Expr> operands)
type
- of the result and each in-coming valueoperands
- a vector in-coming valuespublic ExprPhiExpr(int ver)
public ExprPhiExpr(int ver, Type type, Vector<Expr> operands)
Method Detail |
---|
public void setVersion(int version)
public int getVersion()
public boolean getCanBeAvail()
public void setCanBeAvail(boolean canBeAvail)
public boolean getLater()
public void setLater(boolean later)
public boolean getDownSafe()
public void setDownSafe(boolean downSafe)
public boolean getWillBeAvail()
public void setWillBeAvail(boolean willBeAvail)
public Expr copy()
Expr
copy
in class PhiExpr
public void visit(Predicate p)
Note
Each class has a visit(Predicate p)
method. For
example, in class ABC
:
public void visit(Predicate p) { p.visitABC(this); }and the class that implements
Predicate
has a method
public void visitABC(Note n) { ABC a = (ABC) n; ... }Thus, the class that implements
Predicate
can call
n.visit(this);where
n
is a Note
sub-class without
determining which specific sub-class n
is.
The visit pattern basically avoids implementing a large
switch
statement or defining different methods
in each class for some purpose.
visit
in class PhiExpr
Predicate
public java.lang.String getDisplayLabel(java.lang.Object extra)
public java.lang.String toStringSpecial()
Root
toStringSpecial
in class Expr
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |