Proceedings Article10.1145/2043910.2043927
Exploiting static application knowledge in a Java compiler for embedded systems: a case study
Christoph Erhardt,Michael Stilkerich,Daniel Lohmann,Wolfgang Schröder-Preikschat +3 more
- 26 Sep 2011
- pp 96-105
TL;DR: The results show that incorporating the available a-priori knowledge in the compiler provides significant improvements to both footprint and runtime, and can additionally help the system integrator to identify consistency problems between the code and a higher-level system specification at an early development stage.
read more
Abstract: Offering many benefits in terms of productivity and reliability, Java is becoming an attractive choice for the field of embedded computing. However, its programming model that relies on the capabilities of just-in-time compilation limits the opportunities to generate highly optimized code in an ahead-of-time compiler. In the KESO project, a Java VM for statically-configured deeply embedded systems, we have previously used static application knowledge to create a tailored runtime environment. In this paper, we present and discuss how this static knowledge can further be exploited by our compiler in order to perform advanced optimizations that would otherwise not be achievable. We conducted a case study with the CDx real-time benchmark in which we examined the peculiarities and challenges that arise, and evaluated the effectiveness of both standard and system-model-specific compiler optimizations in the context of a static embedded application model. Our results show that incorporating the available a-priori knowledge in the compiler provides significant improvements to both footprint and runtime, and can additionally help the system integrator to identify consistency problems between the code and a higher-level system specification at an early development stage.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
Patent
Unifying static and dynamic compiler optimizations in source-code bases
Hassan Chafi,Mason Chang,Eric Sedlar +2 more
- 12 Jan 2015
TL;DR: In this paper, a first compiler compiles source code of a target function to generate ahead-of-time (AOT) compiled machine code, and then a second compiler generates an intermediate representation (IR) of the target function.
59
Cross-Kernel Control-Flow--Graph Analysis for Event-Driven Real-Time Systems
Christian Dietrich,Martin Hoffmann,Daniel Lohmann +2 more
- 04 Jun 2015
TL;DR: This paper presents an approach that incorporates the RTOS semantics into the control-flow analysis, to cross the application--kernel boundary, and determines a cross-kernel control- flow--graph, that provides a global view on all possible execution paths of a real-time system.
Global Optimization of Fixed-Priority Real-Time Systems by RTOS-Aware Control-Flow Analysis
TL;DR: This article crosses the application--kernel boundary by combining the semantics of a real-time operating system (RTOS) with deterministic fixed-priority scheduling and the explicit application knowledge to enable system-wide, flow-sensitive compiler optimizations.
18
HVMTP: A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems
Kasper Søe Luckow,Bent Thomsen,Stephan Erbs Korsholm +2 more
- 13 Oct 2014
TL;DR: HVMTP is presented in terms of its design and capabilities, and it is demonstrated how a complete timing model of the JVM represented as a Network of Timed Automata can be obtained using the tool TetaSARTSJVM.
16
HVMTP: A time predictable and portable java virtual machine for hard real-time embedded systems
TL;DR: This paper presents HVMTP in terms of its design and capabilities and demonstrates how a complete timing model of the JVM represented as a network of timed automata can be obtained using the tool TETASARTSJVM, which implements all levels of the safety critical Java (SCJ) specification.
9
References
Efficiently computing static single assignment form and the control dependence graph
TL;DR: In this article, the authors present new algorithms that efficiently compute static single assignment forms and control dependence graphs for arbitrary control flow graphs using the concept of {\em dominance frontiers} and give analytical and experimental evidence that these data structures are usually linear in the size of the original program.
Fast static analysis of C++ virtual function calls
David F. Bacon,Peter F. Sweeney +1 more
- 01 Oct 1996
TL;DR: This work investigates the ability of three static analysis algorithms to improve C++ programs by resolving virtual function calls, thereby reducing compiled code size and reducing program complexity so as to improve both human and automated program understanding and analysis.
Constant propagation with conditional branches
Mark N. Wegman,F. Kenneth Zadeck +1 more
TL;DR: Four algorithms, all conservitive in the sense that all constants may not be found, but each constant found is constant over all possible executions of the program, are presented.
Practical virtual method call resolution for Java
Vijay Sundaresan,Laurie Hendren,Chrislain Razafimahefa,Raja Vallée-Rai,Patrick Lam,Etienne Gagnon,Charles Godin +6 more
- 01 Oct 2000
TL;DR: This paper addresses the problem of resolving virtual method and interface calls in Java bytecode by developing a technique that can be solved with only one iteration, and thus scales linearly with the size of the program, while at the same time providing more accurate results than two popular existing linear techniques, class hierarchy analysis and rapid type analysis.
The direct cost of virtual function calls in C
Karel Driesen,Urs Hölzle +1 more
- 01 Oct 1996
TL;DR: The direct cost of virtual function calls in C++ programs, assuming the standard implementation using virtual function tables is standard, is measured experimentally using a combination of executable inspection and processor simulation.
165
Related Papers (5)
Anders Nilsson
- 01 Jan 2006
Martin Schoeberl,Stephan Erbs Korsholm,Christian Thalinger,Anders P. Ravn +3 more
- 05 May 2008
George C. Necula
- 01 May 2000
Anders Nilsson
- 01 Jan 2004