ICFP/SPLASH 2025
Sun 12 - Sat 18 October 2025 Singapore

The increasing prevalence of heterogeneous computing systems, incorporating accelerators like GPUs, has spurred the development of advanced frameworks to bring high performance capabilities to managed languages. TornadoVM is a state-of-the-art, open-source framework for accelerating Java programs. It enables Java applications to offload computation onto GPUs and other accelerators, thereby bridging the gap between the high-level abstractions of the Java Virtual Machine (JVM) and the low-level, performance-oriented world of parallel programming models, such as OpenCL and CUDA. However, this bridging comes with inherent trade-offs. The semantic and operational mismatch between these two worlds - such as managed memory versus explicit memory control, or dynamic JIT compilation versus static kernel generation — forces TornadoVM to limit or exclude support for certain Java features. These limitations can hinder developer productivity and make it difficult to identify and resolve compatibility issues during development.

This paper introduces the Dynamic&Static Inspector (DSI), a tool that simplifies development with TornadoVM by detecting incompatible Java constructs through static and dynamic analysis. DSI is developed as an open-source IntelliJ IDEA plugin that provides immediate, source-linked feedback within the developer’s workflow. We present the architecture of DSI, detail its inspection mechanisms, and evaluate its effectiveness in improving the development workflow for TornadoVM users. DSI is publicly available and offers a practical solution for enhancing developer experience and productivity in heterogeneous managed runtime environments.