Abstrakt. Vi introducerar en ny klass av kompilatorheuristik: hybridoptimeringar. Hybridoptimeringar väljer dynamiskt vid kompileringstid vilken optimeringsalgoritm som ska tillämpas från en uppsättning olika algoritmer som implementerar samma optimering. De använder en heuristisk för att förutsäga den lämpligaste algoritmen för varje kod som optimeras. Speciellt konstruerar vi en hybrid register allocator som väljer mellan linjär skanning och graf färgning register allokering. Linjär scanning är mer effektiv, men ibland mindre effektiv; graf färgning är i allmänhet dyrare, men ibland effektivare. Vår inställning är Java JIT sammanställning, vilket gör optimering algoritm effektivitet särskilt viktigt. Vår hybridallokator bestämmer, baserat på funktioner i en metod, vilken algoritm som ska tillämpas på den metoden. Vi använde övervakad inlärning för att framkalla beslutet heuristiska. Vi utvärderar vår teknik inom Jikes RVM [1] och visar i genomsnitt att den överträffar graffärgning med 9 % och linjär scanning med 3 % för ett typiskt samlingsscenario. Enligt vår kunskap är detta första gången någon har använt heuristik inducerad av maskininlärning för att välja mellan olika optimeringsalgoritmer.
REF konstruera en hybrid register allocator som väljer mellan linjär-scan och graf färg algoritmer.
Hybrid Optimizations: Which Optimization Algorithm to Use?
{'venue': 'IN 15TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION (CC 2006', 'journal': None, 'mag_field_of_study': ['Computer Science']}