Dynamic Register Allocation for ADORE Runtime Optimization System

Date of Submission: 
December 1, 2004
Report Number: 
Report PDF: 
Dynamic optimization can apply several difficult to apply optimizations at run time. These optimizations are difficult to apply at compile time because of lack of accurate run time information. A dynamic optimizer can make use of run time characteristics to identify optimization opportunities. However, to deploy the optimizations, extra registers are required. In this report we explore methodology and issues involved in techniques that can be used to allocate registers dynamically and present experimental results. The techniques that have been explored include dead register detection, register spilling and using IA64 specific alloc instruction under the ADORE framework.