Vaswani, K and Srikant, YN (2003) Dynamic recompilation and profile-guided optimisations for a .NET JIT compiler. In: IEE Proceedings-Software, 150 (5). pp. 296-302.
Restricted to Registered users only
Download (246Kb) | Request a copy
The paper describes the design and implementation of an adaptive recompilation framework for Rotor, a shared source implementation of the common language infrastructure (CLI) that can increase program performance through intelligent recompilation decisions and optimisations based on the program’s past behaviour. Our extensions to Rotor include a low overhead run-time-stack based sampling profiler that identifies program hotspots. At the first level of optimisation, the compiler uses a fast yet effective linear scan algorithm for register allocation. Hot methods can be instrumented to collect basic-block, edge and call-graph profile information. Profile-guided optimisations driven by online profile information are used to further optimize heavily executed methods at the second level of recompilation. An evaluation of the framework using a set of test programs shows that performance can improve by a maximum of 42.3% and by 9% on average. Our results also show that the overheads of collecting accurate profile information through instrumentation to an extent outweigh the benefits of profile-guided optimisations in our implementation, suggesting the need for implementing techniques that can reduce such overheads. A flexible and extensible framework design implies that additional profiling and optimization techniques can easily be incorporated to further improve performance.
|Item Type:||Journal Article|
|Additional Information:||Copyright of this article belongs to IEE.|
|Department/Centre:||Division of Electrical Sciences > Computer Science & Automation (Formerly, School of Automation)|
|Date Deposited:||16 Apr 2007|
|Last Modified:||19 Sep 2010 04:37|
Actions (login required)