You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by Apache Wiki <wi...@apache.org> on 2008/06/05 14:08:08 UTC

[Harmony Wiki] Update of "Jitrino OPT/types" by Mikhail Fursov

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Harmony Wiki" for change notification.

The following page has been changed by Mikhail Fursov:
http://wiki.apache.org/harmony/Jitrino_OPT/types

New page:
Every type used in Jitrino.OPT compiler is represented by 'Type' class.
Note that only one instance of every type exists during the compilation session.

Support of singleton state for all types requires additional efforts from developer when new type is created but reduces memory overhead of type system and allows pointer based comparison for types.[[BR]]
[[BR]]

Files with a complete types list: jitrino/src/shared/Type.h file[[BR]]
[[BR]]
===  Built-in value types ===
        Tau  - A tau type. Taus usually used to serve as a proof that some kind of check was already done. For example: null pointer check, cast check...[[BR]]
        Void - A void type. The save as Java 'void' type[[BR]]
        Boolean - A boolean type. The same as Java 'boolean' type[[BR]]
        Char - A character type. The same as Java 'char' type[[BR]]
        IntPtr - A platform pointer size signed integer[[BR]]
        Int8 - A 8-bit signed type. The same as Java 'byte' type[[BR]]
        Int16 - A 16-bit signed integer type. The same as Java 'short' type[[BR]]
        Int32 - A 32-bit signed integer type. The same as Java 'int' type[[BR]]
        Int64 - A 64-bit signed integer type. The same as Java 'long' type[[BR]]
        UIntPtr - A platform pointer size unsigned integer[[BR]]
        UInt8 - A 8-bit unsigned type[[BR]]
        UInt16 - A 16-bit unsigned type[[BR]]
        UInt32 - A 32-bit unsigned type[[BR]]
        UInt64 - A 64-bit unsigned type[[BR]]
        Single - 32-bit single precision floating type. The same as Java 'float' type[[BR]]
        Double - 64-bit double precision floating type. The same as Java 'double' type[[BR]]
        Float - A machine specific 32-bit float type[[BR]]
        TypedReference - A typed reference. Not used[[BR]]
        Value - A user-defined value type. Not used[[BR]]
        Offset - Offset into an object[[BR]]
        OffsetPlusHeapbase - A heap base plus offset[[BR]]

[[BR]]
=== Reference types ===

===== Built-in object types =====
        SystemObject - The 'java/lang/Object' type[[BR]]
        SystemClass - The 'java/lang/Class' type[[BR]]
        SystemString - The 'java/lang/String' type[[BR]]

        NullObject -  A special null object reference.[[BR]]
        UnresolvedObject - An object type with a class that is not loaded yet[[BR]]

===== Array type =====
        Array - An array object[[BR]]

===== User-defined object =====
        Object - Any Java object[[BR]]
        BoxedValue - User-defined boxed value object. Not used[[BR]]

==== Pointer types ====
        UnmanagedPtr - A pointer to arbitrary memory location. The operands with UnmanagedPtr type are not included into GC enumeration[[BR]]
        ManagedPtr - A pointer an object field or array element. The operands with ManagedPtr type are included into GC enumeration[[BR]]
        MethodPtr - A typed pointer to a VM method structure[[BR]]
        VTablePtr - A typed pointer to object's VTable[[BR]]

==== Compressed Reference types ====
        CompressedSystemObject - A compressed variant of SystemObject type[[BR]]
        CompressedSystemClass - A compressed variant of SystemClass type[[BR]]
        CompressedSystemString - A compressed variant of SystemString type[[BR]]
        CompressedNullObject - A compressed variant of NullObject reference. If it a real 0 or heap base address depends on implementation[[BR]]
        CompressedUnresolvedObject - A compressed version of UnresolvedObject type[[BR]]
        CompressedArray - A compressed version of Array type[[BR]]
        CompressedObject - A compressed version of Object type[[BR]]
        CompressedMethodPtr - A compressed version of MethodPtr type[[BR]]
        CompressedVTablePtr - A compressed version of VTablePtr type[[BR]]

=== Additional types ===
        OrNull - The type is not used today and can be removed.[[BR]]
        VTablePtrObj - The type is not used today and can be removed.[[BR]]
        ITablePtrObj - The type is not used today and can be removed.[[BR]]
        ArrayLength - The type is not used today and can be removed.[[BR]]
        ArrayElementType - The type is not used today and can be removed.[[BR]]
        Singleton - The type is not used today and can be removed.[[BR]]