|
|||||||||
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.TernaryExpr
public abstract class TernaryExpr
This is the base class for operations with three arguments.
$Id: TernaryExpr.java,v 1.49 2007-10-17 13:40:01 burrill Exp $
Copyright 2008 by the
Scale Compiler Group,
Department of Computer Science
University of Massachusetts,
Amherst MA. 01003, USA
All Rights Reserved.
Field Summary |
---|
Fields inherited from class scale.score.expr.Expr |
---|
fpReorder, SE_DOMAIN, SE_NONE, SE_OVERFLOW, SE_STATE |
Constructor Summary | |
---|---|
TernaryExpr(Type t,
Expr la,
Expr ma,
Expr ra)
|
Method Summary | |
---|---|
boolean |
containsDeclaration(Declaration decl)
Return true if this expression contains a reference to the variable. |
boolean |
dependsOnDeclaration(Declaration decl)
Return true if this expression's value depends on the variable. |
boolean |
equivalent(Expr exp)
Return true if the expressions are equivalent. |
void |
getDeclList(java.util.AbstractCollection<Declaration> varList)
Add all declarations referenced in this expression to the Vector. |
void |
getExprList(Vector<Expr> expList)
Add all Expr instances in this expression to the Vector. |
Expr |
getLA()
Return the left argument. |
void |
getLoadExprList(Vector<LoadExpr> expList)
Add all LoadExpr instances in this expression to the Vector. |
Expr |
getMA()
Return the middle argument. |
Expr |
getOperand(int position)
Return the nth operand. |
Expr[] |
getOperandArray()
Return an array of the operands to the expression. |
Expr |
getRA()
Return the right argument. |
void |
loopClean()
Clean up any loop related information. |
int |
numOperands()
Return the number of operands to this expression. |
boolean |
optimizationCandidate()
Return true if the expression can be moved without problems. |
void |
pushOperands(Stack<Expr> wl)
Push all of the operands of this expression on the Stack. |
void |
recordRefs(Chord stmt,
References refs)
Record any variable references in this expression in the table of references. |
void |
removeRefs(Chord stmt,
References refs)
Remove any variable references in this expression from the table of references. |
void |
removeUseDef()
Remove any use - def links, may - use links, etc. |
boolean |
replaceDecl(Declaration oldDecl,
Declaration newDecl)
Replace all occurrances of a Declaration with another Declaration. |
void |
setLA(Expr la)
Replace the left operand. |
void |
setMA(Expr ma)
Replace the middle operand. |
protected Expr |
setOperand(Expr operand,
int position)
Set the nth operand of an expression. |
void |
setRA(Expr ra)
Replace the right operand. |
int |
sideEffects()
Return an indication of the side effects execution of this expression may cause. |
void |
unlinkExpression()
If the node is no longer needed, sever its use-def link, etc. |
void |
validate()
Check this node for validity. |
Methods inherited from class scale.score.Note |
---|
executionCostEstimate, getChord, getEssentialUse, setAnnotationLevel, setReportLevel, toString, visit |
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 TernaryExpr(Type t, Expr la, Expr ma, Expr ra)
Method Detail |
---|
public boolean equivalent(Expr exp)
equivalent
in class Expr
public final Expr getLA()
public final Expr getMA()
public final Expr getRA()
public final void setLA(Expr la)
la
argument may be null
.
la
- is the new left argumentpublic final void setMA(Expr ma)
ma
argument may be null
.
ma
- is the new middle argumentpublic final void setRA(Expr ra)
ra
argument may be null
.
ra
- is the new right argumentprotected Expr setOperand(Expr operand, int position)
operand
must not be
null
.
setOperand
in class Expr
operand
- - the new operandposition
- - indicates which operand
public final Expr getOperand(int position)
getOperand
in class Expr
position
- the index of the operandpublic final Expr[] getOperandArray()
getOperandArray
in class Expr
public int numOperands()
numOperands
in class Expr
public void loopClean()
loopClean
in class Expr
public void unlinkExpression()
unlinkExpression
in class Expr
public boolean containsDeclaration(Declaration decl)
containsDeclaration
in class Expr
LoadExpr.setUseOriginal(boolean)
public boolean dependsOnDeclaration(Declaration decl)
dependsOnDeclaration
in class Expr
LoadExpr.setUseOriginal(boolean)
public boolean optimizationCandidate()
optimizationCandidate
in class Expr
public void getDeclList(java.util.AbstractCollection<Declaration> varList)
getDeclList
in class Expr
public void getLoadExprList(Vector<LoadExpr> expList)
getLoadExprList
in class Expr
public void getExprList(Vector<Expr> expList)
getExprList
in class Expr
public void pushOperands(Stack<Expr> wl)
pushOperands
in class Expr
public boolean replaceDecl(Declaration oldDecl, Declaration newDecl)
replaceDecl
in class Expr
public void removeUseDef()
removeUseDef
in class Expr
public void validate()
validate
in class Expr
public void recordRefs(Chord stmt, References refs)
recordRefs
in class Expr
public void removeRefs(Chord stmt, References refs)
removeRefs
in class Expr
public int sideEffects()
sideEffects
in class Expr
Expr.SE_NONE
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |