HLVM API Documentation
#include <Operator.h>
Inheritance diagram for Operator:

This class is the abstract base class in the Abstract Syntax Tree for all operators. An Operator is an instruction to the virtual machine to take some action. Operators form the content of a Block. As this is the base class of all operators, the Operator class only provides the functionality that is common to all operators: getting the number of operands (getNumOperands), getting the Value of an operand (getOperand), and setting the Value of an operand (setOperand). Since Operand is a Value, this implies two things: (1) Operators can be the operand of other operators and (2) eery Operator has a type.
Definition at line 57 of file Operator.h.
|
|
Definition at line 62 of file Operator.h. |
|
|
Definition at line 41 of file Operator.cpp. |
|
|
Provide support for isa<X> and friends.
Reimplemented from Value. Reimplemented in NegateOp, ComplementOp, PreIncrOp, PostIncrOp, PreDecrOp, PostDecrOp, SizeOfOp, LengthOp, ConvertOp, AddOp, SubtractOp, MultiplyOp, DivideOp, ModuloOp, BAndOp, BOrOp, BXorOp, BNorOp, Block, ResultOp, NotOp, AndOp, OrOp, NorOp, XorOp, LessThanOp, GreaterThanOp, LessEqualOp, GreaterEqualOp, EqualityOp, InequalityOp, SelectOp, SwitchOp, WhileOp, UnlessOp, UntilOp, LoopOp, ReturnOp, BreakOp, ContinueOp, CallOp, OpenOp, CloseOp, ReadOp, WriteOp, AllocateOp, DeallocateOp, LoadOp, StoreOp, AutoVarOp, GetOp, GetFieldOp, GetIndexOp, NilaryOperator, UnaryOperator, BinaryOperator, TernaryOperator, MultiOperator, IsPInfOp, IsNInfOp, IsNanOp, TruncOp, RoundOp, FloorOp, CeilingOp, LogEOp, Log2Op, Log10Op, SquareRootOp, CubeRootOp, FactorialOp, PowerOp, RootOp, GCDOp, LCMOp, StrInsertOp, StrEraseOp, StrReplaceOp, and StrConcatOp. Definition at line 86 of file Operator.h. References Node::isOperator(). |
|
|
Determine if this is a classof some other type.
Definition at line 85 of file Operator.h. |
|
|
Return the block containing this operator.
Definition at line 56 of file Operator.cpp. References Node::getParent(). |
|
|
Return the function containing this operator.
Definition at line 46 of file Operator.cpp. References Node::getParent(), and Node::isFunction(). |
|
|
Return the loop operator containing this operator. This can return any of the loop constructs (Loop, While, Unless, etc.) so its result type is Operator*. Definition at line 66 of file Operator.cpp. References Node::getParent(), and Node::isLoop(). |
|
|
Get a specific operand of this operator.
Implemented in NilaryOperator, UnaryOperator, BinaryOperator, TernaryOperator, and MultiOperator. |
|
|
Implemented in NilaryOperator, UnaryOperator, BinaryOperator, TernaryOperator, and MultiOperator. |
|
||||||||||||
|
Implemented in NilaryOperator, UnaryOperator, BinaryOperator, TernaryOperator, and MultiOperator. |
|
|
Reimplemented from Value. Reimplemented in NegateOp, ComplementOp, PreIncrOp, PostIncrOp, PreDecrOp, PostDecrOp, SizeOfOp, LengthOp, ConvertOp, AddOp, SubtractOp, MultiplyOp, DivideOp, ModuloOp, BAndOp, BOrOp, BXorOp, BNorOp, Block, ResultOp, NotOp, AndOp, OrOp, NorOp, XorOp, LessThanOp, GreaterThanOp, LessEqualOp, GreaterEqualOp, EqualityOp, InequalityOp, SelectOp, SwitchOp, WhileOp, UnlessOp, UntilOp, LoopOp, ReturnOp, BreakOp, ContinueOp, CallOp, OpenOp, CloseOp, ReadOp, WriteOp, AllocateOp, DeallocateOp, LoadOp, StoreOp, AutoVarOp, GetOp, GetFieldOp, GetIndexOp, NilaryOperator, UnaryOperator, BinaryOperator, TernaryOperator, MultiOperator, IsPInfOp, IsNInfOp, IsNanOp, TruncOp, RoundOp, FloorOp, CeilingOp, LogEOp, Log2Op, Log10Op, SquareRootOp, CubeRootOp, FactorialOp, PowerOp, RootOp, GCDOp, LCMOp, StrInsertOp, StrEraseOp, StrReplaceOp, and StrConcatOp. Definition at line 95 of file Operator.h. |