InstructionStackEffect

dotty.tools.backend.jvm.analysis.InstructionStackEffect

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def cons(i: Int): Int
def forAsmAnalysis[V <: Value](insn: AbstractInsnNode, frame: Frame[V]): Int

Returns the number of stack values consumed and produced by insn, encoded in a single Int (the cons / prod extract individual values). The returned values are correct for use in asm's Analyzer framework. For example, a LLOAD instruction produces one stack value. See also doc in analysis package object.

Returns the number of stack values consumed and produced by insn, encoded in a single Int (the cons / prod extract individual values). The returned values are correct for use in asm's Analyzer framework. For example, a LLOAD instruction produces one stack value. See also doc in analysis package object.

This method requires the frame to be in the state before executing / interpreting the insn.

Attributes

Returns the number of stack values consumed and produced by insn, encoded in a single Int (the cons / prod extract individual values). The returned values are correct for writing into a classfile (see doc on the analysis package object).

Returns the number of stack values consumed and produced by insn, encoded in a single Int (the cons / prod extract individual values). The returned values are correct for writing into a classfile (see doc on the analysis package object).

Attributes

Returns the maximal possible growth of the stack when executing insn. The returned value is usually the same as expected by asm's Analyzer framework, but it may be larger. For example, consider a POP2 instruction:

Returns the maximal possible growth of the stack when executing insn. The returned value is usually the same as expected by asm's Analyzer framework, but it may be larger. For example, consider a POP2 instruction:

  • if two size-1 values are popped, then the asm Analyzer consumes two values
  • if a size-2 value is popped, the asm Analyzer consumes only one stack slot (see doc in the analysis package object)

If a precise result is needed, invoke the forAsmAnalysis and provide a frame value that allows looking up the sizes of values on the stack.

Attributes

def prod(i: Int): Int