Package EDU.purdue.cs.bloat.tree


package EDU.purdue.cs.bloat.tree

The classes necessary to create and represent a Java method as an expression tree. The nodes of the tree model various operations (arithmetic operations, method calls, exceptions being thrown, etc.) performed by a method. There are also classes that let you visit and operate on the tree.

  • Class
    Description
    Associated with an AddressStoreStmt is a Subroutine whose address (offset in the instruction sequence) is to be stored.
    ArithExpr represents a binary arithmetic expression.
    ArrayLengthExpr represents the arraylength opcode which gets length of an array.
    ArrayRefExpr represents an expression that references an element in an array.
    AscendVisitor is the superclass of Type0Visitor and Type1Visitor, conveniently containing the common code.
    Classes that implement Assign involve an assignment (definition).
    CallExpr is a superclass of expressions that represent the invocation of a method.
    CallMethodExpr represents the invocation of an object's method.
    CallStaticExpr represents the invokestatic opcode which invokes a class (static) method.
    CastExpr represents an expression that casts an object to a given type.
    CatchExpr represents an expression that catches an exception.
    CheckExpr is a superclass for classes representing a check on an expression.
    CondExpr is a superclass for conditional expressions.
    ConstantExpr represents a constant expression.
    An expression in which a definition occurs.
    DefInformation contains information about the definition of a local variable
    DecsendVisitor is the superclass of a few private classes of Type0Visitor and Type1Visitor.
     
    Expr is the superclass for a number of other classes representing expressions in byte code.
    ExprStmt is a statement consisting of an expression.
    FieldExpr represents the getfield opcode which fetches a field from an object.
    Represents an unconditional branch to a basic block.
    IfCmpStmt consists of a comparison expression (a left-hand expression, a comparison operator, and a right-hand expression) that is to be evaluated.
    IfStmt is a super class of statements in which some expression is evaluated and one of two branches is taken.
    IfZeroStmt evaluates an expression and executes one of its two branches depending on whether or not the expression evaluated to zero.
    InitStmt groups together the initialization of local variables (LocalExpr).
    InstanceOfExpr represnts the instanceof opcode which determine if an object is of a given type.
    JsrStmt represents a jsr instruction that jumps to a subroutine.
    JumpStmt is the super class for several classes that represent statements that chang the flow of control in a program.
    LabelStmt is a placeholder in a Tree for a Label (the target of a jump).
    An expression that can appear as a leaf node in a Tree.
    LEGatherer visits a basic block and returns all the LocalExprs in a vector
    LocalExpr represents an expression that accesses a variable in a method's local variable table.
    An expression that accesses a memory location.
    MemRefExpr represents an expression that references a memory location as opposed to a local variable or a variable on the stack.
    MonitorStmt represents the monitorenter and monitorexit opcodes, which gain and release ownership of the monitor associated with a given object.
    NegExpr represents the arithmetic negation of an expression.
    NewArrayExpr represents the newarray opcode which creates a new array of a specified length and element type.
    NewExpr represents the new opcode that creates a new object of a specified type.
    NewMultiArrayExpr represents the multianewarray opcode which creates a new multidimensional array.
    Node represents a node in an expression tree.
    OperandStack is used to simulate the JVM stack.
    A PhiCatchStmt is used to handle variables that are used inside an exception handler.
    PhiJoinStmt represents a phi-function inserted into a control flow graph during conversion of variables to static single-assignment form.
    A PhiStmt is inserted into a CFG in Single Static Assignment for.
    PrintVistor traverses a Tree and prints some information about each visited Node to a stream.
    RCExpr represents a residency check.
    ReplaceVisitor traverses a tree and replaces each occurrence of one Node with another Node.
    RetStmt represents the ret opcode which returns from a subroutine.
    ReturnAddressExpr represents a return address used with the ret opcode.
    ReturnExprStmt represents the areturn opcode which returns a reference from a method.
    ReturnStmt represents the return opcode which returns void from a method.
    SCStmt represents a swizzle check on an element in an array.
    ShiftExpr represents a bit shift operation.
    SRStmt represents the swizzle of a range of elements in an array.
    StackExpr represents an expression that is stored on the stack.
    StackManipStmt represents the opcodes that manipulate the stack such as swap and dup.
    StackOptimizer analyzes the relative distances of various uses of the same definition of a local variable to add dups and swaps to the bytecode and eliminate loads and stores.
    StaticFieldExpr represents the getstatic opcode which gets a static (class) field from a class.
    Stmt is a super class used to represent statements in a Java bytecode program.
    StoreExpr represents a store of an expression into a memory location.
    SwitchStmt represents a switch statement.
    Swizzler represents an induction variable that is used as an index into an array.
    ThrowStmt represents the athrow opcode which throws an exception or error.
    Tree represents the expression tree of a basic Block.
    TreeVisitor performs a traversal of a tree.
    Type0Visitor searches up the tree, starting at a LocalExpr, looking for an earlier instance of the same definition of that LocalExpr in a Type 0 relation.
    Type1Visitor...
    UPExpr represents an update check opcode which checks the persistent store to determine if a variable needs to be updated.
    UseInformation stores information about a use of a local variable.
    VarExpr represents an expression that accesses a local variable or a variable on the stack.
    ZeroCheckExpr represents a check for a zero value.