Class BasicArrayCopyNode

  • Field Details

    • TYPE

      public static final NodeClass<BasicArrayCopyNode> TYPE
    • lastLocationAccess

      protected MemoryKill lastLocationAccess
    • stateAfter

      protected FrameState stateAfter
    • elementKind

      protected jdk.vm.ci.meta.JavaKind elementKind
    • bci

      protected int bci
  • Constructor Details

  • Method Details

    • bci

      public int bci()
      Specified by:
      bci in interface DeoptBciSupplier
      Returns:
      the byte code index (BCI) associated with the node implementing this interface
    • setBci

      public void setBci(int bci)
      Description copied from interface: DeoptBciSupplier
      Remember the byte code index (BCI) for code generation or lowering purposes. For example, nodes lowering to foreign calls that can safepoint require a valid BCI for computations of the during-state of such a foreign call.
      Specified by:
      setBci in interface DeoptBciSupplier
    • getElementKind

      public jdk.vm.ci.meta.JavaKind getElementKind()
    • getLocationIdentity

      public org.graalvm.word.LocationIdentity getLocationIdentity()
      Specified by:
      getLocationIdentity in interface MemoryAccess
    • getKilledLocationIdentity

      public org.graalvm.word.LocationIdentity getKilledLocationIdentity()
      Description copied from interface: SingleMemoryKill
      This method is used to determine which memory location is killed by this node. Returning the special value LocationIdentity.any() will kill all memory locations.
      Specified by:
      getKilledLocationIdentity in interface SingleMemoryKill
      Returns:
      the identity of the location killed by this node.
    • getLastLocationAccess

      public MemoryKill getLastLocationAccess()
      Specified by:
      getLastLocationAccess in interface MemoryAccess
      Returns:
      a MemoryKill that represents the last memory state in the memory graph for the LocationIdentity returned by MemoryAccess.getLocationIdentity()
    • setLastLocationAccess

      public void setLastLocationAccess(MemoryKill lla)
      Specified by:
      setLastLocationAccess in interface MemoryAccess
      Parameters:
      lla - the MemoryKill that represents the last kill of the LocationIdentity returned by MemoryAccess.getLocationIdentity()
    • stateDuring

      public FrameState stateDuring()
      Specified by:
      stateDuring in interface DeoptimizingNode.DeoptDuring
    • setStateDuring

      public void setStateDuring(FrameState stateDuring)
      Description copied from interface: DeoptimizingNode.DeoptDuring
      Sets the FrameState describing the program state during the execution of this node.
      Specified by:
      setStateDuring in interface DeoptimizingNode.DeoptDuring
    • stateAfter

      public FrameState stateAfter()
      Description copied from interface: StateSplit
      Gets the FrameState corresponding to the state of the JVM after execution of this node.
      Specified by:
      stateAfter in interface StateSplit
    • setStateAfter

      public void setStateAfter(FrameState x)
      Description copied from interface: StateSplit
      Sets the FrameState corresponding to the state of the JVM after execution of this node.
      Specified by:
      setStateAfter in interface StateSplit
    • hasSideEffect

      public boolean hasSideEffect()
      Description copied from interface: StateSplit
      Determines if this node has a side-effect. Such nodes cannot be safely re-executed because they modify state which is visible to other threads or modify state beyond what is captured in FrameState nodes.
      Specified by:
      hasSideEffect in interface StateSplit
    • selectComponentKind

      public static jdk.vm.ci.meta.JavaKind selectComponentKind(BasicArrayCopyNode arraycopy)
    • getSource

      public ValueNode getSource()
    • getSourcePosition

      public ValueNode getSourcePosition()
    • getDestination

      public ValueNode getDestination()
    • getDestinationPosition

      public ValueNode getDestinationPosition()
    • getLength

      public ValueNode getLength()
    • setSource

      public void setSource(ValueNode value)
    • setSourcePosition

      public void setSourcePosition(ValueNode value)
    • checkBounds

      public static boolean checkBounds(int position, int length, VirtualObjectNode virtualObject)
    • checkEntryTypes

      public static boolean checkEntryTypes(int srcPos, int length, VirtualObjectNode src, jdk.vm.ci.meta.ResolvedJavaType destComponentType, VirtualizerTool tool)
    • isExact

      public boolean isExact()
    • virtualize

      public void virtualize(VirtualizerTool tool)
      Description copied from interface: Virtualizable
      A node class can implement this method to convey information about what its effect would be if some of its inputs were virtualized. All modifications must be made through the supplied tool, and not directly on the node, because by the time this method is called the virtualized/non-virtualized state is still speculative and might not hold because of loops, etc.
      Specified by:
      virtualize in interface Virtualizable
      Parameters:
      tool - the tool used to describe the effects of this node
    • canDeoptimize

      public boolean canDeoptimize()
      Description copied from interface: DeoptimizingNode
      Determines if this node needs deoptimization information.
      Specified by:
      canDeoptimize in interface DeoptimizingNode
    • computeStateDuring

      public void computeStateDuring(FrameState currentStateAfter)
      Description copied from interface: DeoptimizingNode.DeoptDuring
      Compute the FrameState describing the program state during the execution of this node from an input FrameState describing the program state after finishing the execution of this node.
      Specified by:
      computeStateDuring in interface DeoptimizingNode.DeoptDuring