TU Darmstadt / ULB / TUbiblio

Next in line, Please!: Exploiting the Indirect Benefits of Inlining by Accurately Predicting Further Inlining

Sewe, Andreas and Jochem, Jannik and Mezini, Mira :
Next in line, Please!: Exploiting the Indirect Benefits of Inlining by Accurately Predicting Further Inlining.
[Online-Edition: http://doi.acm.org/10.1145/2095050.2095102]
In: 5th workshop on Virtual Machines and Intermediate Languages, 24 Oct 2011, Portland, OR, USA. In: SPLASH '11 Workshops . ACM , New York, NY, USA
[Conference or Workshop Item] , (2011)

Official URL: http://doi.acm.org/10.1145/2095050.2095102

Abstract

Inlining is an important optimization that can lead to significant runtime improvements. When deciding whether or not to inline a method call, a virtual machine has to weigh an increase in compile time against the expected decrease in program time. To estimate the latter, however, state-of-the-art heuristics only use information local to the call-site in question. But inlining is a powerful enabling optimization; by eliminating the actual call it not only offers an obvious direct benefit but also indirect benefits, as information about the method's arguments is propagated from caller to callee. One such indirect benefit is the elimination of guards in case the callee inlines a method called on one of its arguments. In this paper, we show how to enhance an inlining heuristic by accurately predicting where this further inlining occurs—and where not. To do so, we only use information readily available to many virtual machines: the program's dynamic call graph. An implementation based on Jikes RVM demonstrates that this information can be used to successfully exploit inlining's indirect benefits while at the same time reducing compilation effort.

Item Type: Conference or Workshop Item
Erschienen: 2011
Creators: Sewe, Andreas and Jochem, Jannik and Mezini, Mira
Title: Next in line, Please!: Exploiting the Indirect Benefits of Inlining by Accurately Predicting Further Inlining
Language: English
Abstract:

Inlining is an important optimization that can lead to significant runtime improvements. When deciding whether or not to inline a method call, a virtual machine has to weigh an increase in compile time against the expected decrease in program time. To estimate the latter, however, state-of-the-art heuristics only use information local to the call-site in question. But inlining is a powerful enabling optimization; by eliminating the actual call it not only offers an obvious direct benefit but also indirect benefits, as information about the method's arguments is propagated from caller to callee. One such indirect benefit is the elimination of guards in case the callee inlines a method called on one of its arguments. In this paper, we show how to enhance an inlining heuristic by accurately predicting where this further inlining occurs—and where not. To do so, we only use information readily available to many virtual machines: the program's dynamic call graph. An implementation based on Jikes RVM demonstrates that this information can be used to successfully exploit inlining's indirect benefits while at the same time reducing compilation effort.

Title of Book: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11 & VMIL'11
Series Name: SPLASH '11 Workshops
Place of Publication: New York, NY, USA
Publisher: ACM
Uncontrolled Keywords: guard elimination, indirect benefits, inlining
Divisions: Department of Computer Science > Software Technology
LOEWE > LOEWE-Zentren > CASED – Center for Advanced Security Research Darmstadt
Department of Computer Science
Zentrale Einrichtungen
LOEWE
LOEWE > LOEWE-Zentren
Event Title: 5th workshop on Virtual Machines and Intermediate Languages
Event Location: Portland, OR, USA
Event Dates: 24 Oct 2011
Date Deposited: 24 Jan 2012 14:57
Official URL: http://doi.acm.org/10.1145/2095050.2095102
Identification Number: doi:10.1145/2095050.2095102
Export:

Optionen (nur für Redakteure)

View Item View Item