public abstract class AbstractNode
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable
Modifier and Type | Field and Description |
---|---|
static int |
EXCEPTION_REG
Register number used for exception values.
|
static int |
FIRST_ORDINARY_REG
First register number used for ordinary values.
|
static int |
NO_VALUE
Register number used for absent values.
|
static int |
RETURN_REG
Register number used for return values.
|
Modifier | Constructor and Description |
---|---|
protected |
AbstractNode(SourceLocation location)
Constructs a new node.
|
Modifier and Type | Method and Description |
---|---|
abstract boolean |
canThrowExceptions()
Returns true if this node may throw exceptions.
|
void |
check(BasicBlock b)
Perform a consistency check of this node.
|
AbstractNode |
clone()
Performs a shallow clone of the node.
|
BasicBlock |
getBlock()
Returns the block containing this node.
|
AbstractNode |
getDuplicateOf()
Returns the node that this node is a duplicate of, or null if this is not a duplicate.
|
BasicBlock |
getImplicitAfterCall()
Returns the implicit after-call block for this node, or null if none.
|
int |
getIndex()
Returns the node index.
|
SourceLocation |
getSourceLocation()
Returns the source location.
|
AbstractNode |
getThisOrDuplicateOf()
Returns the node that this node is a duplicate of, or this node if this is not a duplicate.
|
boolean |
isArtificial()
Returns true if this node is an artifact and should not appear in analysis messages.
|
boolean |
isRegistersDone()
Returns the registers done flag.
|
void |
setArtificial()
Marks this operation as an artifact that should not appear in analysis messages.
|
void |
setBlock(BasicBlock block)
Sets the basic block containing this node.
|
void |
setDuplicateOf(AbstractNode other)
Marks that this node is a duplicate of the given node.
|
void |
setImplicitAfterCall(BasicBlock implicitAfterCall)
Sets the implicit after-call block.
|
void |
setIndex(int index)
Sets the node index.
|
void |
setRegistersDone(boolean registers_done)
Sets the registers done flag.
|
void |
setSourceLocation(SourceLocation loc)
Sets the source location.
|
abstract java.lang.String |
toString()
Returns a string description of this node.
|
abstract void |
visitBy(AbstractNodeVisitor v)
Visits this node with the given visitor.
|
public static final int EXCEPTION_REG
public static final int FIRST_ORDINARY_REG
public static final int NO_VALUE
public static final int RETURN_REG
protected AbstractNode(SourceLocation location)
public abstract boolean canThrowExceptions()
public void check(BasicBlock b)
b
- basic block containing this nodepublic AbstractNode clone()
clone
in class java.lang.Object
public BasicBlock getBlock()
public AbstractNode getDuplicateOf()
public BasicBlock getImplicitAfterCall()
public int getIndex()
public SourceLocation getSourceLocation()
public AbstractNode getThisOrDuplicateOf()
public boolean isArtificial()
public boolean isRegistersDone()
public void setArtificial()
public void setBlock(BasicBlock block)
public void setDuplicateOf(AbstractNode other)
public void setImplicitAfterCall(BasicBlock implicitAfterCall)
public void setIndex(int index)
public void setRegistersDone(boolean registers_done)
registers_done
- true if all ordinary registers can be considered dead at the end of this blockpublic void setSourceLocation(SourceLocation loc)
public abstract java.lang.String toString()
toString
in class java.lang.Object
public abstract void visitBy(AbstractNodeVisitor v)
Copyright © 2009-2019 Aarhus University