TU Darmstadt / ULB / TUbiblio

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

Sewe, Andreas ; Jochem, Jannik ; 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
[Konferenz- oder Workshop-Beitrag], (2011)

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

Kurzbeschreibung (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.

Typ des Eintrags: Konferenz- oder Workshop-Beitrag (Keine Angabe)
Erschienen: 2011
Autor(en): Sewe, Andreas ; Jochem, Jannik ; Mezini, Mira
Titel: Next in line, Please!: Exploiting the Indirect Benefits of Inlining by Accurately Predicting Further Inlining
Sprache: Englisch
Kurzbeschreibung (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.

Buchtitel: Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11 & VMIL'11
Reihe: SPLASH '11 Workshops
Ort: New York, NY, USA
Verlag: ACM
Freie Schlagworte: guard elimination, indirect benefits, inlining
Fachbereich(e)/-gebiet(e): Fachbereich Informatik > Softwaretechnik
Zentrale Einrichtungen > CASED
Fachbereich Informatik
Zentrale Einrichtungen
Veranstaltungstitel: 5th workshop on Virtual Machines and Intermediate Languages
Veranstaltungsort: Portland, OR, USA
Veranstaltungsdatum: 24 Oct 2011
Hinterlegungsdatum: 24 Jan 2012 14:57
Offizielle URL: http://doi.acm.org/10.1145/2095050.2095102
ID-Nummer: 10.1145/2095050.2095102
Export:

Optionen (nur für Redakteure)

Eintrag anzeigen Eintrag anzeigen