An Optimizing Just-In-Time Compiler for Rotor
Jo\~ao H. Trindade, Jos\'e C. Silva

TL;DR
This paper presents an extension of Rotor's JIT compiler with optimizations for IA-32, significantly improving runtime performance with minimal overhead compared to the original compiler.
Contribution
The paper introduces an optimizing JIT compiler for Rotor's CLI, incorporating multiple optimization passes and advanced code generation techniques for IA-32 processors.
Findings
Generated code runs 6.4 to 10 times faster.
Compiler overhead is only 1.4 to 1.9 times slower than original.
Optimizations include control flow analysis and instruction folding.
Abstract
The Shared Source CLI (SSCLI), also known as Rotor, is an implementation of the CLI released by Microsoft in source code. Rotor includes a single pass just-in-time compiler that generates non-optimized code for Intel IA-32 and IBM PowerPC processors. We extend Rotor with an optimizing just-in-time compiler for IA-32. This compiler has three passes: control flow graph generation, data dependence graph generation and final code generation. Dominance relations in the control flow graph are used to detect natural loops. A number of optimizations are performed during the generation of the data dependence graph. During native code generation, the rich address modes of IA-32 are used for instruction folding, reducing code size and usage of register names. Despite the overhead of three passes and optimizations, this compiler is only 1.4 to 1.9 times slower than the original SSCLI compiler and…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsReal-time simulation and control systems
