\subsection{Immediate Class} \label{sec:immediate} The Immediate class represents an immediate value in an operand. Since an Immediate represents a constant value, the \code{setValue} and \code{clearValue} interface are disabled on Immediate objects. If an immediate value is being modified, a new Immediate object should be created to represent the new value. \begin{apient} virtual bool isUsed(InstructionAST::Ptr findMe) const \end{apient} \begin{apient} void getChildren(vector &) const \end{apient} \apidesc{ By definition, an \code{Immediate} has no children. } \begin{apient} void getUses(set &) \end{apient} \apidesc{ By definition, an \code{Immediate} uses no registers. } \begin{apient} bool isUsed(InstructionAPI::Ptr findMe) const \end{apient} \apidesc{ \code{isUsed}, when called on an Immediate, will return true if \code{findMe} represents an Immediate with the same value. While this convention may seem arbitrary, it allows \code{isUsed} to follow a natural rule: an \code{InstructionAST} is used by another \code{InstructionAST} if and only if the first \code{InstructionAST} is a subtree of the second one. }