Interface JitOpVisitor

All Known Subinterfaces:
JitOpUpwardVisitor
All Known Implementing Classes:
JitDataFlowModel.GraphvizExporter, JitDataFlowModel.ValCollector

public interface JitOpVisitor
A visitor for traversing the use-def graph

The default implementations here do nothing other than discern the type of an op and variable and dispatch the invocations appropriately. To traverse the graph upward, consider JitOpUpwardVisitor. Note no "downward" visitor is currently provided, because it was not needed.

  • Method Details

    • visitOp

      default void visitOp(JitOp op)
      Visit an op node

      The default implementation dispatches this to the type-specific visit method.

      Parameters:
      op - the op visited
    • visitUnOp

      default void visitUnOp(JitUnOp unOp)
      Visit a JitUnOp
      Parameters:
      unOp - the op visited
    • visitBinOp

      default void visitBinOp(JitBinOp binOp)
      Visit a JitBinOp
      Parameters:
      binOp - the op visited
    • visitStoreOp

      default void visitStoreOp(JitStoreOp storeOp)
      Visit a JitStoreOp
      Parameters:
      storeOp - the op visited
    • visitLoadOp

      default void visitLoadOp(JitLoadOp loadOp)
      Visit a JitLoadOp
      Parameters:
      loadOp - the op visited
    • visitCallOtherOp

      default void visitCallOtherOp(JitCallOtherOp otherOp)
      Parameters:
      otherOp - the op visited
    • visitCallOtherDefOp

      default void visitCallOtherDefOp(JitCallOtherDefOp otherOp)
      Parameters:
      otherOp - the op visited
    • visitCallOtherMissingOp

      default void visitCallOtherMissingOp(JitCallOtherMissingOp otherOp)
      Parameters:
      otherOp - the op visited
    • visitCatenateOp

      default void visitCatenateOp(JitCatenateOp catOp)
      Parameters:
      catOp - the op visited
    • visitPhiOp

      default void visitPhiOp(JitPhiOp phiOp)
      Visit a JitPhiOp
      Parameters:
      phiOp - the op visited
    • visitSubPieceOp

      default void visitSubPieceOp(JitSynthSubPieceOp pieceOp)
      Parameters:
      pieceOp - the op visited
    • visitBranchOp

      default void visitBranchOp(JitBranchOp branchOp)
      Visit a JitBranchOp
      Parameters:
      branchOp - the op visited
    • visitCBranchOp

      default void visitCBranchOp(JitCBranchOp cBranchOp)
      Visit a JitCBranchOp
      Parameters:
      cBranchOp - the op visited
    • visitBranchIndOp

      default void visitBranchIndOp(JitBranchIndOp branchIndOp)
      Parameters:
      branchIndOp - the op visited
    • visitUnimplementedOp

      default void visitUnimplementedOp(JitUnimplementedOp unimplOp)
      Parameters:
      unimplOp - the op visited
    • visitNopOp

      default void visitNopOp(JitNopOp nopOp)
      Visit a JitNopOp
      Parameters:
      nopOp - the op visited
    • visitVal

      default void visitVal(JitVal v)
      Visit a JitVal

      The default implementation dispatches this to the type-specific visit method.

      Parameters:
      v - the value visited
    • visitVar

      default void visitVar(JitVar v)
      Visit a JitVar

      The default implementation dispatches this to the type-specific visit method.

      Parameters:
      v - the variable visited
    • visitConstVal

      default void visitConstVal(JitConstVal constVal)
      Visit a JitConstVal
      Parameters:
      constVal - the variable visited
    • visitDirectMemoryVar

      default void visitDirectMemoryVar(JitDirectMemoryVar dirMemVar)
      Parameters:
      dirMemVar - the variable visited
    • visitIndirectMemoryVar

      default void visitIndirectMemoryVar(JitIndirectMemoryVar indMemVar)
      Visit a JitIndirectMemoryVar

      NOTE: These should not ordinarily appear in the use-def graph. There is only the one JitIndirectMemoryVar.INSTANCE, and it's used as a temporary dummy. Indirect memory access is instead modeled by the JitLoadOp.

      Parameters:
      indMemVar - the variable visited
    • visitInputVar

      default void visitInputVar(JitInputVar inputVar)
      Visit a JitInputVar
      Parameters:
      inputVar - the variable visited
    • visitMissingVar

      default void visitMissingVar(JitMissingVar missingVar)
      Parameters:
      missingVar - the variable visited
    • visitOutVar

      default void visitOutVar(JitOutVar outVar)
      Visit a JitOutVar
      Parameters:
      outVar - the variable visited