Skip to content

Document CompiledIMT - Value 4 #85

@LSantha

Description

@LSantha

CompiledIMT

Document the CompiledIMT JNode concept in the wiki.

Value: 4

Concept Summary

IMT populated at compile time for zero-overhead interface dispatch. CompiledIMT enables interface method calls with performance equivalent to direct method calls, achieved by populating the IMT at compile time rather than runtime.

Key Files

  • core/src/core/org/jnode/vm/classmgr/CompiledIMT.java
  • core/src/core/org/jnode/vm/classmgr/CompiledVtable.java

Occurrences

~50 references in classes

Wiki Status

NOT documented

Bridges

JIT compiler, Virtual methods, Method dispatch

Instructions

Skill to Use

Use the [[update-wiki|update-wiki skill]] (load with skill({ name: "update-wiki" })) for understanding JNode internals.

Context Research

Study CompiledIMT.java and CompiledVtable.java to understand compile-time interface dispatch. Review how IMT is populated at compile time, how it achieves zero-overhead dispatch, and how it compares to runtime IMT. Research how the JIT uses compiled dispatch tables.

Update index.md

  • Pages table: Add entry for CompiledIMT.md
  • Concepts → Pages table: Add "CompiledIMT" mapping to [[CompiledIMT]]
  • Source Path → Pages table: Add mappings for core/src/core/org/jnode/vm/classmgr/CompiledIMT.java
  • Task Routing table: Add relevant task route(s)

Wiki Page Structure

# CompiledIMT

> IMT populated at compile time for zero-overhead interface dispatch.

## Overview
2-3 paragraph explanation of CompiledIMT, its role in efficient interface dispatch, and how it achieves performance parity with direct method calls.

## Key Components
| Class / File | Role |
|---|---|
| `core/src/core/org/jnode/vm/classmgr/CompiledIMT.java` | Compiled IMT implementation |
| `core/src/core/org/jnode/vm/classmgr/CompiledVtable.java` | Compiled vtable implementation |

## How It Works
Explanation of how CompiledIMT works, how IMT is populated at compile time, how it enables zero-overhead dispatch, and how it compares to runtime IMT.

## Gotchas & Non-Obvious Behavior
- Compile-time IMT requires knowing all interface implementations
- Dynamic class loading can complicate compiled IMT
- JIT must handle both compiled and runtime IMT

## Related Pages
- [[IMT]]
- [[vtable]]
- [[JIT-Compilers]]

Related Concepts: IMT, Compiled vtable, JIT compiler, Interface dispatch, Zero-overhead

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions