DocumentCode :
834650
Title :
Dynamic recompilation and profile-guided optimisations for a .NET JIT compiler
Author :
Vaswani, K. ; Srikant, Y.N.
Author_Institution :
Dept. of Comput. Sci. Autom., Indian Inst. of Sci., Bangalore, India
Volume :
150
Issue :
5
fYear :
2003
Firstpage :
296
Lastpage :
302
Abstract :
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 optimise 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 optimisation techniques can easily be incorporated to further improve performance.
Keywords :
optimising compilers; program control structures; software performance evaluation; CLI; NET JIT compiler; Rotor; accurate profile information; adaptive recompilation framework; basic-block information; call-graph profile information; common language infrastructure; compiler; dynamic recompilation; edge information; linear scan algorithm; low overhead sampling profiler; optimisation; profile-guided optimisations; program hotspots; program performance; register allocation; run-time-stack based sampling profiler; shared source implementation;
fLanguage :
English
Journal_Title :
Software, IEE Proceedings -
Publisher :
iet
ISSN :
1462-5970
Type :
jour
DOI :
10.1049/ip-sen:20030986
Filename :
1249340
Link To Document :
بازگشت