Sciweavers

CC
2006
Springer

Hybrid Optimizations: Which Optimization Algorithm to Use?

13 years 8 months ago
Hybrid Optimizations: Which Optimization Algorithm to Use?
We introduce a new class of compiler heuristics: hybrid optimizations. Hybrid optimizations choose dynamically at compile time which optimization algorithm to apply from a set of different algorithms that implement the same optimization. They use a heuristic to predict the most appropriate algorithm for each piece of code being optimized. Specifically, we construct a hybrid register allocator that chooses between linear scan and graph coloring register allocation. Linear scan is more efficient, but sometimes less effective; graph coloring is generally more expensive, but sometimes more effective. Our setting is Java JIT compilation, which makes optimization algorithm efficiency particularly important. Our hybrid allocator decides, based on features of a method, which algorithm to apply to that method. We used supervised learning to induce the decision heuristic. We evalute our technique within Jikes RVM [1] and show on average it outperforms graph coloring by 9% and linear scan by 3% f...
John Cavazos, J. Eliot B. Moss, Michael F. P. O'Bo
Added 20 Aug 2010
Updated 20 Aug 2010
Type Conference
Year 2006
Where CC
Authors John Cavazos, J. Eliot B. Moss, Michael F. P. O'Boyle
Comments (0)