scala.tools.nsc.Global

icodes

object icodes extends ICodes

ICode generator

Source
Global.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Hide All
  2. Show all
  1. icodes
  2. ICodes
  3. Repository
  4. Printers
  5. Linearizers
  6. Primitives
  7. ExceptionHandlers
  8. TypeKinds
  9. TypeStacks
  10. Opcodes
  11. BasicBlocks
  12. Members
  13. AnyRef
  14. Any
Visibility
  1. Public
  2. All

Type Members

  1. final case class ARRAY(elem: TypeKind) extends TypeKind with Product with Serializable

  2. case class Arithmetic(op: ArithmeticOp, kind: TypeKind) extends Primitive with Product with Serializable

  3. class ArithmeticOp extends AnyRef

    This class represents an arithmetic operation.

  4. case class ArrayLength(kind: TypeKind) extends Primitive with Product with Serializable

  5. case class BOXED(kind: TypeKind) extends TypeKind with Product with Serializable

    A boxed value.

  6. class BasicBlock extends ProgramPoint[BasicBlock] with Seq[Instruction]

    This class represents a basic block.

  7. class Code extends AnyRef

    This class represents the intermediate code of a method or other multi-block piece of code, like exception handlers.

  8. case class Comparison(op: ComparisonOp, kind: TypeKind) extends Primitive with Product with Serializable

  9. class ComparisonOp extends AnyRef

    This class represents a comparison operation.

  10. case class Conversion(src: TypeKind, dst: TypeKind) extends Primitive with Product with Serializable

  11. class DepthFirstLinerizer extends Linearizer

    Linearize code using a depth first traversal.

  12. class DumpLinearizer extends Linearizer

    A 'dump' of the blocks in this method, which does not require any well-formedness of the basic blocks (like the last instruction being a jump).

  13. class ExceptionHandler extends AnyRef

  14. class Finalizer extends ExceptionHandler

  15. class IClass extends IMember

    Represent a class in ICode

  16. abstract class ICodePhase extends GlobalPhase

    A phase which works on icode.

  17. class IField extends IMember

    Represent a field in ICode

  18. trait IMember extends Ordered[IMember]

    Common interface for IClass/IField/IMethod.

  19. class IMethod extends IMember

    Represents a method in ICode.

  20. abstract class Instruction extends Cloneable

    This class represents an instruction of the intermediate code.

  21. abstract class Linearizer extends AnyRef

  22. class Local extends AnyRef

    Represent local variables and parameters

  23. case class Logical(op: LogicalOp, kind: TypeKind) extends Primitive with Product with Serializable

  24. class LogicalOp extends AnyRef

    This class represents a logical operation.

  25. class MSILLinearizer extends Linearizer

    The MSIL linearizer is used only for methods with at least one exception handler.

  26. case class Negation(kind: TypeKind) extends Primitive with Product with Serializable

  27. class NormalLinearizer extends Linearizer with WorklistAlgorithm

    A simple linearizer which predicts all branches to take the 'success' branch and tries to schedule those blocks immediately after the test.

  28. class Primitive extends AnyRef

    This class represents a primitive operation.

  29. class PrimitivePrinter extends AnyRef

    Pretty printer for primitives

  30. final case class REFERENCE(cls: Symbol) extends TypeKind with Product with Serializable

    A class type.

  31. type Rep = List[TypeKind]

    Definition Classes
    TypeStacks
  32. class ReversePostOrderLinearizer extends Linearizer

    Linearize code in reverse post order.

  33. case class Shift(op: ShiftOp, kind: TypeKind) extends Primitive with Product with Serializable

  34. class ShiftOp extends AnyRef

    This class represents a shift operation.

  35. case class StringConcat(el: TypeKind) extends Primitive with Product with Serializable

  36. case class Test(op: TestOp, kind: TypeKind, zero: Boolean) extends Primitive with Product with Serializable

  37. class TestOp extends AnyRef

    This class represents a test operation.

  38. class TextPrinter extends AnyRef

  39. sealed abstract class TypeKind extends AnyRef

    This class represents a type kind.

  40. class TypeStack extends AnyRef

  41. sealed abstract class ValueTypeKind extends TypeKind

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. object ADD extends ArithmeticOp with Product with Serializable

    An arithmetic addition operation

  7. object AND extends LogicalOp with Product with Serializable

    A bitwise AND operation

  8. object ASR extends ShiftOp with Product with Serializable

    An arithmetic shift to the right

  9. lazy val AnyRefReference: TypeKind

    Definition Classes
    ICodes
  10. def ArrayN(elem: TypeKind, dims: Int): ARRAY

    Definition Classes
    TypeKinds
  11. object BOOL extends ValueTypeKind with Product with Serializable

    A boolean value

  12. object BYTE extends ValueTypeKind with Product with Serializable

    A 1-byte signed integer

  13. lazy val BoxedUnitReference: TypeKind

    Definition Classes
    ICodes
  14. object CHAR extends ValueTypeKind with Product with Serializable

    A 2-byte UNSIGNED integer

  15. object CMP extends ComparisonOp with Product with Serializable

    A comparison operation with no default for NaNs

  16. object CMPG extends ComparisonOp with Product with Serializable

    A comparison operation with +1 default for NaNs

  17. object CMPL extends ComparisonOp with Product with Serializable

    A comparison operation with -1 default for NaNs

  18. object ConcatClass extends TypeKind with Product with Serializable

    Dummy TypeKind to represent the ConcatClass in a platform-independent way.

  19. object DIV extends ArithmeticOp with Product with Serializable

    An arithmetic division operation

  20. object DOUBLE extends ValueTypeKind with Product with Serializable

    An 8-byte floating point number

  21. object EQ extends TestOp with Product with Serializable

    An equality test

  22. object EndConcat extends Primitive with Product with Serializable

    type: (buf) => STR jvm : It should turn the StringBuffer into a String.

  23. object FLOAT extends ValueTypeKind with Product with Serializable

    A 4-byte floating point number

  24. object GE extends TestOp with Product with Serializable

    A greater-than-or-equal test

  25. object GT extends TestOp with Product with Serializable

    A greater-than test

  26. object INT extends ValueTypeKind with Product with Serializable

    A 4-byte signed integer

  27. object LE extends TestOp with Product with Serializable

    A less-than-or-equal test

  28. object LONG extends ValueTypeKind with Product with Serializable

    An 8-byte signed integer

  29. object LSL extends ShiftOp with Product with Serializable

    A logical shift to the left

  30. object LSR extends ShiftOp with Product with Serializable

    A logical shift to the right

  31. object LT extends TestOp with Product with Serializable

    A less-than test

  32. object MUL extends ArithmeticOp with Product with Serializable

    An arithmetic multiplication operation

  33. object NE extends TestOp with Product with Serializable

    A non-equality test

  34. object NOT extends ArithmeticOp with Product with Serializable

    Bitwise negation.

  35. object NoFinalizer extends Finalizer

  36. lazy val NothingReference: TypeKind

    Definition Classes
    ICodes
  37. lazy val NullReference: TypeKind

    Definition Classes
    ICodes
  38. object OR extends LogicalOp with Product with Serializable

    A bitwise OR operation

  39. lazy val ObjectReference: TypeKind

    Definition Classes
    ICodes
  40. object REM extends ArithmeticOp with Product with Serializable

    An arithmetic remainder operation

  41. object SHORT extends ValueTypeKind with Product with Serializable

    A 2-byte signed integer

  42. object SUB extends ArithmeticOp with Product with Serializable

    An arithmetic subtraction operation

  43. object StartConcat extends Primitive with Product with Serializable

    Signals the beginning of a series of concatenations.

  44. lazy val StringReference: TypeKind

    Definition Classes
    ICodes
  45. lazy val ThrowableReference: TypeKind

    Definition Classes
    ICodes
  46. object UNIT extends ValueTypeKind with Product with Serializable

    The unit value

  47. object XOR extends LogicalOp with Product with Serializable

    A bitwise XOR operation

  48. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  49. def available(sym: Symbol): Boolean

    Is the given class available as icode?

    Is the given class available as icode?

    Definition Classes
    Repository
  50. def checkValid(m: IMethod): Unit

    Definition Classes
    ICodes
  51. def checkerDebug(msg: String): Unit

    Definition Classes
    ICodes
  52. val classes: HashMap[Symbol, IClass]

    The ICode representation of classes

    The ICode representation of classes

    Definition Classes
    ICodes
  53. def clone(): AnyRef

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  54. def dump(): Unit

    Print all classes and basic blocks.

    Print all classes and basic blocks. Used for debugging.

    Definition Classes
    ICodes
  55. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  56. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  57. def finalize(): Unit

    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  58. final def getClass(): java.lang.Class[_]

    Definition Classes
    AnyRef → Any
  59. val global: Global.this.type

    Definition Classes
    icodesICodesRepository
  60. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  61. def icode(sym: Symbol, force: Boolean): IClass

    The icode of the given class.

    The icode of the given class. If not available, it loads its bytecode.

    Definition Classes
    Repository
  62. def icode(sym: Symbol): Option[IClass]

    The icode of the given class, if available

    The icode of the given class, if available

    Definition Classes
    Repository
  63. object icodeReader extends ICodeReader

  64. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  65. val linearizer: Linearizer

    The ICode linearizer.

    The ICode linearizer.

    Definition Classes
    ICodes
  66. object liveness extends Liveness

  67. def load(sym: Symbol): Unit

    Load bytecode for given symbol.

    Load bytecode for given symbol.

    Definition Classes
    Repository
  68. val loaded: Map[Symbol, IClass]

    Definition Classes
    Repository
  69. def lub(a: TypeKind, b: TypeKind): TypeKind

    The least upper bound of two typekinds.

    The least upper bound of two typekinds. They have to be either REFERENCE or ARRAY kinds.

    The lub is based on the lub of scala types.

    Definition Classes
    TypeKinds
  70. var lubs0: Int

    Definition Classes
    TypeKinds
  71. def msil_mgdptr(tk: TypeKind): TypeKind

    Definition Classes
    TypeKinds
  72. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  73. final def notify(): Unit

    Definition Classes
    AnyRef
  74. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  75. object opcodes extends AnyRef

  76. lazy val primitiveTypeMap: Map[Symbol, TypeKind]

    A map from scala primitive Types to ICode TypeKinds

    A map from scala primitive Types to ICode TypeKinds

    Definition Classes
    TypeKinds
  77. object reachingDefinitions extends ReachingDefinitions

  78. def shouldCheckIcode: Boolean

    Debugging flag

    Debugging flag

    Definition Classes
    ICodes
  79. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  80. def toString(): String

    Definition Classes
    AnyRef → Any
  81. def toTypeKind(t: Type): TypeKind

    Return the TypeKind of the given type

    Return the TypeKind of the given type

    Call to .normalize fixes #3003 (follow type aliases). Otherwise, arrayOrClassType below would return ObjectReference.

    Definition Classes
    TypeKinds
  82. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  83. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  84. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from ICodes

Inherited from Repository

Inherited from Printers

Inherited from Linearizers

Inherited from Primitives

Inherited from ExceptionHandlers

Inherited from TypeKinds

Inherited from TypeStacks

Inherited from Opcodes

Inherited from BasicBlocks

Inherited from Members

Inherited from AnyRef

Inherited from Any