Class AbstractIRVisitor<T>

  • All Implemented Interfaces:
    IRVisitor<T>

    public abstract class AbstractIRVisitor<T>
    extends Object
    implements IRVisitor<T>
    Abstract visitor with default implementations returning null.
    • Constructor Detail

      • AbstractIRVisitor

        public AbstractIRVisitor()
    • Method Detail

      • visitPhi

        public T visitPhi​(PhiInstruction phi)
        Description copied from interface: IRVisitor
        Visits a phi that merges values arriving from several predecessors.
        Specified by:
        visitPhi in interface IRVisitor<T>
        Parameters:
        phi - the instruction
        Returns:
        the visitor result
      • visitBinaryOp

        public T visitBinaryOp​(BinaryOpInstruction binaryOp)
        Description copied from interface: IRVisitor
        Visits a two-operand arithmetic, logical, or comparison instruction.
        Specified by:
        visitBinaryOp in interface IRVisitor<T>
        Parameters:
        binaryOp - the instruction
        Returns:
        the visitor result
      • visitUnaryOp

        public T visitUnaryOp​(UnaryOpInstruction unaryOp)
        Description copied from interface: IRVisitor
        Visits a one-operand instruction such as a negation or a numeric conversion.
        Specified by:
        visitUnaryOp in interface IRVisitor<T>
        Parameters:
        unaryOp - the instruction
        Returns:
        the visitor result
      • visitBranch

        public T visitBranch​(BranchInstruction branch)
        Description copied from interface: IRVisitor
        Visits a conditional branch and its two targets.
        Specified by:
        visitBranch in interface IRVisitor<T>
        Parameters:
        branch - the instruction
        Returns:
        the visitor result
      • visitSwitch

        public T visitSwitch​(SwitchInstruction switchInstr)
        Description copied from interface: IRVisitor
        Visits a multi-way branch on an int key.
        Specified by:
        visitSwitch in interface IRVisitor<T>
        Parameters:
        switchInstr - the instruction
        Returns:
        the visitor result
      • visitReturn

        public T visitReturn​(ReturnInstruction returnInstr)
        Description copied from interface: IRVisitor
        Visits a return, with or without a value.
        Specified by:
        visitReturn in interface IRVisitor<T>
        Parameters:
        returnInstr - the instruction
        Returns:
        the visitor result
      • visitLoadLocal

        public T visitLoadLocal​(LoadLocalInstruction loadLocal)
        Description copied from interface: IRVisitor
        Visits a read of a local variable slot.
        Specified by:
        visitLoadLocal in interface IRVisitor<T>
        Parameters:
        loadLocal - the instruction
        Returns:
        the visitor result
      • visitStoreLocal

        public T visitStoreLocal​(StoreLocalInstruction storeLocal)
        Description copied from interface: IRVisitor
        Visits a write to a local variable slot.
        Specified by:
        visitStoreLocal in interface IRVisitor<T>
        Parameters:
        storeLocal - the instruction
        Returns:
        the visitor result
      • visitInvoke

        public T visitInvoke​(InvokeInstruction invoke)
        Description copied from interface: IRVisitor
        Visits a method invocation.
        Specified by:
        visitInvoke in interface IRVisitor<T>
        Parameters:
        invoke - the instruction
        Returns:
        the visitor result
      • visitNew

        public T visitNew​(NewInstruction newInstr)
        Description copied from interface: IRVisitor
        Visits an uninitialized object allocation, before its constructor call.
        Specified by:
        visitNew in interface IRVisitor<T>
        Parameters:
        newInstr - the instruction
        Returns:
        the visitor result
      • visitNewArray

        public T visitNewArray​(NewArrayInstruction newArray)
        Description copied from interface: IRVisitor
        Visits an array allocation.
        Specified by:
        visitNewArray in interface IRVisitor<T>
        Parameters:
        newArray - the instruction
        Returns:
        the visitor result
      • visitCopy

        public T visitCopy​(CopyInstruction copy)
        Description copied from interface: IRVisitor
        Visits a copy of one SSA value into another.
        Specified by:
        visitCopy in interface IRVisitor<T>
        Parameters:
        copy - the instruction
        Returns:
        the visitor result
      • visitConstant

        public T visitConstant​(ConstantInstruction constant)
        Description copied from interface: IRVisitor
        Visits a constant load.
        Specified by:
        visitConstant in interface IRVisitor<T>
        Parameters:
        constant - the instruction
        Returns:
        the visitor result
      • visitFieldAccess

        public T visitFieldAccess​(FieldAccessInstruction fieldAccess)
        Description copied from interface: IRVisitor
        Visits a field read or write.
        Specified by:
        visitFieldAccess in interface IRVisitor<T>
        Parameters:
        fieldAccess - the instruction
        Returns:
        the visitor result
      • visitArrayAccess

        public T visitArrayAccess​(ArrayAccessInstruction arrayAccess)
        Description copied from interface: IRVisitor
        Visits an array element read or write.
        Specified by:
        visitArrayAccess in interface IRVisitor<T>
        Parameters:
        arrayAccess - the instruction
        Returns:
        the visitor result
      • visitTypeCheck

        public T visitTypeCheck​(TypeCheckInstruction typeCheck)
        Description copied from interface: IRVisitor
        Visits an instanceof test or a checkcast.
        Specified by:
        visitTypeCheck in interface IRVisitor<T>
        Parameters:
        typeCheck - the instruction
        Returns:
        the visitor result
      • visitSimple

        public T visitSimple​(SimpleInstruction simple)
        Description copied from interface: IRVisitor
        Visits a single-operand instruction: arraylength, a monitor op, throw, goto, or catch.
        Specified by:
        visitSimple in interface IRVisitor<T>
        Parameters:
        simple - the instruction
        Returns:
        the visitor result