Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance...

27
HAL Id: hal-00911146 https://hal.inria.fr/hal-00911146 Submitted on 28 Nov 2013 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. Branch Prediction and the Performance of Interpreters - Don’t Trust Folklore Erven Rohou, Bharath Narasimha Swamy, André Seznec To cite this version: Erven Rohou, Bharath Narasimha Swamy, André Seznec. Branch Prediction and the Performance of Interpreters - Don’t Trust Folklore. [Research Report] RR-8405, INRIA. 2013, pp.23. hal-00911146

Transcript of Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance...

Page 1: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

HAL Id: hal-00911146https://hal.inria.fr/hal-00911146

Submitted on 28 Nov 2013

HAL is a multi-disciplinary open accessarchive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come fromteaching and research institutions in France orabroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, estdestinée au dépôt et à la diffusion de documentsscientifiques de niveau recherche, publiés ou non,émanant des établissements d’enseignement et derecherche français ou étrangers, des laboratoirespublics ou privés.

Branch Prediction and the Performance of Interpreters -Don’t Trust Folklore

Erven Rohou, Bharath Narasimha Swamy, André Seznec

To cite this version:Erven Rohou, Bharath Narasimha Swamy, André Seznec. Branch Prediction and the Performance ofInterpreters - Don’t Trust Folklore. [Research Report] RR-8405, INRIA. 2013, pp.23. �hal-00911146�

Page 2: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

ISS

N0

24

9-6

39

9IS

RN

INR

IA/R

R--

84

05

--F

R+

EN

G

RESEARCH

REPORT

N° 8405November 2013

Project-Teams ALF

Branch Prediction and

the Performance of

Interpreters – Don’t

Trust Folklore

Erven Rohou, Bharath Narasimha Swamy, André Seznec

Page 3: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André
Page 4: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

RESEARCH CENTRE

RENNES – BRETAGNE ATLANTIQUE

Campus universitaire de Beaulieu

35042 Rennes Cedex

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢■♥t❡r♣r❡t❡rs ✕ ❉♦♥✬t ❚r✉st ❋♦❧❦❧♦r❡

❊r✈❡♥ ❘♦❤♦✉✱ ❇❤❛r❛t❤ ◆❛r❛s✐♠❤❛ ❙✇❛♠②✱ ❆♥❞ré ❙❡③♥❡❝

Pr♦❥❡❝t✲❚❡❛♠s ❆▲❋

❘❡s❡❛r❝❤ ❘❡♣♦rt ♥➦ ✽✹✵✺ ✖ ◆♦✈❡♠❜❡r ✷✵✶✸ ✖ ✷✸ ♣❛❣❡s

❆❜str❛❝t✿ ■♥t❡r♣r❡t❡rs ❤❛✈❡ ❜❡❡♥ ✉s❡❞ ✐♥ ♠❛♥② ❝♦♥t❡①ts✳ ❚❤❡② ♣r♦✈✐❞❡ ♣♦rt❛❜✐❧✐t② ❛♥❞ ❡❛s❡ ♦❢❞❡✈❡❧♦♣♠❡♥t ❛t t❤❡ ❡①♣❡♥s❡ ♦❢ ♣❡r❢♦r♠❛♥❝❡✳ ❚❤❡ ❧✐t❡r❛t✉r❡ ♦❢ t❤❡ ♣❛st ❞❡❝❛❞❡ ❝♦✈❡rs ❛♥❛❧②s✐s ♦❢✇❤② ✐♥t❡r♣r❡t❡rs ❛r❡ s❧♦✇✱ ❛♥❞ ♠❛♥② s♦❢t✇❛r❡ t❡❝❤♥✐q✉❡s t♦ ✐♠♣r♦✈❡ t❤❡♠✳ ❆ ❧❛r❣❡ ♣r♦♣♦rt✐♦♥ ♦❢t❤❡s❡ ✇♦r❦s ❢♦❝✉s❡s ♦♥ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣✱ ❛♥❞ ✐♥ ♣❛rt✐❝✉❧❛r ♦♥ t❤❡ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ♦❢ t❤❡ s✇✐t❝❤st❛t❡♠❡♥t✿ t②♣✐❝❛❧❧② ❛♥ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥✳ ❈♦♥✈❡♥t✐♦♥❛❧ ✇✐s❞♦♠ ❛ttr✐❜✉t❡s ❛ s✐❣♥✐✜❝❛♥t♣❡♥❛❧t② t♦ t❤✐s ❜r❛♥❝❤✱ ❞✉❡ t♦ ✐ts ❤✐❣❤ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡✳ ❲❡ r❡✈✐s✐t t❤✐s ❛ss✉♠♣t✐♦♥✱ ❝♦♥s✐❞❡r✐♥❣❝✉rr❡♥t ✐♥t❡r♣r❡t❡rs✱ ❛♥❞ ♠♦❞❡r♥ ♣r❡❞✐❝t♦rs✳ ❯s✐♥❣ ❜♦t❤ ❤❛r❞✇❛r❡ ❝♦✉♥t❡rs ❛♥❞ s✐♠✉❧❛t✐♦♥✱ ✇❡s❤♦✇ t❤❛t t❤❡ ❛❝❝✉r❛❝② ♦❢ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ✐s ♥♦ ❧♦♥❣❡r ❝r✐t✐❝❛❧ ❢♦r ✐♥t❡r♣r❡t❡rs✳ ❲❡❛❧s♦ ❝♦♠♣❛r❡ t❤❡ ❝❤❛r❛❝t❡r✐st✐❝s ♦❢ t❤❡s❡ ✐♥t❡r♣r❡t❡rs ❛♥❞ ❛♥❛❧②③❡ ✇❤② t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐s ❧❡ss✐♠♣♦rt❛♥t t❤❛♥ ❜❡❢♦r❡✳

❑❡②✲✇♦r❞s✿ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥✱ ✐♥t❡r♣r❡t❡rs✱ ♣❡r❢♦r♠❛♥❝❡

Page 5: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

Pré❞✐❝t✐♦♥ ❞❡ ❜r❛♥❝❤❡♠❡♥t ❡t ♣❡r❢♦r♠❛♥❝❡ ❞❡s✐♥t❡r♣rét❡✉rs ✕ ▼é✜❡③✲✈♦✉s ❞❡s ✐❞é❡s r❡ç✉❡s

❘és✉♠é ✿ ▲❡s ❧❛♥❣❛❣❡s ✐♥t❡r♣rétés s♦♥t ✉t✐❧✐sés ❞❛♥s ❞❡s ❝♦♥t❡①t❡s ✈❛r✐és✳ ■❧s ❢♦✉r♥✐ss❡♥t ♣♦rt❛✲❜✐❧✐té ❡t ❢❛❝✐❧✐té ❞❡ ❞é✈❡❧♦♣♣❡♠❡♥t ❛✉ ♣r✐① ❞❡ ❧❛ ♣❡r❢♦r♠❛♥❝❡✳ ▲❛ ❧✐ttér❛t✉r❡ ❞❡ ❧❛ ❞❡r♥✐èr❡ ❞é❝❡♥♥✐❡s✬❡st ✐♥tér❡ssé❡ ❛✉① r❛✐s♦♥s ❞❡ ❧❛ ❧❡♥t❡✉r ❞❡s ✐♥t❡r♣rét❡✉rs✱ ❡t à ❞❡s t❡❝❤♥✐q✉❡s ❞✬♦♣t✐♠✐s❛t✐♦♥✳❯♥❡ ♣r♦♣♦rt✐♦♥ ❝❡rt❛✐♥❡ ❞❡ ❝❡s tr❛✈❛✉① s❡ ❝♦♥❝❡♥tr❡ s✉r ❧❛ ❜♦✉❝❧❡ ❞❡ ❞✐s♣❛t❝❤✱ ❡t ❡♥ ♣❛rt✐❝✉❧✐❡rs✉r ❧✬✐♠♣❧é♠❡♥t❛t✐♦♥ ❞✉ s✇✐t❝❤ q✉✐ ❡st t②♣✐q✉❡♠❡♥t ✉♥❡ ✐♥str✉❝t✐♦♥ ❞❡ s❛✉t ✐♥❞✐r❡❝t✳ ❙❡❧♦♥ ✉♥❡✐❞é❡ r❡ç✉❡✱ ❝❡ s❛✉t ❡st à ❧✬♦r✐❣✐♥❡ ❞✬✉♥❡ ❢♦rt❡ ♣é♥❛❧✐té✱ ❡♥ r❛✐s♦♥ ❞✬✉♥❡ ♠❛✉✈❛✐s❡ ♣ré❞✐❝t✐♦♥ ❞❡❜r❛♥❝❤❡♠❡♥t✳ ◆♦✉s réé✈❛❧✉♦♥s ❝❡tt❡ ❤②♣♦t❤ès❡✱ ❛✈❡❝ ❞❡s ✐♥t❡r♣rét❡✉rs ❛❝t✉❡❧s ❡t ❞❡s ♣ré❞✐❝t❡✉rs♠♦❞❡r♥❡s✳ ◆♦✉s ♠♦♥tr♦♥s à ❧✬❛✐❞❡ ❞❡s ❝♦♠♣t❡✉rs ❞❡ ♣❡r❢♦r♠❛♥❝❡ ♠❛tér✐❡❧s ❡t ❞❡ s✐♠✉❧❛t✐♦♥ q✉❡❧❛ ♣ré❝✐s✐♦♥ ❞✉ ♣ré❞✐❝t❡✉r ❞❡ ❜r❛♥❝❤❡♠❡♥t ♥✬❡st ♣❧✉s ✉♥ ♣r♦❜❧è♠❡ ♣♦✉r ❧❡s ✐♥t❡r♣rét❡✉rs✳ ◆♦✉s❝♦♠♣❛r♦♥s ❛✉ss✐ ❧❡s ❝❛r❛❝tér✐st✐q✉❡s ❞❡ ❝❡s ✐♥t❡r♣rét❡✉rs ❡t ♥♦✉s ❛♥❛❧②s♦♥s ♣♦✉rq✉♦✐ ❧❡s s❛✉ts✐♥❞✐r❡❝ts s♦♥t ♠♦✐♥s ✐♠♣♦rt❛♥ts q✉❡ ♣❛r ❧❡ ♣❛ssé✳

▼♦ts✲❝❧és ✿ ♣ré❞✐❝t✐♦♥ ❞❡ ❜r❛♥❝❤❡♠❡♥t✱ ✐♥t❡r♣rét❡✉rs✱ ♣❡r❢♦r♠❛♥❝❡

Page 6: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✸

✶ ■♥tr♦❞✉❝t✐♦♥

■♥t❡r♣r❡t❡rs ❣♦ ❜❛❝❦ t♦ t❤❡ ✐♥❢❛♥❝② ♦❢ ❝♦♠♣✉t❡r s❝✐❡♥❝❡✳ ❆t s♦♠❡ ♣♦✐♥t✱ ❥✉st✲✐♥✲t✐♠❡ ✭❏■❚✮❝♦♠♣✐❧❛t✐♦♥ t❡❝❤♥♦❧♦❣② ♠❛t✉r❡❞ ❡♥♦✉❣❤ t♦ ❞❡❧✐✈❡r ❜❡tt❡r ♣❡r❢♦r♠❛♥❝❡✱ ❛♥❞ ✇❛s ♠❛❞❡ ♣♦♣✉❧❛r❜② ❏❛✈❛ ❬✻❪✳ ❲r✐t✐♥❣ ❛ ❏■❚ ❝♦♠♣✐❧❡r ✐s ❛ ❝♦♠♣❧✐❝❛t❡❞ t❛s❦✳ ❈♦♥✈❡rs❡❧②✱ ✐♥t❡r♣r❡t❡rs ♣r♦✈✐❞❡ ❡❛s❡♦❢ ✐♠♣❧❡♠❡♥t❛t✐♦♥✱ ❛♥❞ ♣♦rt❛❜✐❧✐t②✱ ❛t t❤❡ ❡①♣❡♥s❡ ♦❢ ❡①❡❝✉t✐♦♥ s♣❡❡❞✳

■♥t❡r♣r❡t❡rs ❛r❡ st✐❧❧ ✇✐❞❡❧② ✉s❡❞✳ ❚❤❡② ❛r❡ ♠✉❝❤ ❡❛s✐❡r t♦ ❞❡✈❡❧♦♣✱ ♠❛✐♥t❛✐♥✱ ❛♥❞ ♣♦rt❛♣♣❧✐❝❛t✐♦♥s ♦♥ ♥❡✇ ❛r❝❤✐t❡❝t✉r❡s✳ ❙♦♠❡ ❧❛♥❣✉❛❣❡s ✉s❡❞ ❜② ❞♦♠❛✐♥ s❝✐❡♥t✐sts ❛r❡ ❡①❡❝✉t❡❞ ♠❛✐♥❧②t❤r♦✉❣❤ ✐♥t❡r♣r❡t❡rs✱ ❡✳❣✳ ❘✱ P②t❤♦♥✱ ▼❛t❧❛❜✳✳✳ ❙♦♠❡ ♣r♦♣❡rt✐❡s ♦❢ ✇✐❞❡❧② ❛❞♦♣t❡❞ ❧❛♥❣✉❛❣❡s✱s✉❝❤ ❛s ❞②♥❛♠✐❝ t②♣✐♥❣✱ ❛❧s♦ ♠❛❦❡ ✐t ♠♦r❡ ❞✐✣❝✉❧t t♦ ❞❡✈❡❧♦♣ ❡✣❝✐❡♥t ❏■❚ ❝♦♠♣✐❧❡rs✱ ❛♥❞❞②♥❛♠✐❝ ❢❡❛t✉r❡s ❛r❡ ❤❡❛✈✐❧② ✉s❡❞ ✐♥ r❡❛❧ ❛♣♣❧✐❝❛t✐♦♥s ❬✷✹❪✳ ❖♥ ❧♦✇❡r✲❡♥❞ s②st❡♠s✱ ✇❤❡r❡ s❤♦rtt✐♠❡✲t♦✲♠❛r❦❡t ✐s ❦❡②✱ ✐t ♠❛② ♥♦t ❜❡ ❝♦♠♠❡r❝✐❛❧❧② ✈✐❛❜❧❡ t♦ ❞❡✈❡❧♦♣ ❏■❚ ❝♦♠♣✐❧❡rs✱ ❛♥❞ t❤❡s❡s②st❡♠s r❡❧② ♦♥ ✐♥t❡r♣r❡t❡rs✳

❙❝✐❡♥t✐sts ❢r♦♠ ❜♦t❤ ❈❊❘◆ ❛♥❞ ❋❡r♠✐❧❛❜ r❡♣♦rt ❬✷✷❪ t❤❛t ✏♠❛♥② ♦❢ ▲❍❈ ❡①♣❡r✐♠❡♥ts✬ ❛❧✲❣♦r✐t❤♠s ❛r❡ ❜♦t❤ ❞❡s✐❣♥❡❞ ❛♥❞ ✉s❡❞ ✐♥ ✐♥t❡r♣r❡t❡rs✑✳ ❆s ❛♥♦t❤❡r ❡①❛♠♣❧❡✱ t❤❡ ♥❡❡❞ ❢♦r ❛♥✐♥t❡r♣r❡t❡r ✐s ❛❧s♦ ♦♥❡ ♦❢ t❤❡ t❤r❡❡ r❡❛s♦♥s ♠♦t✐✈❛t✐♥❣ t❤❡ ❝❤♦✐❝❡ ♦❢ ❏②t❤♦♥ ❢♦r t❤❡ ❞❛t❛ ❛♥❛❧✲②s✐s s♦❢t✇❛r❡ ♦❢ t❤❡ ❍❡rs❝❤❡❧ ❙♣❛❝❡ ❖❜s❡r✈❛t♦r② ❬✸✻❪✳ ❙❝✐❡♥t✐sts ❛t ❈❊❘◆ ❛❧s♦ ❞❡✈❡❧♦♣❡❞ ❛♥✐♥t❡r♣r❡t❡r ❢♦r ❈✴❈✰✰ ❬✼❪✳

❆❧t❤♦✉❣❤ t❤❡② ❛r❡ ❞❡s✐❣♥❡❞ ❢♦r ♣♦rt❛❜✐❧✐t②✱ ✐♥t❡r♣r❡t❡rs ❛r❡ ♦❢t❡♥ ❧❛r❣❡ ❛♥❞ ❝♦♠♣❧❡① ❝♦❞❡s✳P❛rt ♦❢ t❤✐s ✐s ❞✉❡ t♦ t❤❡ ♥❡❡❞ ❢♦r ♣❡r❢♦r♠❛♥❝❡✳ ❚❤❡ ❝♦r❡ ♦❢ ❛♥ ✐♥t❡r♣r❡t❡r ✐s ❛♥ ✐♥✜♥✐t❡ ❧♦♦♣t❤❛t r❡❛❞s t❤❡ ♥❡①t ❜②t❡❝♦❞❡✱ ❞❡❝♦❞❡s ✐t✱ ❛♥❞ ♣❡r❢♦r♠s t❤❡ ❛♣♣r♦♣r✐❛t❡ ❛❝t✐♦♥✳ ◆❛✐✈❡ ❞❡❝♦❞✐♥❣✐♠♣❧❡♠❡♥t❡❞ ✐♥ ❈ ❝♦♥s✐sts ✐♥ ❛ ❧❛r❣❡ s✇✐t❝❤ st❛t❡♠❡♥t ✭s❡❡ ❋✐❣✉r❡ ✶ ✭❛✮✮✱ t❤❛t ❣❡ts tr❛♥s❧❛t❡❞✐♥t♦ ❛ ❥✉♠♣ t❛❜❧❡ ❛♥❞ ❛♥ ✐♥❞✐r❡❝t ❥✉♠♣✳ ❈♦♥✈❡♥t✐♦♥❛❧ ✇✐s❞♦♠ st❛t❡s t❤❛t t❤✐s ✐♥❞✐r❡❝t ❥✉♠♣✐♥❝✉rs ❛ ♠❛❥♦r ♣❡r❢♦r♠❛♥❝❡ ❞❡❣r❛❞❛t✐♦♥ ♦♥ ❞❡❡♣❧② ♣✐♣❡❧✐♥❡❞ ❛r❝❤✐t❡❝t✉r❡s ❜❡❝❛✉s❡ ✐t ✐s ❤❛r❞❧②♣r❡❞✐❝t❛❜❧❡✳ ❆ ❧❛r❣❡ ❜♦❞② ♦❢ ✇♦r❦ ❤❛s ❛❞❞r❡ss❡❞ t❤✐s ✐ss✉❡ ✭s❡❡ ❙❡❝t✐♦♥ ✻ ❢♦r ❛♥ ♦✈❡r✈✐❡✇✮✳

❚❤❡ ❝♦♥tr✐❜✉t✐♦♥s ♦❢ t❤✐s ♣❛♣❡r ❛r❡ t❤❡ ❢♦❧❧♦✇✐♥❣✳

❼ ❲❡ r❡✈✐s✐t t❤❡ ♣❡r❢♦r♠❛♥❝❡ ♦❢ s✇✐t❝❤✲❜❛s❡❞ ✐♥t❡r♣r❡t❡rs✱ ❢♦❝✉s✐♥❣ ♦♥ t❤❡ ✐♠♣❛❝t t❤❡ ✐♥❞✐✲r❡❝t ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥✱ ♦♥ ♠♦❞❡r♥ ❛r❝❤✐t❡❝t✉r❡s ✭◆❡❤❛❧❡♠ ❛♥❞ ❙❛♥❞② ❇r✐❞❣❡✮ ❛♥❞ ❝✉rr❡♥t✐♥t❡r♣r❡t❡❞ ❧❛♥❣✉❛❣❡s ✭P②t❤♦♥✱ ❏❛✈❛s❝r✐♣t✱ ❈▲■✮✳ ❲❡ s❤♦✇ t❤❛t t❤❡ ♣❡r❢♦r♠❛♥❝❡ ♦❢ t❤❡ ♣r❡✲❞✐❝t♦rs ❛♥❞ t❤❡ ❝❤❛r❛❝t❡r✐st✐❝s ♦❢ ✐♥t❡r♣r❡t❡rs ♠❛❦❡ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♠✉❝❤ ❧❡ss ❝r✐t✐❝❛❧t❤❛♥ ❜❡❢♦r❡✳

❼ ❲❡ ❡✈❛❧✉❛t❡ t❤❡ ✐♠♣❛❝t ♦❢ ❛ st❛t❡✲♦❢✲t❤❡✲❛rt ❜r❛♥❝❤ ♣r❡❞✐❝t♦r ♣r♦♣♦s❡❞ ✐♥ t❤❡ ❧✐t❡r❛t✉r❡♦♥ t❤❡ s❛♠❡ ✐♥t❡r♣r❡t❡rs✱ ❛♥❞ ✇❡ s❤♦✇ t❤❛t t❤❡ tr❡♥❞ ♦❜s❡r✈❡❞ ✇✐t❤ ❡①✐st✐♥❣ ❤❛r❞✇❛r❡ ✐s❝♦♥✜r♠❡❞ ❛♥❞ ❝♦✉❧❞ ❜❡ ❛♠♣❧✐✜❡❞✳

❚❤❡ r❡st ♦❢ t❤✐s ♣❛♣❡r ✐s ♦r❣❛♥✐③❡❞ ❛s ❢♦❧❧♦✇s✳ ❙❡❝t✐♦♥ ✷ ♠♦t✐✈❛t❡s ♦✉r ✇♦r❦✿ ✐t ❛♥❛❧②③❡s✐♥ ♠♦r❡ ❞❡t❛✐❧s t❤❡ ♣❡r❢♦r♠❛♥❝❡ ♦❢ s✇✐t❝❤✲❜❛s❡❞ ✐♥t❡r♣r❡t❡rs✱ ✐t ✐♥tr♦❞✉❝❡s ❥✉♠♣ t❤r❡❛❞✐♥❣✱❛♥❞ ♠❡❛s✉r❡s ✐ts ✐♠♣❛❝t ✉s✐♥❣ ❝✉rr❡♥t ✐♥t❡r♣r❡t❡rs✳ ❙❡❝t✐♦♥ ✸ r❡✈✐❡✇s t❤❡ ❡✈♦❧✉t✐♦♥ ♦❢ ❜r❛♥❝❤♣r❡❞✐❝t✐♦♥ ♦✈❡r t❤❡ ❧❛st ❞❡❝❛❞❡s✱ ❛♥❞ ♣r❡s❡♥ts t❤❡ st❛t❡✲♦❢✲t❤❡✲❛rt ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs ❚❆●❊ ❢♦r❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤❡s ❛♥❞ ■❚❚❆●❊ ❬✸✶❪ ❢♦r ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s✳ ❙❡❝t✐♦♥ ✹ ♣r❡s❡♥ts ❡①♣❡r✐♠❡♥t❛❧s❡t✉♣✳ ■♥ ❙❡❝t✐♦♥ ✺✱ ✇❡ ♣r❡s❡♥t ♦✉r ❡①♣❡r✐♠❡♥t❛❧ r❡s✉❧ts ❛♥❞ ♦✉r ✜♥❞✐♥❣s ♦♥ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥✐♠♣❛❝t ♦♥ ✐♥t❡r♣r❡t❡r ♣❡r❢♦r♠❛♥❝❡✳ ❙❡❝t✐♦♥ ✻ r❡✈✐❡✇s r❡❧❛t❡❞ ✇♦r❦✳ ❲❡ ❝♦♥❝❧✉❞❡ ✐♥ ❙❡❝t✐♦♥ ✼✳

❚❡r♠✐♥♦❧♦❣② ❚❤✐s ✇♦r❦ ✐s ❝♦♥❝❡r♥❡❞ ✇✐t❤ ✐♥t❡r♣r❡t❡rs ❡①❡❝✉t✐♥❣ ❜②t❡❝♦❞❡s✳ ❚❤✐s ❜②t❡❝♦❞❡ ❝❛♥❜❡ ❣❡♥❡r❛t❡❞ st❛t✐❝❛❧❧② ❜❡❢♦r❡ ❛❝t✉❛❧ ❡①❡❝✉t✐♦♥ ✭❛s ✐♥ t❤❡ ❏❛✈❛ ♠♦❞❡❧✮✱ ❥✉st ❜❡❢♦r❡ ❡①❡❝✉t✐♦♥ ✭❛s✐♥ P②t❤♦♥✱ ✇❤✐❝❤ ❧♦❛❞s ❛ ♣②❝ ✜❧❡ ✇❤❡♥ ❛❧r❡❛❞② ♣r❡s❡♥t✱ ❛♥❞ ❣❡♥❡r❛t❡s ✐t ✇❤❡♥ ♠✐ss✐♥❣✮✱ ♦r ❛tr✉♥t✐♠❡ ✭❛s ✐♥ ❏❛✈❛s❝r✐♣t✮✳ ❲❤❛t ✐s ✐♠♣♦rt❛♥t ✐s t❤❛t t❤❡ ❡①❡❝✉t✐♦♥ s②st❡♠ ✐s ♥♦t ❝♦♥❝❡r♥❡❞ ✇✐t❤♣❛rs✐♥❣✱ t❤❡ ❝♦❞❡ ✐s ❛❧r❡❛❞② ❛✈❛✐❧❛❜❧❡ ✐♥ ❛ s✐♠♣❧❡ ✐♥t❡r♠❡❞✐❛t❡ r❡♣r❡s❡♥t❛t✐♦♥✳

❘❘ ♥➦ ✽✹✵✺

Page 7: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✹ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

✶ ✇❤✐❧❡ ✭✶ ✮ ④✷ ♦♣❝ ❂ ✯✈♣❝✰✰❀✸ s✇✐t❝❤ ✭ ♦♣❝ ✮ ④✹ ❝❛s❡ ❆❉❉✿✺ ① ❂ ♣♦♣ ✭ s t❛❝❦ ✮ ❀✻ ② ❂ ♣♦♣ ✭ s t❛❝❦ ✮ ❀✼ ♣✉s❤ ✭ st❛❝❦ ✱ ①✰② ✮ ❀✽ ❜r❡❛❦ ❀✾✶✵ ❝❛s❡ ❙❯❇✿✶✶ ✳ ✳ ✳✶✷ ⑥✶✸ ⑥

✶ ❧♦♦♣ ✿✷ ❛❞❞ ✵①✷ ✱ ❡s ✐✸ ♠♦✈③✇❧ ✭ ❡s ✐ ✮ ✱ ❡❞✐✹ ❝♠♣ ✵①✷✾✾ ✱ ❡❞✐✺ ❥❛ ❁❧♦♦♣❃✻ ♠♦✈ ✵ ① ✳ ✳ ✭ ✱ ❡❞✐ ✱ ✹ ✮ ✱ ❡❛①✼ ❥♠♣ ✯❡❛①

✽ ✳ ✳ ✳✾ ♠♦✈ −✵①✶✵ ✭❡❜① ✮ ✱ ❡❛①✶✵ ❛❞❞ ❡❛① ✱−✵①✷✵ ✭❡❜①✮✶✶ ❛❞❞ ✵ ① ❢ ❢ ❢ ❢ ❢ ❢ ❢ ✵ ✱ ❡❜①✶✷ ❥♠♣ ❁❧♦♦♣❃

✭❛✮ ❈ s♦✉r❝❡ ❝♦❞❡ ✭❜✮ ①✽✻ ❛ss❡♠❜❧②

❋✐❣✉r❡ ✶✿ ▼❛✐♥ ❧♦♦♣ ♦❢ ♥❛✐✈❡ ✐♥t❡r♣r❡t❡r

❚❤r♦✉❣❤♦✉t t❤✐s ♣❛♣❡r✱ t❤❡ ✇♦r❞ ❜②t❡❝♦❞❡ r❡❢❡rs t♦ ❛ ✈✐rt✉❛❧ ✐♥str✉❝t✐♦♥ ✭✐♥❝❧✉❞✐♥❣ ♦♣❡r❛♥❞s✮✱✇❤✐❧❡ ♦♣❝♦❞❡ ✐s t❤❡ ♥✉♠❡r✐❝❛❧ ✈❛❧✉❡ ♦❢ t❤❡ ❜②t❡❝♦❞❡ ✭✉s✉❛❧❧② ❡♥❝♦❞❡❞ ❛s ❛ ❈ ❡♥✉♠ t②♣❡✮✳ ■♥str✉❝✲t✐♦♥s r❡❢❡r t♦ ♥❛t✐✈❡ ✐♥str✉❝t✐♦♥s ♦❢ t❤❡ ♣r♦❝❡ss♦r✳ ❚❤❡ ✈✐rt✉❛❧ ♣r♦❣r❛♠ ❝♦✉♥t❡r ✐s t❤❡ ♣♦✐♥t❡rt♦ t❤❡ ❝✉rr❡♥t ❡①❡❝✉t❡❞ ❜②t❡❝♦❞❡✳ ❉✐s♣❛t❝❤ ✐s t❤❡ s❡t ♦❢ ✐♥str✉❝t✐♦♥s ♥❡❡❞❡❞ t♦ ❢❡t❝❤ t❤❡ ♥❡①t❜②t❡❝♦❞❡✱ ❞❡❝♦❞❡ ✐t ✭✐✳❡✳ ✜❣✉r❡ ♦✉t t❤❛t ✐t ✐s ❡✳❣✳ ❛♥ ❛❞❞✮ ❛♥❞ ❥✉♠♣ t♦ t❤❡ ❝❤✉♥❦ ♦❢ ❝♦❞❡ t❤❛t✐♠♣❧❡♠❡♥ts ✐ts s❡♠❛♥t✐❝s✱ ✐✳❡✳ t❤❡ ♣❛②❧♦❛❞ ✭✐♥ t❤✐s ❡①❛♠♣❧❡ t❤❡ ❝♦❞❡ t❤❛t ♣❡r❢♦r♠s t❤❡ ❛❞❞✐t✐♦♥♦❢ t❤❡ ❛♣♣r♦♣r✐❛t❡ ✈❛❧✉❡s✮✳

✷ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs

◗✉♦t✐♥❣ ❈r❛♠❡r ❡t ❛❧✳ ❬✻❪✱ ■♥t❡r♣r❡t✐♥❣ ❜②t❡❝♦❞❡s ✐s s❧♦✇✳ ❚❤❡r❡ ❛r❡ s❡✈❡r❛❧ r❡❛s♦♥s t♦ t❤✐s✳❆♥ ✐♥t❡r♣r❡t❡r ✐s ❜❛s✐❝❛❧❧② ❛♥ ✐♥✜♥✐t❡ ❧♦♦♣ t❤❛t ❢❡t❝❤❡s✱ ❞❡❝♦❞❡s✱ ❛♥❞ ❡①❡❝✉t❡s ❜②t❡❝♦❞❡s✱ ♦♥❡❛❢t❡r t❤❡ ♦t❤❡r✳ ❋✐❣✉r❡ ✶ ✭❛✮ ✐❧❧✉str❛t❡s ❛ ✈❡r② s✐♠♣❧✐✜❡❞ ✐♥t❡r♣r❡t❡r ✇r✐tt❡♥ ✐♥ ❈✱ st✐❧❧ r❡t❛✐♥✐♥❣s♦♠❡ ❦❡② ❝❤❛r❛❝t❡r✐st✐❝s✳ ▲✐♥❡s ✶ ❛♥❞ ✶✸ ✐♠♣❧❡♠❡♥t t❤❡ ✐♥✜♥✐t❡ ❧♦♦♣✳ ▲✐♥❡ ✷ ❢❡t❝❤❡s t❤❡ ♥❡①t❜②t❡❝♦❞❡ ❢r♦♠ t❤❡ ❛❞❞r❡ss st♦r❡❞ ✐♥ ✈✐rt✉❛❧ ♣r♦❣r❛♠ ❝♦✉♥t❡r ✈♣❝✱ ❛♥❞ ✐♥❝r❡♠❡♥ts ✈♣❝ ✭✐♥ ❝❛s❡t❤❡ ❜②t❡❝♦❞❡ ✐s ❛ ❥✉♠♣✱ ✈♣❝ ♠✉st ❜❡ ❤❛♥❞❧❡❞ s❡♣❛r❛t❡❧②✮✳ ❉❡❝♦❞✐♥❣ ✐s t②♣✐❝❛❧❧② ✐♠♣❧❡♠❡♥t❡❞ ❛s❛ ❧❛r❣❡ s✇✐t❝❤ st❛t❡♠❡♥t✱ st❛rt✐♥❣ ❛t ❧✐♥❡ ✸✳

▼❛♥② ✐♥t❡r♣r❡t❡❞ ❧❛♥❣✉❛❣❡s ✐♠♣❧❡♠❡♥t ❛♥ ❡✈❛❧✉❛t✐♦♥ st❛❝❦✳ ❚❤✐s ✐s t❤❡ ❝❛s❡ ♦❢ ❏❛✈❛✱ ❈▲■✱P②t❤♦♥ ❛♠♦♥❣ ♦t❤❡rs ✭❉❛❧✈✐❦ ✐s ❛ ♥♦t❛❜❧❡ ❡①❝❡♣t✐♦♥ ❬✾❪✮✳ ▲✐♥❡s ✺✕✼ ✐❧❧✉str❛t❡ ❤♦✇ ❛♥ ❛❞❞ ✐s✐♠♣❧❡♠❡♥t❡❞✳

❚❤❡ ♣r✐♥❝✐♣❛❧ ♦✈❡r❤❡❛❞ ♦❢ ✐♥t❡r♣r❡t❡rs ❝♦♠❡s ❢r♦♠ t❤❡ ❡①❡❝✉t✐♦♥ ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣✳ ❊✈❡r②❜②t❡❝♦❞❡ t②♣✐❝❛❧❧② r❡q✉✐r❡s t❡♥ ✐♥str✉❝t✐♦♥s ✇❤❡♥ ❝♦♠♣✐❧❡❞ ❞✐r❡❝t❧② ❢r♦♠ st❛♥❞❛r❞ ❈ ✭❛s ♠❡❛s✉r❡❞♦♥ ♦✉r ♦✇♥ ✐♥t❡r♣r❡t❡r ❝♦♠♣✐❧❡❞ ❢♦r ①✽✻✱ ❞❡s❝r✐❜❡❞ ✐♥ ❙❡❝t✐♦♥ ✺✳✸✮✳ ❙❡❡ ❋✐❣✉r❡ ✶ ✭❜✮ ❢♦r ❛♣♦ss✐❜❧❡ tr❛♥s❧❛t✐♦♥ ♦❢ t❤❡ ♠❛✐♥ ❧♦♦♣ t♦ ①✽✻✳ ❚❤✐s ❝♦♠♣❛r❡s t♦ t❤❡ s✐♥❣❧❡ ♥❛t✐✈❡ ✐♥str✉❝t✐♦♥♥❡❡❞❡❞ ❢♦r ♠♦st ❜②t❡❝♦❞❡s ✇❤❡♥ t❤❡ ❜②t❡❝♦❞❡ ✐s ❏■❚ ❝♦♠♣✐❧❡❞✳ ❆❞❞✐t✐♦♥❛❧ ❝♦sts ❝♦♠❡ ❢r♦♠ t❤❡✐♠♣❧❡♠❡♥t❛t✐♦♥ ♦❢ t❤❡ s✇✐t❝❤ st❛t❡♠❡♥t✳ ❆❧❧ ❝♦♠♣✐❧❡rs ✇❡ tr✐❡❞ ✭●❈❈✱ ✐❝❝✱ ▲▲❱▼✮ ❣❡♥❡r❛t❡ ❛❥✉♠♣ t❛❜❧❡ ❛♥❞ ❛♥ ✐♥❞✐r❡❝t ❥✉♠♣ ✐♥str✉❝t✐♦♥ ✭❧✐♥❡ ✼ ♦❢ ❋✐❣✉r❡ ✶ ✭❜✮✮✳ ❚❤✐s ❥✉♠♣ ❤❛s ❤✉♥❞r❡❞s♦❢ ♣♦t❡♥t✐❛❧ t❛r❣❡ts✱ ❛♥❞ ❤❛s ❜❡❡♥ ♣r❡✈✐♦✉s❧② r❡♣♦rt❡❞ t♦ ❜❡ ❞✐✣❝✉❧t t♦ ♣r❡❞✐❝t ❬✶✷✱ ✶✶✱ ✶✽❪✱r❡s✉❧t✐♥❣ t②♣✐❝❛❧❧② ✐♥ ❛♥ ❛❞❞✐t✐♦♥❛❧ ✷✵ ❝②❝❧❡ ♣❡♥❛❧t②✳ ❋✐♥❛❧❧②✱ ♦♣❡r❛♥❞s ♠✉st ❜❡ r❡tr✐❡✈❡❞ ❢r♦♠t❤❡ ❡✈❛❧✉❛t✐♦♥ st❛❝❦✱ ❛♥❞ r❡s✉❧ts st♦r❡❞ ❜❛❝❦ t♦ ✐t ✭❧✐♥❡s ✾✕✶✵✮ ❛♥❞ t❤❡ st❛❝❦ ❛❞❥✉st❡❞ ✭❧✐♥❡ ✶✶✮✱✇❤✐❧❡ ♥❛t✐✈❡ ❝♦❞❡ ✇♦✉❧❞ ❤❛✈❡ ♦♣❡r❛♥❞s ✐♥ r❡❣✐st❡rs ✐♥ ♠♦st ❝❛s❡s ✭✇❤❡♥ ♥♦t s♣✐❧❧❡❞ ❜② t❤❡ r❡❣✐st❡r

■♥r✐❛

Page 8: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✺

✈♦✐❞✯ ❧ ❛ ❜ ❡ ❧ s ❬ ❪ ❂ ④ ✫✫❆❉❉✱ ✫✫❙❯❇ ✳ ✳ ✳ ⑥ ❀✳ ✳ ✳❣♦t♦ ✯ ❧ ❛ ❜ ❡ ❧ s ❬✯ ✈♣❝✰✰❪❀

❆❉❉✿① ❂ ♣♦♣ ✭ s t❛❝❦ ✮ ❀② ❂ ♣♦♣ ✭ s t❛❝❦ ✮ ❀♣✉s❤ ✭ st❛❝❦ ✱ ①✰② ✮ ❀❣♦t♦ ✯ ❧ ❛ ❜ ❡ ❧ s ❬✯ ✈♣❝✰✰❪❀

❙❯❇✿✳ ✳ ✳❣♦t♦ ✯ ❧ ❛ ❜ ❡ ❧ s ❬✯ ✈♣❝✰✰❪❀

❋✐❣✉r❡ ✷✿ ❚♦❦❡♥ t❤r❡❛❞✐♥❣✱ ✉s✐♥❣ ❛ ●◆❯ ❡①t❡♥s✐♦♥

❛❧❧♦❝❛t♦r✮✳

❆ ♠✐♥♦r ♦✈❡r❤❡❛❞ ❝♦♥s✐sts ✐♥ t✇♦ ✐♥str✉❝t✐♦♥s t❤❛t ❝♦♠♣❛r❡ t❤❡ ♦♣❝♦❞❡ ✈❛❧✉❡ r❡❛❞ ❢r♦♠♠❡♠♦r② ✇✐t❤ t❤❡ r❛♥❣❡ ♦❢ ✈❛❧✐❞ ❜②t❡❝♦❞❡s ❜❡❢♦r❡ ❛❝❝❡ss✐♥❣ t❤❡ ❥✉♠♣ t❛❜❧❡ ✭❧✐♥❡s ✹✕✺✮✳ ❇②❝♦♥str✉❝t✐♦♥ ♦❢ ❛ ✈❛❧✐❞ ✐♥t❡r♣r❡t❡r✱ ✈❛❧✉❡s ♠✉st ❜❡ ✇✐t❤✐♥ t❤❡ ✈❛❧✐❞ r❛♥❣❡✱ ❜✉t ❛ ❝♦♠♣✐❧❡r ❞♦❡s♥♦t ❤❛✈❡ ❡♥♦✉❣❤ ✐♥❢♦r♠❛t✐♦♥ t♦ ♣r♦✈❡ t❤✐s✳ ❍♦✇❡✈❡r✱ ❛♥② s✐♠♣❧❡ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ✇✐❧❧ ❝♦rr❡❝t❧②♣r❡❞✐❝t t❤✐s ❜r❛♥❝❤✳

❚❤✐s ♣❛♣❡r ❛❞❞r❡ss❡s t❤❡ ♣❛rt ♦❢ t❤❡ ♦✈❡r❤❡❛❞ ❞✉❡ t♦ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s✳ ❲❡ r❡✈✐s✐t♣r❡✈✐♦✉s ✇♦r❦ ♦♥ t❤❡ ♣r❡❞✐❝t❛❜✐❧✐t② ♦❢ t❤❡ ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s ✐♥ ✐♥t❡r♣r❡t❡rs✱ ❛♥❞ t❤❡ t❡❝❤♥✐q✉❡s♣r♦♣♦s❡❞ t♦ ❛❞❞r❡ss t❤✐s ❝♦st✳ ❖t❤❡r ♦♣t✐♠✐③❛t✐♦♥s r❡❧❛t❡❞ t♦ ♦♣t✐♠✐③✐♥❣ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ❛r❡❜r✐❡✢② r❡✈✐❡✇❡❞ ✐♥ ❙❡❝t✐♦♥ ✻✳

✷✳✶ ❏✉♠♣ t❤r❡❛❞✐♥❣

❆s ♠❡♥t✐♦♥❡❞✱ ❛ s✐❣♥✐✜❝❛♥t ♣❛rt ♦❢ t❤❡ ♦✈❡r❤❡❛❞ ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ✐s t❤♦✉❣❤t t♦ ❝♦♠❡ ❢r♦♠t❤❡ ♣♦♦r❧② ♣r❡❞✐❝t❡❞ ✐♥❞✐r❡❝t ❥✉♠♣ t❤❛t ✐♠♣❧❡♠❡♥ts t❤❡ s✇✐t❝❤ st❛t❡♠❡♥t✳ ❏✉♠♣ t❤r❡❛❞✐♥❣ ✐st❤❡ ♥❛♠❡ ♦❢ ❛♥ ♦♣t✐♠✐③❛t✐♦♥ t❤❛t ❛❞❞r❡ss❡s t❤✐s ❝♦st✳ ■t ❜❛s✐❝❛❧❧② ❜②♣❛ss❡s t❤❡ ♠❡❝❤❛♥✐s♠ ♦❢ t❤❡s✇✐t❝❤✱ ❛♥❞ ❥✉♠♣s ❢r♦♠ ♦♥❡ ❝❛s❡ ❡♥tr② t♦ t❤❡ ♥❡①t✳ ❋✐❣✉r❡ ✷ ✐❧❧✉str❛t❡s ❤♦✇ t❤✐s ❝❛♥ ❜❡ ✇r✐tt❡♥✳❏✉♠♣ t❤r❡❛❞✐♥❣✱ t❤♦✉❣❤✱ ❝❛♥♥♦t ❜❡ ✐♠♣❧❡♠❡♥t❡❞ ✐♥ st❛♥❞❛r❞ ❈✳ ■t ✐s ❝♦♠♠♦♥❧② ✐♠♣❧❡♠❡♥t❡❞✇✐t❤ t❤❡ ●◆❯ ❡①t❡♥s✐♦♥ ♥❛♠❡❞ ▲❛❜❡❧s ❛s ❱❛❧✉❡s✶✳ ❆♥❞ ✇❤✐❧❡ ♠❛♥② ❝♦♠♣✐❧❡rs ♥♦✇ s✉♣♣♦rt t❤✐s❡①t❡♥s✐♦♥s ✭✐♥ ♣❛rt✐❝✉❧❛r✱ ✇❡ ❝❤❡❝❦❡❞ ●❈❈✱ ✐❝❝✱ ▲▲❱▼✮✱ ♦❧❞❡r ✈❡rs✐♦♥s ❛♥❞ ♣r♦♣r✐❡t❛r②✱ ♣r♦❝❡ss♦rs♣❡❝✐✜❝ ❝♦♠♣✐❧❡rs ♠❛② ♥♦t s✉♣♣♦rt ✐t✳

❚❤❡ ✐♥t✉✐t✐♦♥ ❜❡❤✐♥❞ t❤❡ ♦♣t✐♠✐③❛t✐♦♥ ❞❡r✐✈❡s ❢r♦♠ ✐♥❝r❡❛s❡❞ ❜r❛♥❝❤ ❝♦rr❡❧❛t✐♦♥✿ ✜rst❧②✱ ❛s✐♥❣❧❡ ✐♥❞✐r❡❝t ❥✉♠♣ ✇✐t❤ ♠❛♥② t❛r❣❡ts ✐s ♥♦✇ r❡♣❧❛❝❡❞ ❜② ♠❛♥② ❥✉♠♣s❀ s❡❝♦♥❞❧②✱ ❡❛❝❤ ❥✉♠♣ ✐s♠♦r❡ ❧✐❦❡❧② t♦ ❝❛♣t✉r❡ ❛ r❡♣❡❛t✐♥❣ s❡q✉❡♥❝❡✱ s✐♠♣❧② ❜❡❝❛✉s❡ ❛♣♣❧✐❝❛t✐♦♥ ❜②t❡❝♦❞❡ ❤❛s ♣❛tt❡r♥s✭❡✳❣✳ ❛ ❝♦♠♣❛r❡ ✐s ♦❢t❡♥ ❢♦❧❧♦✇❡❞ ❜② ❛ ❥✉♠♣✮✳

▼❛♥② ✐♥t❡r♣r❡t❡rs ❝❤❡❝❦ ✐❢ t❤✐s ❡①t❡♥s✐♦♥ ✐s ❛✈❛✐❧❛❜❧❡ ✐♥ t❤❡ ❝♦♠♣✐❧❡r t♦ ❞❡❝✐❞❡ ✇❤❡t❤❡r t♦❡①♣❧♦✐t ✐t✱ ♦r t♦ r❡✈❡rt t♦ t❤❡ ❝❧❛ss✐❝❛❧ s✇✐t❝❤✲❜❛s❡❞ ✐♠♣❧❡♠❡♥t❛t✐♦♥✳ ❊①❛♠♣❧❡s ✐♥❝❧✉❞❡ ❏❛✈❛s❝r✐♣t❛♥❞ P②t❤♦♥✱ ❞✐s❝✉ss❡❞ ✐♥ t❤✐s ♣❛♣❡r✳ Pr❡✈✐♦✉s ✇♦r❦ ❬✶✷❪ r❡♣♦rts t❤❛t ✐t ✐s ❛❧s♦ t❤❡ ❝❛s❡ ❢♦r ❖❝❛♠❧✱❨❆P ❛♥❞ Pr♦❧♦❣✳ ❚❤✐s ❞♦✉❜❧❡ ✐♠♣❧❡♠❡♥t❛t✐♦♥✱ ❤♦✇❡✈❡r✱ r❡s✉❧ts ✐♥ ❝✉♠❜❡rs♦♠❡ ❝♦❞❡✱ ★✐❢❞❡❢s✱❛s ✇❡❧❧ ❛s t❤❡ ♥❡❡❞ t♦ ❞✐s❛❜❧❡ s❡✈❡r❛❧ ❝♦❞❡ tr❛♥s❢♦r♠❛t✐♦♥s t❤❛t ❝♦✉❧❞ ❞❡✲♦♣t✐♠✐③❡ ✐t ✭t❤❡ s♦✉r❝❡❝♦❞❡ ♦❢ P②t❤♦♥ ♠❡♥t✐♦♥s ❣❧♦❜❛❧ ❝♦♠♠♦♥ s✉❜❡①♣r❡ss✐♦♥ ❡❧✐♠✐♥❛t✐♦♥ ❛♥❞ ❝r♦ss✲❥✉♠♣✐♥❣✮✳

✶❆❧t❡r♥❛t✐✈❡❧②✱ ❛ ❢❡✇ ❧✐♥❡s ♦❢ ✐♥❧✐♥❡ ❛ss❡♠❜❧② ❝❛♥ ❜❡ ✉s❡❞✱ ❛t t❤❡ ❡①♣❡♥s❡ ♦❢ ♣♦rt❛❜✐❧✐t②✳

❘❘ ♥➦ ✽✹✵✺

Page 9: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✻ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

0.9

1

1.1

1.2

1.3

1.4

1.5

benchmarks

Core2Nehalem

SandyBridge

0.9

1

1.1

1.2

1.3

1.4

1.5

benchmarks

Core2Nehalem

SandyBridge

✭❛✮ ❙♣❡❡❞✉♣ ❞✉❡ t♦ t❤r❡❛❞❡❞ ❝♦❞❡ ✐♥ P②t❤♦♥✲✸ ✭❜✮ ❙♣❡❡❞✉♣ ❞✉❡ t♦ ♦♣❝♦❞❡ ♣r❡❞✐❝t✐♦♥ ✐♥ P②t❤♦♥✲✷

❋✐❣✉r❡ ✸✿ ❙♣❡❡❞✉♣s ✐♥ P②t❤♦♥

✷✳✷ ▼♦t✐✈❛t✐♦♥ ❊①❛♠♣❧❡

❈✉rr❡♥t ✈❡rs✐♦♥s ♦❢ P②t❤♦♥✲✸ ❛♥❞ ❏❛✈❛s❝r✐♣t ❛✉t♦♠❛t✐❝❛❧❧② t❛❦❡ ❛❞✈❛♥t❛❣❡ ♦❢ t❤r❡❛❞❡❞ ❝♦❞❡✇❤❡♥ s✉♣♣♦rt❡❞ ❜② t❤❡ ❝♦♠♣✐❧❡r✳ ❚❤❡ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ❝♦♥s✐sts ✐♥ t✇♦ ✈❡rs✐♦♥s ✭♣❧❛✐♥ s✇✐t❝❤

❛♥❞ t❤r❡❛❞❡❞ ❝♦❞❡✮✱ ♦♥❡ ♦❢ t❤❡♠ ❜❡✐♥❣ s❡❧❡❝t❡❞ ❛t ❝♦♠♣✐❧❡ t✐♠❡✱ ❜❛s❡❞ ♦♥ ❝♦♠♣✐❧❡r s✉♣♣♦rt ❢♦rt❤❡ ▲❛❜❡❧s ❛s ❱❛❧✉❡s ❡①t❡♥s✐♦♥✳ ❚❤r❡❛❞❡❞ ❝♦❞❡ ❝❛♥ ❜❡ ❡❛s✐❧② ❞✐s❛❜❧❡❞ t❤♦✉❣❤ t❤❡ ❝♦♥❢✐❣✉r❡

s❝r✐♣t ♦r ❛ ★❞❡❢✐♥❡✳■♥ ✷✵✵✶✱ ❊rt❧ ❛♥❞ ●r❡❣❣ ❬✶✶❪ ♦❜s❡r✈❡❞ t❤❛t✿

✏❢♦r ❝✉rr❡♥t ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs✱ t❤r❡❛❞❡❞ ❝♦❞❡ ✐♥t❡r♣r❡t❡rs ❝❛✉s❡ ❢❡✇❡r ♠✐s♣r❡❞✐❝t✐♦♥s✱❛♥❞ ❛r❡ ❛❧♠♦st t✇✐❝❡ ❛s ❢❛st ❛s s✇✐t❝❤ ❜❛s❡❞ ✐♥t❡r♣r❡t❡rs ♦♥ ♠♦❞❡r♥ s✉♣❡rs❝❛❧❛r❛r❝❤✐t❡❝t✉r❡s✑✳

❚❤❡ ❝✉rr❡♥t s♦✉r❝❡ ❝♦❞❡ ♦❢ P②t❤♦♥✲✸ ❛❧s♦ s❛②s✿

✏❆t t❤❡ t✐♠❡ ♦❢ t❤✐s ✇r✐t✐♥❣✱ t❤❡ t❤r❡❛❞❡❞ ❝♦❞❡ ✈❡rs✐♦♥ ✐s ✉♣ t♦ ✶✺✲✷✵✪ ❢❛st❡r t❤❛♥t❤❡ ♥♦r♠❛❧ s✇✐t❝❤ ✈❡rs✐♦♥✱ ❞❡♣❡♥❞✐♥❣ ♦♥ t❤❡ ❝♦♠♣✐❧❡r ❛♥❞ t❤❡ ❈P❯ ❛r❝❤✐t❡❝t✉r❡✳✑

❚❤❡ ✈❡rs✐♦♥ r❡✈✐s✐♦♥ ♦♥ t❤❡ P②t❤♦♥ r❡♣♦s✐t♦r② ❧❡t ✉s tr❛❝❦ t❤✐s ❝♦♠♠❡♥t ❜❛❝❦ t♦ ❏❛♥✉❛r② ✷✵✵✾✳❲❡ ❡①♣❡r✐♠❡♥t❡❞ ✇✐t❤ P②t❤♦♥✲✸✳✸✳✷✱ ❜♦t❤ ✇✐t❤ ❛♥❞ ✇✐t❤♦✉t t❤r❡❛❞❡❞ ❝♦❞❡✱ ❛♥❞ t❤❡ ❯♥❧❛❞❡♥

❙✇❛❧❧♦✇ ❜❡♥❝❤♠❛r❦s ✭s❡❧❡❝t✐♥❣ ♦♥❧② t❤❡ ❜❡♥❝❤♠❛r❦s ❝♦♠♣❛t✐❜❧❡ ✇✐t❤ P②t❤♦♥ ✷ ❛♥❞ P②t❤♦♥✸✱ ✇✐t❤ ✢❛❣ ✲❜ ✷♥✸✮✳ ❲❡ ❡①♣❡r✐♠❡♥t❡❞ ✇✐t❤ ❛ r❡❝❡♥t ❙❛♥❞② ❇r✐❞❣❡ ♠❛❝❤✐♥❡✱ ❛ s❧✐❣❤t❧② ♦❧❞❡r◆❡❤❛❧❡♠✱ ❛s ✇❡❧❧ ❛s ❛♥ ♦❧❞❡r ❈♦r❡✷✳ ❋✐❣✉r❡ ✸ ✭❛✮ s❤♦✇s t❤❡ ♣❡r❢♦r♠❛♥❝❡ ✐♠♣r♦✈❡♠❡♥t ❞✉❡ t♦t❤r❡❛❞❡❞ ❝♦❞❡✳

◆❡❤❛❧❡♠ s❤♦✇s ❛ ❢❡✇ ♦✉tst❛♥❞✐♥❣ s♣❡❡❞✉♣s ✐♥ t❤❡ ✸✵✪✕✹✵✪ r❛♥❣❡✱ ❛s ✇❡❧❧ ❛s ❙❛♥❞② ❇r✐❞❣❡ t♦❛ ❧❡ss❡r ❡①t❡♥t✱ ❜✉t t❤❡ ❛✈❡r❛❣❡ s♣❡❡❞✉♣s ✭❣❡♦♠❡❛♥ ♦❢ ✐♥❞✐✈✐❞✉❛❧ s♣❡❡❞✉♣s✮ ❢♦r ❈♦r❡✷✱ ◆❡❤❛❧❡♠✱❛♥❞ ❙❛♥❞② ❇r✐❞❣❡ ❛r❡ r❡s♣❡❝t✐✈❡❧② ✼✳✷✪✱ ✶✵✳✶✪ ❛♥❞ ✹✳✷✪✱ ✇✐t❤ ❛ ❢❡✇ ♦✉tst❛♥❞✐♥❣ ✈❛❧✉❡s ❢♦r❡❛❝❤ ♠✐❝r♦❛r❝❤✐t❡❝t✉r❡✳ ❚❤❡ ✐♠♣❛❝t ♦❢ t❤r❡❛❞❡❞ ❝♦❞❡ ✐s ❧❡ss ♦♥ ❙❛♥❞② ❇r✐❞❣❡ t❤❛♥ ♦♥ ◆❡❤❛❧❡♠✳

P②t❤♦♥✲✷ ❛❧s♦ s✉♣♣♦rts ❛ ❧✐♠✐t❡❞ ✈❡rs✐♦♥ ♦❢ t❤r❡❛❞✐♥❣✱ ✐♠♣❧❡♠❡♥t❡❞ ✐♥ st❛♥❞❛r❞ ❈✱ ❛✐♠❡❞ ❛tt❤❡ ♠♦st ❢r❡q✉❡♥t ♣❛✐rs ♦❢ s✉❝❝❡ss✐✈❡ ♦♣❝♦❞❡s✳ ◆✐♥❡ ♣❛✐rs ♦❢ ♦♣❝♦❞❡s ❛r❡ ✐❞❡♥t✐✜❡❞ ❛♥❞ ❤❛r❞❝♦❞❡❞✐♥ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣✳ ❚❤❡ s♣❡❡❞✉♣s ❛r❡ r❡♣♦rt❡❞ ✐♥ ❋✐❣✉r❡ ✸ ✭❜✮✳ ❘❡s♣❡❝t✐✈❡ ❛✈❡r❛❣❡ s♣❡❡❞✉♣s❛r❡ ✸✳✾✪✱ ✷✳✽✪ ❛♥❞ ✸✳✷✪ ❢♦r ❈♦r❡✷✱ ◆❡❤❛❧❡♠✱ ❛♥❞ ❙❛♥❞② ❇r✐❞❣❡✳ ❖✉tst❛♥❞✐♥❣ ✈❛❧✉❡s ♠♦st❧②❛♣♣❧② t♦ t❤❡ ❈♦r❡✷ ❛r❝❤✐t❡❝t✉r❡✳

❆s ✐❧❧✉str❛t❡❞ ❜② t❤✐s s✐♠♣❧❡ ❡①♣❡r✐♠❡♥t✱ t❤❡ s♣❡❡❞✉♣ ❜r♦✉❣❤t ❜② ❥✉♠♣ t❤r❡❛❞✐♥❣ ♦♥ ♠♦❞❡r♥❤❛r❞✇❛r❡ ✐s ♠✉❝❤ ❧❡ss ✐t ✉s❡❞ t♦ ❜❡✳ ❆♥❞ ❛ ❜❡tt❡r ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ✐s ♥♦t t❤❡ s✐♥❣❧❡ ❢❛❝t♦r❝♦♥tr✐❜✉t✐♥❣ t♦ t❤❡ s♣❡❡❞✉♣✳ ❆s ❛❧r❡❛❞② ♦❜s❡r✈❡❞ ❜② P✐✉♠❛rt❛ ❛♥❞ ❘✐❝❝❛r❞✐ ❬✷✸❪ t❤r❡❛❞❡❞ ❝♦❞❡❛❧s♦ ❡①❡❝✉t❡s ❢❡✇❡r ✐♥str✉❝t✐♦♥s ❜❡❝❛✉s❡ ♣❛rt ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ✐s ❜②♣❛ss❡❞✳ ❋✐❣✉r❡ ✹ ✐❧❧✉str❛t❡s✱

■♥r✐❛

Page 10: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✼

-10

0

10

20

30

40

50

60

0 5 10 15 20 25 30

Redu

ctio

ns (%

)

Speedup on Sandy Bridge (%)

Reduction in number of instructionsReduction in mispredictions

❋✐❣✉r❡ ✹✿ ■♠♣❛❝t ♦❢ ❥✉♠♣ t❤r❡❛❞✐♥❣✿ s♣❡❡❞✉♣ ✈s r❡❞✉❝t✐♦♥ ✐♥ ♥✉♠❜❡r ♦❢ ✐♥str✉❝t✐♦♥s ❡①❡❝✉t❡❞❛♥❞ ❜r❛♥❝❤ ♠✐s♣r❡❞✐❝t✐♦♥s

❢♦r ❡❛❝❤ ♦❢ t❤❡ ❛❜♦✈❡ ♠❡♥t✐♦♥❡❞ P②t❤♦♥ ❜❡♥❝❤♠❛r❦s✱ ❤♦✇ s♣❡❡❞✉♣s ♦♥ ❙❛♥❞② ❇r✐❞❣❡ r❡❧❛t❡s t♦r❡❞✉❝t✐♦♥s ✐♥ ♥✉♠❜❡r ♦❢ ❡①❡❝✉t❡❞ ✐♥str✉❝t✐♦♥s ❛♥❞ ♠✐s♣r❡❞✐❝t❡❞ ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s✳ ■t s❤♦✇st❤❛t ❜♦t❤ ❝♦♥tr✐❜✉t❡ t♦ t❤❡ ♦❜s❡r✈❡❞ s♣❡❡❞✉♣✳

✷✳✸ ❘❡✈✐s✐t✐♥❣ ❈♦♥✈❡♥t✐♦♥❛❧ ❲✐s❞♦♠

❈♦♥✈❡♥t✐♦♥❛❧ ✇✐s❞♦♠ ❝♦♥s✐❞❡rs t❤❛t t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ t❤❛t ❞r✐✈❡s t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ♦❢ ❛ s✇✐t❝❤✲❜❛s❡❞ ✐♥t❡r♣r❡t❡r ✐s ✐♥❤❡r❡♥t❧② ❞✐✣❝✉❧t t♦ ♣r❡❞✐❝t✳ ▼✉❝❤ ❡✛♦rt ❤❛s ❜❡❡♥ ❞❡✈♦t❡❞ ✕ ✐♥ t❤❡ ❧✐t❡r❛t✉r❡❛♥❞ ✐♥ ❛❝t✉❛❧ s♦✉r❝❡ ❝♦❞❡ ✕ t♦ ✐♠♣r♦✈✐♥❣ ✐ts ♣r❡❞✐❝t❛❜✐❧✐t② ❛♥❞ r❡❞✉❝✐♥❣ ✐ts ♦✈❡r❤❡❛❞✳

❚❤✐s ✇❛s ❝❡rt❛✐♥❧② tr✉❡ ✐♥ t❤❡ ♣❛st✱ ❛♥❞ ✇❡ r❡✈✐❡✇ r❡❧❛t❡❞ ✇♦r❦ ✐♥ ❙❡❝t✐♦♥ ✻✳ ❍♦✇❡✈❡r✱ ❜r❛♥❝❤♣r❡❞✐❝t♦rs ❤❛✈❡ s✐❣♥✐✜❝❛♥t❧② ❡✈♦❧✈❡❞✱ ❛♥❞ t❤❡② ❛❝❤✐❡✈❡ ♠✉❝❤ ❜❡tt❡r ♣❡r❢♦r♠❛♥❝❡✳ ■♥ t❤✐s ♣❛♣❡r✱✇❡ st✉❞② t❤❡ ♣r♦♣❡rt✐❡s ♦❢ ❝✉rr❡♥t ✐♥t❡r♣r❡t❡rs ❛♥❞ st❛t❡✲♦❢✲t❤❡✲❛rt ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥✱ ❛♥❞ ✇❡s❤♦✇ t❤❛t t❤❡ ❜❡❤❛✈✐♦r ♦❢ t❤❡ ♠❛✐♥ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐s ♥♦✇ ❛ ♠✐♥♦r ✐ss✉❡✳

✸ ✭■♥❞✐r❡❝t✮ ❇r❛♥❝❤ Pr❡❞✐❝t♦rs

✸✳✶ ❙t❛t❡✲♦❢✲t❤❡✲❛rt

▼❛♥② ♣r♦♣♦s❛❧s ❤❛✈❡ ❜❡❡♥ ✐♥tr♦❞✉❝❡❞ ❢♦r ✐♠♣r♦✈✐♥❣ t❤❡ ❛❝❝✉r❛❝② ♦❢ ❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥❞✉r✐♥❣ t❤❡ t✇♦ ♣❛st ❞❡❝❛❞❡s✱ ❡✳❣✳ t✇♦✲❧❡✈❡❧ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ❬✸✼❪✱ ❤②❜r✐❞ ♣r❡❞✐❝t♦rs ❬✶✾❪✱ ❞❡✲❛❧✐❛s❡❞ ♣r❡❞✐❝t♦rs ❬✶✻✱ ✸✸✱ ✷✵❪✱ ♠✉❧t✐♣❧❡ ❤✐st♦r② ❧❡♥❣t❤ ✉s❡ ❬✸✵❪✱ ❛♥❞ ♠♦r❡ r❡❝❡♥t❧② ♣❡r❝❡♣tr♦♥✲✐♥s♣✐r❡❞ ♣r❡❞✐❝t♦rs ❬✶✺❪ ❛♥❞ ❣❡♦♠❡tr✐❝ ❤✐st♦r② ❧❡♥❣t❤ ♣r❡❞✐❝t♦rs ❬✷✼✱ ✸✶❪✳ ❆❧❧ t❤❡s❡ ♣r♦♣♦s✐t✐♦♥s❤❛✈❡ ✐♥✢✉❡♥❝❡❞ t❤❡ ❞❡s✐❣♥ ♦❢ t❤❡ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs ❡♠❜❡❞❞❡❞ ✐♥ ♥♦✇❛❞❛②s st❛t❡✲♦❢✲❛rt ♣r♦❝❡ss♦rs✳

❲❤✐❧❡ ❡✛❡❝t✐✈❡ ❤❛r❞✇❛r❡ ♣r❡❞✐❝t♦rs ♣r♦❜❛❜❧② ❝♦♠❜✐♥❡ s❡✈❡r❛❧ ♣r❡❞✐❝t✐♦♥ s❝❤❡♠❡s ✭❛ ❣❧♦❜❛❧❤✐st♦r② ❝♦♠♣♦♥❡♥t✱ ❛ ❧♦♦♣ ♣r❡❞✐❝t♦r ❛♥❞ ♠❛②❜❡ ❛ ❧♦❝❛❧ ❤✐st♦r② ♣r❡❞✐❝t♦r✮✱ ❚❆●❊ ❬✸✶✱ ✷✾❪ ✐s❣❡♥❡r❛❧❧② ❝♦♥s✐❞❡r❡❞ ❛s t❤❡ st❛t❡✲♦❢✲t❤❡✲❛rt ✐♥ ❣❧♦❜❛❧ ❤✐st♦r② ❜❛s❡❞ ❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥✳❚❆●❊ ❢❡❛t✉r❡s s❡✈❡r❛❧ ✭♣❛rt✐❛❧❧②✮ t❛❣❣❡❞ ♣r❡❞✐❝t♦r t❛❜❧❡s✳ ❚❤❡ t❛❜❧❡s ❛r❡ ✐♥❞❡①❡❞ ✇✐t❤ ✐♥❝r❡❛s✐♥❣❣❧♦❜❛❧ ❤✐st♦r② ❧❡♥❣t❤✱ t❤❡ s❡t ♦❢ ❤✐st♦r② ❧❡♥❣t❤s ❢♦r♠✐♥❣ ❛ ❣❡♦♠❡tr✐❝ s❡r✐❡s✳ ❚❤❡ ♣r❡❞✐❝t✐♦♥✐s ❣✐✈❡♥ ❜② t❤❡ ❧♦♥❣❡st ❤✐tt✐♥❣ t❛❜❧❡✳ ❚❆●❊ ♣r❡❞✐❝t♦rs ❢❡❛t✉r✐♥❣ ♠❛①✐♠✉♠ ❤✐st♦r② ❧❡♥❣t❤ ♦❢s❡✈❡r❛❧ ❤✉♥❞r❡❞s ♦❢ ❜✐ts ❝❛♥ ❜❡ ✐♠♣❧❡♠❡♥t❡❞ ✐♥ r❡❛❧ ❤❛r❞✇❛r❡ ❛t ❛♥ ❛✛♦r❞❛❜❧❡ st♦r❛❣❡ ❝♦st✳❚❤❡r❡❢♦r❡ ❚❆●❊ ✐s ❛❜❧❡ t♦ ❝❛♣t✉r❡ ❝♦rr❡❧❛t✐♦♥ ❜❡t✇❡❡♥ ❜r❛♥❝❤❡s ❞✐st❛♥t ❜② s❡✈❡r❛❧ ❤✉♥❞r❡❞s ♦r❡✈❡♥ t❤♦✉s❛♥❞s ♦❢ ✐♥str✉❝t✐♦♥s✳

❘❘ ♥➦ ✽✹✵✺

Page 11: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✽ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

❋♦r ❛ ❧♦♥❣ t✐♠❡✱ ✐♥❞✐r❡❝t ❜r❛♥❝❤ t❛r❣❡ts ✇❡r❡ ♥❛✐✈❡❧② ♣r❡❞✐❝t❡❞ ❜② t❤❡ ❜r❛♥❝❤ t❛r❣❡t ❜✉✛❡r✱✐✳❡✳ t❤❡ t❛r❣❡t ♦❢ t❤❡ ❧❛st ♦❝❝✉rr❡♥❝❡ ♦❢ t❤❡ ❜r❛♥❝❤ ✇❛s ♣r❡❞✐❝t❡❞✳ ❍♦✇❡✈❡r t❤❡ ❛❝❝✉r❛❝② ♦❢❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs ✐s ❜❡❝♦♠✐♥❣ ❤✐❣❤❡r ❛♥❞ ❤✐❣❤❡r✳ ❚❤❡ ♣❡♥❛❧t✐❡s ❢♦r ❛ ♠✐s♣r❡❞✐❝t✐♦♥♦♥ ❛ ❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ♦r ♦♥ ❛♥ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ❛r❡ ✐♥ t❤❡ s❛♠❡ r❛♥❣❡✳ ❚❤❡r❡❢♦r❡ ❡✈❡♥ ♦♥ ❛♥❛♣♣❧✐❝❛t✐♦♥ ❢❡❛t✉r✐♥❣ ❛ ♠♦❞❡r❛t❡ ❛♠♦✉♥t ♦❢ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s✱ t❤❡ ♠✐s♣r❡❞✐❝t✐♦♥ ♣❡♥❛❧t② ❝♦♥tr✐✲❜✉t✐♦♥ ♦❢ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ♠❛② ❜❡ ✈❡r② s✐❣♥✐✜❝❛♥t ✐❢ ♦♥❡ ♥❡❣❧❡❝ts t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥✳P❛rt✐❝✉❧❛r❧② ♦♥ ❛♣♣❧✐❝❛t✐♦♥s ❢❡❛t✉r✐♥❣ s✇✐t❝❤❡s ✇✐t❤ ♠❛♥② ❝❛s❡ st❛t❡♠❡♥ts✱ ❡✳❣✳ ✐♥t❡r♣r❡t❡rs✱ t❤❡❛❝❝✉r❛❝② ♦❢ t❤✐s ♥❛✐✈❡ ♣r❡❞✐❝t✐♦♥ ✐s q✉✐t❡ ❧♦✇✳ ❚♦ ❧✐♠✐t ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♠✐s♣r❡❞✐❝t✐♦♥s✱ ❈❤❛♥❣ ❡t❛❧✳ ❬✹❪ ♣r♦♣♦s❡ t♦ ❧❡✈❡r❛❣❡ t❤❡ ❣❧♦❜❛❧ ✭❝♦♥❞✐t✐♦♥❛❧✮ ❜r❛♥❝❤ ❤✐st♦r② t♦ ♣r❡❞✐❝t t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤t❛r❣❡ts✱ ✐✳❡✳ ❛ ❣s❤❛r❡✲❧✐❦❡ ✐♥❞❡①❡❞ t❛❜❧❡ ✐s ✉s❡❞ t♦ st♦r❡ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ t❛r❣❡ts✳ ❍♦✇❡✈❡r❉r✐❡s❡♥ ❛♥❞ ❍♦❧③❧❡ ❬✽❪ ♣♦✐♥t ♦✉t t❤❛t ♠❛♥② ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❛r❡ ❝♦rr❡❝t❧② ♣r❡❞✐❝t❡❞ ❜② ❛ s✐♠♣❧❡P❈✲❜❛s❡❞ t❛❜❧❡✱ s✐♥❝❡ ❛t ❡①❡❝✉t✐♦♥ t✐♠❡ t❤❡② ❢❡❛t✉r❡ ❛ s✐♥❣❧❡ ❞②♥❛♠✐❝ t❛r❣❡t✳ ❚❤❡② ♣r♦♣♦s❡❞ t❤❡❝❛s❝❛❞❡❞ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♣r❡❞✐❝t♦r t♦ ❛ss♦❝✐❛t❡ ❛ P❈✲❜❛s❡❞ t❛❜❧❡ ✭♠✐❣❤t ❜❡ t❤❡ ❜r❛♥❝❤ t❛r❣❡t❜✉✛❡r✮ ✇✐t❤ ❛ t❛❣❣❡❞ ✭P❈✰❣❧♦❜❛❧ ❜r❛♥❝❤ ❤✐st♦r②✮ ✐♥❞❡①❡❞ t❛❜❧❡✳

▼♦r❡ r❡❝❡♥t❧②✱ ❙❡③♥❡❝ ❛♥❞ ▼✐❝❤❛✉❞ ❬✸✶❪ ❞❡r✐✈❡❞ ■❚❚❆●❊ ❢r♦♠ t❤❡✐r ❚❆●❊ ♣r❡❞✐❝t♦r✳ ■♥st❡❛❞♦❢ s✐♠♣❧❡ ❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ❞✐r❡❝t✐♦♥s✱ ■❚❚❆●❊ st♦r❡s t❤❡ ❝♦♠♣❧❡t❡ t❛r❣❡t ✐♥ t❛❣❣❡❞ t❛❜❧❡s✐♥❞❡①❡❞ ✇✐t❤ ✐♥❝r❡❛s✐♥❣ ❤✐st♦r② ❧❡♥❣t❤s ✇❤✐❝❤ ❢♦r♠ ❛ ❣❡♦♠❡tr✐❝ s❡r✐❡s✳ ❆s ❢♦r ❚❆●❊✱ t❤❡ ❤✐tt✐♥❣t❛❜❧❡ ❢❡❛t✉r✐♥❣ t❤❡ ❧♦♥❣❡st ❤✐st♦r② ❧❡♥❣t❤ ♣r♦✈✐❞❡s t❤❡ ♣r❡❞✐❝t✐♦♥✳ ❆t t❤❡ r❡❝❡♥t ✸r❞ ❝❤❛♠♣✐♦♥s❤✐♣♦♥ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ✐♥ ✷✵✶✶✷✱ ❚❆●❊✲❜❛s❡❞ ✭r❡s♣✳ ■❚❚❆●❊✲❜❛s❡❞✮ ♣r❡❞✐❝t♦rs ✇❡r❡ s❤♦✇♥ t♦♦✉t♣❡r❢♦r♠ ♦t❤❡r ❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs ✭r❡s♣✳ ✐♥❞✐r❡❝t ❥✉♠♣ ♣r❡❞✐❝t♦rs✮✳

✸✳✷ ■♥t✉✐t✐♦♥ ♦❢ ■❚❚❆●❊ ♦♥ ✐♥t❡r♣r❡t❡rs

❚❆●❊ ♣❡r❢♦r♠s ✈❡r② ✇❡❧❧ ❛t ♣r❡❞✐❝t✐♥❣ t❤❡ ❜❡❤❛✈✐♦r ♦❢ ❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤❡s t❤❛t ❡①❤✐❜✐t r❡♣❡t✲✐t✐✈❡ ♣❛tt❡r♥s ❛♥❞ ✈❡r② ❧♦♥❣ ♣❛tt❡r♥s✳ ❚②♣✐❝❛❧❧② ✇❤❡♥ ❛ ❣✐✈❡♥ ✭♠❛②❜❡ ✈❡r② ❧♦♥❣✮ s❡q✉❡♥❝❡ ♦❢❧❡♥❣t❤ ▲ ❜r❛♥❝❤❡s ❜❡❢♦r❡ t❤❡ ❝✉rr❡♥t ♣r♦❣r❛♠ ❝♦✉♥t❡r ✇❛s ❛❧✇❛②s ❜✐❛s❡❞ ✐♥ ❛ ❞✐r❡❝t✐♦♥ ✐♥ t❤❡♣❛st✱ t❤❡♥ ❚❆●❊ ✕ ♣r♦✈✐❞❡❞ ✐t ❢❡❛t✉r❡s s✉✣❝✐❡♥t ♥✉♠❜❡r ♦❢ ❡♥tr✐❡s ✕ ✇✐❧❧ ❝♦rr❡❝t❧② ♣r❡❞✐❝t t❤❡❜r❛♥❝❤✱ ✐♥❞❡♣❡♥❞❡♥t❧② ♦❢ t❤❡ ♠✐♥✐♠✉♠ ❤✐st♦r② ❧❡ ♥❡❡❞❡❞ t♦ ❞✐s❝r✐♠✐♥❛t❡ ❜❡t✇❡❡♥ t❤❡ ❡✛❡❝t✐✈❡❜✐❛s❡❞ ♣❛t❤ ❛♥❞ ❛♥♦t❤❡r ♣❛t❤✳ ❚❤✐s ♠✐♥✐♠✉♠ ♣❛t❤ ✐s ❝❛♣t✉r❡❞ ❜② ♦♥❡ ♦❢ t❤❡ t❛❜❧❡s ✐♥❞❡①❡❞ ✇✐t❤❤✐st♦r② ❧♦♥❣❡r t❤❛♥ ❧❡✳ ❲✐t❤ ❚❆●❊✱ t❤❡ ♦✉t❝♦♠❡s ♦❢ ❜r❛♥❝❤❡s ❝♦rr❡❧❛t❡❞ ✇✐t❤ ❝❧♦s❡ ❜r❛♥❝❤❡s❛r❡ ❝❛♣t✉r❡❞ ❜② s❤♦rt ❤✐st♦r② ❧❡♥❣t❤ t❛❜❧❡s✱ ❛♥❞ t❤❡ ♦✉t❝♦♠❡s ♦❢ ❜r❛♥❝❤❡s ❝♦rr❡❧❛t❡❞ ✇✐t❤ ✈❡r②❞✐st❛♥t ❜r❛♥❝❤❡s ❛r❡ ❝❛♣t✉r❡❞ ❜② ❧♦♥❣ ❤✐st♦r② ❧❡♥❣t❤ t❛❜❧❡s✳ ❚❤✐s ♦♣t✐♠✐③❡s t❤❡ ❛♣♣❧✐❝❛t✐♦♥❢♦♦t♣r✐♥t ♦♥ t❤❡ ♣r❡❞✐❝t♦r✳ ❚❤❡ s❛♠❡ ❛♣♣❧✐❡s ❢♦r ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s✳

❚✇♦ ♣♦ss✐❜✐❧✐t✐❡s ✇❡r❡ ❡①♣❧♦r❡❞ ❢♦r ■❚❚❆●❊ ✐♥ ♣r❡✈✐♦✉s st✉❞✐❡s✿ ❣❧♦❜❛❧ ❤✐st♦r② ♦❢ ❛❧❧ ❜r❛♥❝❤❡s✭❝♦♥❞✐t✐♦♥❛❧✱ ✐♥❞✐r❡❝ts✱ r❡t✉r♥s✳✳✳✮ ❬✸✶❪ ♦r ❣❧♦❜❛❧ ❤✐st♦r② ♦❢ ♦♥❧② ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❛♥❞ ❝❛❧❧s ❬✷✽❪✳◆♦♥❡ ♦❢ t❤❡ s♦❧✉t✐♦♥s ✇❛s ❝❧❡❛r❧② ❜❡tt❡r t❤❛♥ t❤❡ ♦t❤❡r ♦♥ t❤❡ ♦✈❡r❛❧❧ t❡st❡❞ s✉✐t❡s ♦❢ ❜❡♥❝❤♠❛r❦s✳❍♦✇❡✈❡r ♦♥ ❛♣♣❧✐❝❛t✐♦♥s s✉❝❤ ❛s ✐♥t❡r♣r❡t❡rs ✇❤❡r❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❢♦r♠ t❤❡ s❦❡❧❡t♦♥ ♦❢ t❤❡❛♣♣❧✐❝❛t✐♦♥ ❝♦♥tr♦❧ ♣❛t❤✱ ✇❡ ♣r✐✈✐❧❡❣❡ ✉s✐♥❣ ❣❧♦❜❛❧ ❤✐st♦r② ♦❢ ♦♥❧② ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❛♥❞ ❝❛❧❧s✳❲❡ ♣r♦✈✐❞❡ ❜❡❧♦✇ t❤❡ ❡①♣❧❛♥❛t✐♦♥ ♦❢ ✇❤② ■❚❚❆●❊ s❤♦✉❧❞ ❜❡ ❛❜❧❡ t♦ ♣r❡❞✐❝t ✇✐t❤ ❛ ✈❡r② ❤✐❣❤❛❝❝✉r❛❝② t❤❡ ♠❛✐♥ s✇✐t❝❤ ✐♥ t❤❡ ✐♥t❡r♣r❡t❡r ❧♦♦♣✳

❲❤❡♥ ❝♦♥s✐❞❡r✐♥❣ ✐♥t❡r♣r❡t❡rs✱ t❤❡ ❡①❡❝✉t❡❞ ♣❛t❤ ✐s ❡ss❡♥t✐❛❧❧② t❤❡ ♠❛✐♥ ❧♦♦♣ ❛r♦✉♥❞ t❤❡❡①❡❝✉t✐♦♥ ♦❢ ❡❛❝❤ ❜②t❡❝♦❞❡✳ ❲❤❡♥ r✉♥♥✐♥❣ ♦♥ t❤❡ s✉❝❝❡ss✐♦♥ ♦❢ ❜❛s✐❝ ❜❧♦❝❦ ❜②t❡❝♦❞❡s✱ t❤❡❡①❡❝✉t✐♦♥ ♣❛tt❡r♥ s❡❡♥ ❜② t❤❡ s✇✐t❝❤ r❡✢❡❝ts t❤❡ ❝♦♥tr♦❧ ♣❛t❤ ✐♥ t❤❡ ✐♥t❡r♣r❡t❡❞ ❛♣♣❧✐❝❛t✐♦♥✿ ✐♥♣r❛❝t✐❝❡ t❤❡ ❤✐st♦r② ♦❢ t❤❡ r❡❝❡♥t t❛r❣❡ts ♦❢ t❤❡ ❥✉♠♣ ✐s t❤❡ ❤✐st♦r② ♦❢ ❜②t❡❝♦❞❡ ♦♣❝♦❞❡s✳ ❋♦r✐♥st❛♥❝❡✱ ✐❢ t❤✐s ❤✐st♦r② ✐s ✲❧♦❛❞ ❧♦❛❞ ❛❞❞ ❧♦❛❞ ♠✉❧ st♦r❡ ❛❞❞✲ ❛♥❞ ✐❢ t❤✐s s❡q✉❡♥❝❡ ✐s ✉♥✐q✉❡✐♥ t❤❡ ❜②t❡❝♦❞❡ ♦❢ t❤❡ ✐♥t❡r♣r❡t❡❞ ❛♣♣❧✐❝❛t✐♦♥✱ t❤❡♥ t❤❡ ♥❡①t ❜②t❡❝♦❞❡ ♦♣❝♦❞❡ ✐s ❛❧s♦ ✉♥✐q✉❡❧②❞❡t❡r♠✐♥❡❞✳ ❚❤✐s ❤✐st♦r② ✐s ✐♥ s♦♠❡ s❡♥s❡ ❛ s✐❣♥❛t✉r❡ ♦❢ t❤❡ ✈✐rt✉❛❧ ♣r♦❣r❛♠ ❝♦✉♥t❡r✱ ✐t ❞❡t❡r♠✐♥❡st❤❡ ♥❡①t ✈✐rt✉❛❧ ♣r♦❣r❛♠ ❝♦✉♥t❡r✳

✷❤tt♣✿✴✴✇✇✇✳❥✐❧♣✳♦r❣✴❥✇❛❝✲✷✴

■♥r✐❛

Page 12: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✾

❲❤❡♥ r✉♥♥✐♥❣ ✐♥t❡r♣r❡t❡rs✱ ■❚❚❆●❊ ✐s ❛❜❧❡ t♦ ❝❛♣t✉r❡ s✉❝❤ ♣❛tt❡r♥s ❛♥❞ ❡✈❡♥ ✈❡r② ❧♦♥❣ ♣❛t✲t❡r♥s s♣❛♥♥✐♥❣ ♦✈❡r s❡✈❡r❛❧ ❜②t❡❝♦❞❡ ❜❛s✐❝ ❜❧♦❝❦s✱ ✐✳❡✳ t♦ ✏♣r❡❞✐❝t✑ t❤❡ ✈✐rt✉❛❧ ♣r♦❣r❛♠ ❝♦✉♥t❡r✳❇②t❡❝♦❞❡ ❜r❛♥❝❤❡s ♣r❡s❡♥t t❤❡ ♣❛rt✐❝✉❧❛r✐t② t♦ ❢❡❛t✉r❡ s❡✈❡r❛❧ ♣♦ss✐❜❧❡ s✉❝❝❡ss♦rs✳ ❍♦✇❡✈❡r✱ ✐❢ t❤❡✐♥t❡r♣r❡t❡❞ ❛♣♣❧✐❝❛t✐♦♥ ✐s ❝♦♥tr♦❧✲✢♦✇ ♣r❡❞✐❝t❛❜❧❡✱ t❤❡ ❤✐st♦r② ❛❧s♦ ❝❛♣t✉r❡s t❤❡ ❝♦♥tr♦❧✲✢♦✇ ❤✐s✲t♦r② ♦❢ t❤❡ ✐♥t❡r♣r❡t❡❞ ❛♣♣❧✐❝❛t✐♦♥✳ ❚❤❡r❡❢♦r❡ ■❚❚❆●❊ ✇✐❧❧ ❡✈❡♥ ♣r❡❞✐❝t ❝♦rr❡❝t❧② t❤❡ s✉❝❝❡ss♦r♦❢ t❤❡ ❜②t❡❝♦❞❡ ❜r❛♥❝❤❡s✳

✹ ❊①♣❡r✐♠❡♥t❛❧ ❙❡t✉♣

❚❤✐s s❡❝t✐♦♥ ♣r❡s❡♥ts ♦✉r ❡①♣❡r✐♠❡♥t❛❧ s❡t✉♣✱ ❞❡t❛✐❧✐♥❣ ✐♥ ♣❛rt✐❝✉❧❛r t❤❡ ❝❤♦s❡♥ ✐♥t❡r♣r❡t❡rs ❛♥❞❜❡♥❝❤♠❛r❦s✳ ❲❡ ❞✐s❝✉ss ❤♦✇ ❞❛t❛ ✐s ❝♦❧❧❡❝t❡❞ ❢♦r ❛❝t✉❛❧ ❤❛r❞✇❛r❡ ❛♥❞ s✐♠✉❧❛t✐♦♥✱ ❛♥❞ ✇❡ ♠❛❦❡s✉r❡ t❤❛t ❜♦t❤ ❛♣♣r♦❛❝❤❡s ❛r❡ ❝♦❤❡r❡♥t✳

✹✳✶ ■♥t❡r♣r❡t❡rs ❛♥❞ ❇❡♥❝❤♠❛r❦s

❲❡ ❡①♣❡r✐♠❡♥t❡❞ ✇✐t❤ s✇✐t❝❤✲❜❛s❡❞ ✭♥♦ t❤r❡❛❞✐♥❣✮ ✐♥t❡r♣r❡t❡rs ❢♦r t❤r❡❡ ❞✐✛❡r❡♥t ✐♥♣✉t ❧❛♥✲❣✉❛❣❡s✿ ❏❛✈❛s❝r✐♣t✱ P②t❤♦♥✱ ❛♥❞ t❤❡ ❈♦♠♠♦♥ ▲❛♥❣✉❛❣❡ ■♥❢r❛str✉❝t✉r❡ ✭♦r ❈▲■✱ ❛✳❦✳❛✳ t❤❡ ❝♦r❡♦❢ ✳◆❊❚✮✱ ❛♥❞ s❡✈❡r❛❧ ✐♥♣✉ts ❢♦r ❡❛❝❤ ✐♥t❡r♣r❡t❡r✳ ❲❡ ✉s❡❞ ❙✉♥s♣✐❞❡r ✶✳✵ ❢♦r ❏❛✈❛s❝r✐♣t✱ t❤❡❯♥❧❛❞❡♥ ❙✇❛❧❧♦✇ ❇❡♥❝❤♠❛r❦s ❢♦r P②t❤♦♥✱ ❛♥❞ ❙P❊❈ ✷✵✵✵ ✭tr❛✐♥ ✐♥♣✉t s❡t✮ ❢♦r ❈▲■✳ ❙❡❡ ❚❛❜❧❡✶ ❢♦r ❛♥ ❡①❤❛✉st✐✈❡ ❧✐st ♦❢ ❜❡♥❝❤♠❛r❦s✳

❲❡ ✉s❡❞ P②t❤♦♥ ✸✳✸✳✷✱ t❤❡ ❧❛t❡st r❡❧❡❛s❡ ♦❢ t❤❡ ✸✳① s❡r✐❡s ❛t t❤❡ t✐♠❡ ♦❢ t❤✐s ✇r✐t✐♥❣✳ ❚❤❡♠♦t✐✈❛t✐♦♥ ❡①♣❡r✐♠❡♥t ♦❢ ❙❡❝t✐♦♥ ✷ ❛❧s♦ ✉s❡s P②t❤♦♥ ✷✳✼✳✺✱ t❤❡ ❧❛t❡st r❡❧❡❛s❡ ♦❢ t❤❡ ✷✳① s❡r✐❡s✳ ❯♥✲❧❛❞❡♥ ❙✇❛❧❧♦✇ ❜❡♥❝❤♠❛r❦s ✇❡r❡ r✉♥ ✇✐t❤ t❤❡ ✢❛❣ ✲✲r✐❣♦r♦✉s✳ ❲❡ ❡①❝❧✉❞❡❞ ✐t❡r❛t✐✈❡❴❝♦✉♥t✱s♣❡❝tr❛❧❴♥♦r♠ ❛♥❞ t❤r❡❛❞❡❞❴❝♦✉♥t ❢r♦♠ t❤❡ ❯♥❧❛❞❡♥ ❙✇❛❧❧♦✇ s✉✐t❡ ❜❡❝❛✉s❡ t❤❡② ✇❡r❡ ♥♦t♣r♦♣❡r❧② ❤❛♥❞❧❡❞ ❜② ♦✉r ♠❡❛s✉r❡♠❡♥t s❡t✉♣✳

❏❛✈❛s❝r✐♣t ❡①♣❡r✐♠❡♥ts r❡❧② ♦♥ ❙♣✐❞❡r▼♦♥❦❡② ✶✳✽✳✺✳ ❲❡ ♠♦❞✐✜❡❞ t❤❡ ❧♦♦♣ ❜♦✉♥❞s ♦❢ s♦♠❡ ♦❢t❤❡ ❏❛✈❛s❝r✐♣t ❙✉♥s♣✐❞❡r ❜❡♥❝❤♠❛r❦s t♦ ❣❡t ❧♦♥❣❡r r✉♥t✐♠❡s✱ ❛♥❞ r❡❞✉❝❡ t✐♠✐♥❣ ✐♥❛❝❝✉r❛❝✐❡s✳

❲❡ ✉s❡❞ ●❈❈✹❈▲■ ❬✺❪ t♦ ❝♦♠♣✐❧❡ t❤❡ ❙P❊❈ ✷✵✵✵ ❜❡♥❝❤♠❛r❦s✳ ●❈❈✹❈▲■ ✐s ❛ ♣♦rt ♦❢ ●❈❈t❤❛t ❣❡♥❡r❛t❡s ❈▲■ ❜②t❡❝♦❞❡ ❢r♦♠ t❤❡ ❈ ❧❛♥❣✉❛❣❡✳ ❚❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r ✐s ❛ ♣r♦♣r✐❡t❛r② ✈✐rt✉❛❧♠❛❝❤✐♥❡ t❤❛t ❡①❡❝✉t❡s ❛♣♣❧✐❝❛t✐♦♥s ✇r✐tt❡♥ ✐♥ t❤❡ ❈▲■ ❢♦r♠❛t✳ ▼♦st ♦❢ st❛♥❞❛r❞ ❈ ✐s s✉♣♣♦rt❡❞❜② t❤❡ ❝♦♠♣✐❧❡r ❛♥❞ ✐♥t❡r♣r❡t❡r✱ ❤♦✇❡✈❡r ❛ ❢❡✇ ❢❡❛t✉r❡s ❛r❡ ♠✐ss✐♥❣✱ s✉❝❤ ❛s ❯◆■❳ s✐❣♥❛❧s✱s❡t❥♠♣✱ ♦r s♦♠❡ P❖❙■❳ s②st❡♠ ❝❛❧❧s✳ ❚❤✐s ❡①♣❧❛✐♥s ✇❤② ❛ ❢❡✇ ❜❡♥❝❤♠❛r❦s ❛r❡ ♠✐ss✐♥❣ ✭♥❛♠❡❧②✿✶✼✻✳❣❝❝✱ ✷✺✸✳♣❡r❧❜♠❦✱ ✷✺✹✳❣❛♣✱ ✷✺✺✳✈♦rt❡①✱ ✸✵✵✳t✇♦❧❢✮✳ ❚❤✐s ✐s ❛❧s♦ t❤❡ r❡❛s♦♥ ❢♦r ♥♦t ✉s✐♥❣❙P❊❈ ✷✵✵✻✿ ♠♦r❡ ✉♥s✉♣♣♦rt❡❞ ❈ ❢❡❛t✉r❡s ❛r❡ ✉s❡❞✱ ❛♥❞ ♥❡✐t❤❡r ❈✰✰ ♥♦r ❋♦rtr❛♥ ❛r❡ s✉♣♣♦rt❡❞✳

▼♦st ♦❢ t❤❡ ❜❡♥❝❤♠❛r❦s ❛r❡ r✉♥ t♦ ❝♦♠♣❧❡t✐♦♥ ✭✐♥❝❧✉❞✐♥❣ ❤✉♥❞r❡❞s ♦❢ ❤♦✉rs ♦❢ ❈P❯ ❢♦rt❤❡ s✐♠✉❧❛t✐♦♥✮✳ ❲❡ st♦♣♣❡❞ t❤❡ ❚❆●❊ s✐♠✉❧❛t✐♦♥ ❛t ❛ tr✐❧❧✐♦♥ ✐♥str✉❝t✐♦♥s ❢♦r ❤❡①✐♦♠✷ ❛♥❞✶✻✹✳❣③✐♣✱ ✶✼✼✳♠❡s❛✱ ❛♥❞ ✶✽✽✳❛♠♠♣✳

❲✐t❤ t❤❡ ❡①❝❡♣t✐♦♥ ♦❢ P②t❤♦♥ ♦♥ t❤❡ ❈♦r❡✷ ♠❛❝❤✐♥❡✱ t❤❡ ✐♥t❡r♣r❡t❡rs ❛r❡ ❝♦♠♣✐❧❡❞ ✇✐t❤ ■♥t❡❧✐❝❝ ✈❡rs✐♦♥ ✶✸✱ ✉s✐♥❣ ✢❛❣ ✲①❍♦st t❤❛t t❛r❣❡ts t❤❡ ❤✐❣❤❡st ■❙❆ ❛♥❞ ♣r♦❝❡ss♦r ❛✈❛✐❧❛❜❧❡ ♦♥ t❤❡❝♦♠♣✐❧❛t✐♦♥ ❤♦st ♠❛❝❤✐♥❡✳ ❇❡❝❛✉s❡ ❝♦♠♣✐❧❛t✐♦♥ ♦❢ P②t❤♦♥ ♦♥ t❤❡ ❈♦r❡✷ ❢❛✐❧❡❞ ✸✱ ✇❡ ✉s❡❞ ●❈❈✇✐t❤ t❤❡ s✐♠✐❧❛r ✢❛❣ ✲♠❛r❝❤❂♥❛t✐✈❡✳ ❇✉✐❧❞ s②st❡♠s ❛r❡ ♦t❤❡r✇✐s❡ ✉♥♠♦❞✐✜❡❞✳

❙♦♠❡ ❝♦♠♣✐❧❡rs ❢♦r❝❡ t❤❡ ❛❧✐❣♥♠❡♥t ♦❢ ❡❛❝❤ ❝❛s❡ ❡♥tr② t♦ ❛ ❝❛❝❤❡ ❧✐♥❡✱ ♣r❡s✉♠❛❜❧② ✐♥ ❛♥❛tt❡♠♣t t♦ ✜t s❤♦rt ❡♥tr✐❡s t♦ ❛ s✐♥❣❧❡ ❧✐♥❡✱ t❤✉s ✐♠♣r♦✈✐♥❣ t❤❡ ♣❡r❢♦r♠❛♥❝❡✳ ❚❤❡ ❞♦✇♥s✐❞❡ ✐st❤❛t ♠❛♥② ♠♦r❡ t❛r❣❡ts ♦❢ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ❛❧✐❛s ✐♥ t❤❡ ♣r❡❞✐❝t♦r ❜❡❝❛✉s❡ ❢❡✇❡r ❜✐ts ❝❛♥ ❜❡✉s❡❞ t♦ ❞✐s❛♠❜✐❣✉❛t❡ t❤❡♠✳ ❱✐s✉❛❧ ✐♥s♣❡❝t✐♦♥ ❝♦♥✜r♠❡❞ t❤❛t t❤✐s ✐s ♥♦t t❤❡ ❝❛s❡ ✐♥ ♦✉r s❡t✉♣✳▼❝❈❛♥❞❧❡ss ❛♥❞ ●r❡❣❣ ❬✶✽❪ ♣r❡✈✐♦✉s❧② r❡♣♦rt❡❞ t❤✐s ♣❤❡♥♦♠❡♥♦♥ ❛♥❞ ❢✉rt❤❡r ❞❡✈❡❧♦♣❡❞ ❛ t❡❝❤✲♥✐q✉❡ t❤❛t ♠♦❞✐✜❡s t❤❡ ❛❧✐❣♥♠❡♥t ♦❢ ✐♥❞✐✈✐❞✉❛❧ ❝❛s❡ ❡♥tr✐❡s t♦ ✐♠♣r♦✈❡ t❤❡ ♦✈❡r❛❧❧ ♣❡r❢♦r♠❛♥❝❡✳

✸❆ st❛t✐❝❴❛ss❡rt ✐s tr✐❣❣❡r❡❞ ✇❤❡♥ ❝❤❡❝❦✐♥❣ t❤❡ s✐③❡ ♦❢ ❛ ❞❛t❛ str✉❝t✉r❡✳

❘❘ ♥➦ ✽✹✵✺

Page 13: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✶✵ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

❚❛❜❧❡ ✶✿ ❇❡♥❝❤♠❛r❦sP②t❤♦♥ r❡❣❡①❴❡✛❜♦t ❝r②♣t♦✲s❤❛✶❝❛❧❧❴♠❡t❤♦❞ r❡❣❡①❴✈✽ ❞❛t❡✲❢♦r♠❛t✲t♦❢t❡❝❛❧❧❴♠❡t❤♦❞❴s❧♦ts r✐❝❤❛r❞s ❞❛t❡✲❢♦r♠❛t✲①♣❛r❜❝❛❧❧❴♠❡t❤♦❞❴✉♥❦♥♦✇♥ s✐❧❡♥t❴❧♦❣❣✐♥❣ ♠❛t❤✲❝♦r❞✐❝❝❛❧❧❴s✐♠♣❧❡ s✐♠♣❧❡❴❧♦❣❣✐♥❣ ♠❛t❤✲♣❛rt✐❛❧✲s✉♠s❝❤❛♦s t❡❧❝♦ ♠❛t❤✲s♣❡❝tr❛❧✲♥♦r♠❞❥❛♥❣♦❴✈✷ ✉♥♣❛❝❦❴s❡q✉❡♥❝❡ r❡❣❡①♣✲❞♥❛❢❛♥♥❦✉❝❤ str✐♥❣✲❜❛s❡✻✹❢❛st♣✐❝❦❧❡ ❏❛✈❛s❝r✐♣t str✐♥❣✲❢❛st❛❢❛st✉♥♣✐❝❦❧❡ ✸❞✲❝✉❜❡ str✐♥❣✲t❛❣❝❧♦✉❞✢♦❛t ✸❞✲♠♦r♣❤ str✐♥❣✲✉♥♣❛❝❦✲❝♦❞❡❢♦r♠❛tt❡❞❴❧♦❣❣✐♥❣ ✸❞✲r❛②tr❛❝❡ str✐♥❣✲✈❛❧✐❞❛t❡✲✐♥♣✉t❣♦ ❛❝❝❡ss✲❜✐♥❛r②✲tr❡❡s ❈▲■❤❡①✐♦♠✷ ❛❝❝❡ss✲❢❛♥♥❦✉❝❤ ✶✻✹✳❣③✐♣❥s♦♥❴❞✉♠♣❴✈✷ ❛❝❝❡ss✲♥❜♦❞② ✶✼✺✳✈♣r❥s♦♥❴❧♦❛❞ ❛❝❝❡ss✲♥s✐❡✈❡ ✶✼✼✳♠❡s❛♠❡t❡♦r❴❝♦♥t❡st ❜✐t♦♣s✲✸❜✐t✲❜✐ts✲✐♥✲❜②t❡ ✶✼✾✳❛rt♥❜♦❞② ❜✐t♦♣s✲❜✐ts✲✐♥✲❜②t❡ ✶✽✶✳♠❝❢♥q✉❡❡♥s ❜✐t♦♣s✲❜✐t✇✐s❡✲❛♥❞ ✶✽✸✳❡q✉❛❦❡♣❛t❤❧✐❜ ❜✐t♦♣s✲♥s✐❡✈❡✲❜✐ts ✶✽✻✳❝r❛❢t②♣✐❞✐❣✐ts ❝♦♥tr♦❧✢♦✇✲r❡❝✉rs✐✈❡ ✶✽✽✳❛♠♠♣r❛②tr❛❝❡ ❝r②♣t♦✲❛❡s ✶✾✼✳♣❛rs❡rr❡❣❡①❴❝♦♠♣✐❧❡ ❝r②♣t♦✲♠❞✺ ✷✺✻✳❜③✐♣✷

❲❡ tr✐❡❞ t♦ ♠❛♥✉❛❧❧② ❝❤❛♥❣❡ t❤❡ ❛❧✐❣♥♠❡♥t ♦❢ t❤❡ ❝❛s❡ ❡♥tr✐❡s ✐♥ ✈❛r✐♦✉s ✇❛②s✱ ❛♥❞ ♦❜s❡r✈❡❞ ♥♦❞✐✛❡r❡♥❝❡ ✐♥ ♣❡r❢♦r♠❛♥❝❡✳

✹✳✷ ❇r❛♥❝❤ Pr❡❞✐❝t♦rs

❲❡ ❡①♣❡r✐♠❡♥t❡❞ ✇✐t❤ ❜♦t❤ ❝♦♠♠❡r❝✐❛❧❧② ❛✈❛✐❧❛❜❧❡ ❤❛r❞✇❛r❡ ❛♥❞ r❡❝❡♥t ♣r♦♣♦s❛❧s ✐♥ t❤❡ ❧✐t❡r❛✲t✉r❡✳ ❙❡❝t✐♦♥ ✹✳✷✳✸ ❞✐s❝✉ss❡s t❤❡ ❝♦❤❡r❡♥❝❡ ♦❢ ❛❝t✉❛❧ ❛♥❞ s✐♠✉❧❛t❡❞ r❡s✉❧ts✳

✹✳✷✳✶ ❊①✐st✐♥❣ ❍❛r❞✇❛r❡ ✕ P❡r❢♦r♠❛♥❝❡ ❈♦✉♥t❡rs

❇r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ❞❛t❛ ✐s ❝♦❧❧❡❝t❡❞ ❢r♦♠ t❤❡ P▼❯ ✭♣❡r❢♦r♠❛♥❝❡ ♠♦♥✐t♦r✐♥❣ ✉♥✐t✮ ♦♥ ❛❝t✉❛❧◆❡❤❛❧❡♠ ✭■♥t❡❧ ❳❡♦♥ ❈P❯ ❲✸✺✺✵ ✸✳✵✼●❍③✮ ❛♥❞ ❙❛♥❞② ❇r✐❞❣❡ ✭■♥t❡❧ ❈♦r❡ ✐✼✲✷✻✷✵▼ ✷✳✼✵●❍③✮❛r❝❤✐t❡❝t✉r❡s r✉♥♥✐♥❣ ▲✐♥✉①✳ ❇♦t❤ ♣r♦✈✐❞❡ ❝♦✉♥t❡rs ❢♦r ❝②❝❧❡s✱ r❡t✐r❡❞ ✐♥str✉❝t✐♦♥s✱ r❡t✐r❡❞ ❜r❛♥❝❤✐♥str✉❝t✐♦♥s✱ ♠✐s♣r❡❞✐❝t❡❞ ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s✱ ❜✉t ♦♥❡ ❝❛♥♥♦t ❞✐s❝r✐♠✐♥❛t❡ ❝♦♥❞✐t✐♦♥❛❧ ❛♥❞ ✐♥✲❞✐r❡❝t ❜r❛♥❝❤❡s✳

❲❡ r❡❧✐❡❞ ♦♥ t❤❡ ❚✐♣t♦♣ t♦♦❧ ❬✷✺❪ t♦ ❝♦❧❧❡❝t ♣❡r❢♦r♠❛♥❝❡ ❞❛t❛ ❢r♦♠ t❤❡ P▼❯✳ ❊✈❡♥ts ❛r❡❝♦❧❧❡❝t❡❞ ♣❡r ♣r♦❝❡ss ✭♥♦t ♠❛❝❤✐♥❡ ✇✐❞❡✮ ♦♥ ❛♥ ♦t❤❡r✇✐s❡ ✉♥❧♦❛❞❡❞ ✇♦r❦st❛t✐♦♥✳ ❖♥❧② ✉s❡r✲❧❛♥❞❡✈❡♥ts ❛r❡ ❝♦❧❧❡❝t❡❞ ✭s❡❡ ❛❧s♦ ❞✐s❝✉ss✐♦♥ ✐♥ ❙❡❝t✐♦♥ ✹✳✷✳✸✮✳

❯♥❢♦rt✉♥❛t❡❧②✱ ♥❡✐t❤❡r ❛r❝❤✐t❡❝t✉r❡ ❤❛s ❤❛r❞✇❛r❡ ❝♦✉♥t❡rs ❢♦r r❡t✐r❡❞ ✐♥❞✐r❡❝t ❥✉♠♣s ❬✶✹❪✳❙❛♥❞② ❇r✐❞❣❡ ❤❛s ❛ ❝♦✉♥t❡r ❢♦r ✏s♣❡❝✉❧❛t✐✈❡ ❛♥❞ r❡t✐r❡❞ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s✑✳ ■t t✉r♥s ♦✉t t❤❛t♥♦♥✲r❡t✐r❡❞ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❛r❡ r❛r❡✳ ❖♥ t❤❡ ♦♥❡ ❤❛♥❞✱ ✇❡ ❦♥♦✇ t❤❛t t❤❡ ♥✉♠❜❡r ♦❢ r❡t✐r❡❞✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ✐s ❛t ❧❡❛st ❡q✉❛❧ t♦ t❤❡ ♥✉♠❜❡r ♦❢ ❡①❡❝✉t❡❞ ❜②t❡❝♦❞❡s✳ ❖♥ t❤❡ ♦t❤❡r ❤❛♥❞✱ t❤❡✈❛❧✉❡ ♣r♦✈✐❞❡❞ ❜② t❤❡ ❝♦✉♥t❡r ♠❛② ♦✈❡r❡st✐♠❛t❡ t❤❡ ♥✉♠❜❡r ♦❢ r❡t✐r❡❞ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ✐♥ ❝❛s❡♦❢ ✇r♦♥❣ ♣❛t❤ ❡①❡❝✉t✐♦♥✳ ❚❤❛t ✐s✿

nbytecodes ≤ nretired ≤ nspeculative

■♥r✐❛

Page 14: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✶✶

❚❛❜❧❡ ✷✿ ❇r❛♥❝❤ ♣r❡❞✐❝t♦r ♣❛r❛♠❡t❡rsP❛r❛♠❡t❡r ❚❆●❊ ■❚❚❆●❊ ✷ ■❚❚❆●❊ ✶

♠✐♥ ❤✐st♦r② ❧❡♥❣t❤ ✺ ✷ ✷♠❛① ❤✐st♦r② ❧❡♥❣t❤ ✼✺ ✽✵ ✽✵♥✉♠ t❛❜❧❡s ✭◆✮ ✺ ✽ ✽♥✉♠ ❡♥tr✐❡s t❛❜❧❡ T0 ✹✵✾✻ ✷✺✻ ✺✶✷♥✉♠ ❡♥tr✐❡s t❛❜❧❡s T1 − TN−1 ✶✵✷✹ ✻✹ ✶✷✽st♦r❛❣❡ ✭❦✐❧♦❜②t❡s✮ ✽ ❑❇ ✻✳✸✶ ❑❇ ✶✷✳✻✷ ❑❇

♦r ❡q✉✐✈❛❧❡♥t❧②✿

1 ≤nretired

nbytecodes

≤nspeculative

nbytecodes

✇❤❡r❡ nspeculative ✐s ❞✐r❡❝t❧② r❡❛❞ ❢r♦♠ t❤❡ P▼❯✱ ❛♥❞ nbytecodes ✐s ❡❛s✐❧② ♦❜t❛✐♥❡❞ ❢r♦♠ t❤❡✐♥t❡r♣r❡t❡r st❛t✐st✐❝s✳

■♥ ♠♦st ❝❛s❡s ✭❝♦❧✉♠♥ ✐♥❞✴❜❝ ♦❢ ❚❛❜❧❡s ✸✱ ✹✱ ✺✮✱ t❤❡ ✉♣♣❡r ❜♦✉♥❞ ✐s ✈❡r② ❝❧♦s❡ t♦ ✶✱ ❣✉❛r❛♥✲t❡❡✐♥❣ t❤❛t ♥♦♥ r❡t✐r❡❞ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❛r❡ ♥❡❣❧✐❣✐❜❧❡✳ ■♥ t❤❡ r❡♠❛✐♥✐♥❣ ❝❛s❡s✱ ✇❡ ❝♦✉♥t❡❞ t❤❡♥✉♠❜❡r ♦❢ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ✇✐t❤ ❛ ♣✐♥t♦♦❧ ❬✶✼❪ ❛♥❞ ❝♦♥✜r♠❡❞ t❤❛t t❤❡ P▼❯ ❝♦✉♥t❡r ✐s ❛ ❣♦♦❞❡st✐♠❛t❡ ♦❢ r❡t✐r❡❞ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s✳

✹✳✷✳✷ ❚❆●❊ ✕ ❙✐♠✉❧❛t✐♦♥

❲❡ ❛❧s♦ ❡①♣❡r✐♠❡♥t❡❞ ✇✐t❤ ❛ st❛t❡✲♦❢✲t❤❡✲❛rt ❜r❛♥❝❤ ♣r❡❞✐❝t♦r ❢r♦♠ t❤❡ ❧✐t❡r❛t✉r❡✿ ❚❆●❊ ❛♥❞■❚❚❆●❊ ❬✸✶❪✳ ■♥ t❤✐s ❝❛s❡✱ t❤❡ ♣❡r❢♦r♠❛♥❝❡ ✐s ♣r♦✈✐❞❡❞ t❤r♦✉❣❤ s✐♠✉❧❛t✐♦♥ ♦❢ tr❛❝❡s ♣r♦❞✉❝❡❞❜② P✐♥ ❬✶✼❪✳ ❲❡ ✉s❡❞ t✇♦ ✭❚❆●❊✰■❚❚❆●❊✮ ♣r❡❞✐❝t♦r ❝♦♥✜❣✉r❛t✐♦♥s✳ ■♥ ♦✉r r❡♣♦rt❡❞ r❡s✉❧ts❚❆●❊✶ ❛ss✉♠❡s ❛ ✽❑❇ ❚❆●❊ ❛♥❞ ❛ ✶✷✳✻✷ ❑❇ ■❚❚❆●❊✱ ❚❆●❊✷ ❛ss✉♠❡s ❛ ✽❑❇ ❚❆●❊ ❛♥❞ ❛✻✳✸✶ ❑❇ ■❚❚❆●❊✳ ❚❛❜❧❡ ✷ s✉♠♠❛r✐③❡s t❤❡✐r ♣❛r❛♠❡t❡rs✳

✹✳✷✳✸ ❈♦❤❡r❡♥❝❡ ♦❢ ▼❡❛s✉r❡♠❡♥ts

❖✉r ❡①♣❡r✐♠❡♥ts ✐♥✈♦❧✈❡ ❞✐✛❡r❡♥t t♦♦❧s ❛♥❞ ♠❡t❤♦❞♦❧♦❣✐❡s✱ ♥❛♠❡❧② t❤❡ P▼❯ ❝♦❧❧❡❝t❡❞ ❜② t❤❡❚✐♣t♦♣ t♦♦❧ ❬✷✺❪ ♦♥ ❡①✐st✐♥❣ ❤❛r❞✇❛r❡✱ ❛s ✇❡❧❧ ❛s r❡s✉❧ts ♦❢ s✐♠✉❧❛t✐♦♥s ❞r✐✈❡♥ ❜② tr❛❝❡s ♦❜t❛✐♥❡❞t❤❛♥❦s t♦ P✐♥ ❬✶✼❪✳ ❚❤✐s s❡❝t✐♦♥ ✐s ❛❜♦✉t ❝♦♥✜r♠✐♥❣ t❤❛t t❤❡s❡ t♦♦❧s ❧❡❛❞ t♦ ❝♦♠♣❛r❛❜❧❡ ✐♥str✉❝✲t✐♦♥ ❝♦✉♥ts✱ t❤❡r❡❢♦r❡ ❡①♣❡r✐♠❡♥t ♥✉♠❜❡rs ❛r❡ ❝♦♠♣❛r❛❜❧❡✳ P♦t❡♥t✐❛❧ s♦✉r❝❡s ♦❢ ❞✐s❝r❡♣❛♥❝✐❡s✐♥❝❧✉❞❡ t❤❡ ❢♦❧❧♦✇✐♥❣✿

❼ ♥♦♥ ❞❡t❡r♠✐♥✐s♠ ✐♥❤❡r❡♥t t♦ t❤❡ P▼❯ ❬✸✺❪ ♦r t❤❡ s②st❡♠✴s♦❢t✇❛r❡ st❛❝❦ ❬✷✶❪❀

❼ t❤❡ ①✽✻ ❛r❝❤✐t❡❝t✉r❡ ♣r♦✈✐❞❡s ❛ r❡♣ ✐♥str✉❝t✐♦♥ ♣r❡✜①✳ ❚❤❡ ■♥t❡❧ P▼❯ ❝♦✉♥ts ♣r❡✜①❡❞✐♥str✉❝t✐♦♥s ❛s ✶ ✭✐✳❡✳ ♦♥❡ ✐♥str✉❝t✐♦♥ ♠❛❞❡ ♦❢ ♠❛♥② ♠✐❝r♦✲♦♣s✮✱ ✇❤✐❧❡ ♣✐♥t♦♦❧s ♠❛② ❝♦✉♥t❡❛❝❤ ✐♥st❛♥❝❡ s❡♣❛r❛t❡❧②❀

❼ P✐♥ ❝❛♥ ♦♥❧② ❝❛♣t✉r❡ ❡✈❡♥ts ✐♥ ✉s❡r ♠♦❞❡✱ ✇❤✐❧❡ t❤❡ P▼❯ ❤❛s t❤❡ ❝❛♣❛❜✐❧✐t② t♦ ♠♦♥✐t♦r❛❧s♦ ❦❡r♥❡❧ ♠♦❞❡ ❡✈❡♥ts❀

❼ t✐♣t♦♣ st❛rts ❝♦✉♥t✐♥❣ ❛ ❜✐t ❡❛r❧✐❡r t❤❛♥ P✐♥✿ t❤❡ ❢♦r♠❡r st❛rts r✐❣❤t ❜❡❢♦r❡ t❤❡ ❡①❡❝✈♣

s②st❡♠ ❝❛❧❧✱ ✇❤✐❧❡ t❤❡ ❧❛tt❡r st❛rts ✇❤❡♥ t❤❡ ❧♦❛❞❡r ✐s ✐♥✈♦❦❡❞✳ ❚❤✐s ❞✐✛❡r❡♥❝❡ ✐s ❝♦♥st❛♥t❛♥❞ ♥❡❣❧✐❣✐❜❧❡ ✐♥ r❡s♣❡❝t ♦❢ t❤❡ r✉♥♥✐♥❣ t✐♠❡s ♦❢ ♦✉r ❜❡♥❝❤♠❛r❦s❀

❼ ❛♣♣❧✐❝❛t✐♦♥s ✉♥❞❡r t❤❡ ❝♦♥tr♦❧ ♦❢ P✐♥ s♦♠❡t✐♠❡s ❡①❡❝✉t❡ ♠♦r❡ ✐♥str✉❝t✐♦♥s ✐♥ t❤❡ ❢✉♥❝t✐♦♥❞❧❴r❡❧♦❝❛t❡❴s②♠❜♦❧✳ ❇❡❝❛✉s❡ P✐♥ ❧✐♥❦s ✇✐t❤ t❤❡ ❛♣♣❧✐❝❛t✐♦♥✱ ♠♦r❡ s②♠❜♦❧s ❡①✐st ✐♥ t❤❡

❘❘ ♥➦ ✽✹✵✺

Page 15: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✶✷ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

❡①❡❝✉t❛❜❧❡✱ ❛♥❞ t❤❡ r❡s♦❧✉t✐♦♥ ♠❛② r❡q✉✐r❡ ♠♦r❡ ✇♦r❦✳ ❚❤✐s ❤❛♣♣❡♥s ♦♥❧② ♦♥❝❡ ❢♦r ❡❛❝❤❡①❡❝✉t❡❞ s②♠❜♦❧✱ ❛♥❞ ✐s ❛❧s♦ ♥❡❣❧✐❣✐❜❧❡ ❢♦r ♦✉r ❜❡♥❝❤♠❛r❦s✳

❙✐♥❝❡ P✐♥ ❝❛♥ ♦♥❧② tr❛❝❡ ✉s❡r ♠♦❞❡ ❡✈❡♥ts✱ ✇❡ ❝♦♥✜❣✉r❡❞ t❤❡ P▼❯ ✐♥ ✉s❡r ♠♦❞❡ ♦♥❧② ❛s ✇❡❧❧✳❚♦ q✉❛♥t✐❢② t❤❡ ✐♠♣❛❝t ♦❢ ✐❣♥♦r✐♥❣ ❦❡r♥❡❧ ❡✈❡♥ts✱ ✇❡ r❛♥ t❤❡ ❜❡♥❝❤♠❛r❦s ✐♥ ❜♦t❤ ♠♦❞❡s ❛♥❞ ✇❡♠❡❛s✉r❡❞ t❤❡ ♥✉♠❜❡r ♦❢ r❡t✐r❡❞ ✐♥str✉❝t✐♦♥s ❛s ✇❡❧❧ ❛s t❤❡ ✐♥str✉❝t✐♦♥ ♠✐① ✭❧♦❛❞s✱ st♦r❡s✱ ❛♥❞❥✉♠♣s✮✳ ◆♦t s✉r♣r✐s✐♥❣❧② ❢♦r ❛♥ ✐♥t❡r♣r❡t❡r✱ t❤❡ ❞✐✛❡r❡♥❝❡ r❡♠❛✐♥s ✉♥❞❡r ♦♥❡ ♣❡r❝❡♥t❛❣❡ ♣♦✐♥t✳❋♦r ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s✱ ✐t ✐s ❡✈❡♥ ❜❡❧♦✇ ✵✳✵✺ ♣❡r❝❡♥t❛❣❡ ♣♦✐♥t✳

❚❤❡ ♠❛✐♥ ❧♦♦♣ ♦❢ ✐♥t❡r♣r❡t❡rs ✐s ✐❞❡♥t✐❝❛❧ ♦❢ ◆❡❤❛❧❡♠ ❛♥❞ ❙❛♥❞② ❇r✐❞❣❡✱ ❡✈❡♥ t❤♦✉❣❤ ✇❡✐♥str✉❝t❡❞ t❤❡ ❝♦♠♣✐❧❡r t♦ ❣❡♥❡r❛t❡ s♣❡❝✐❛❧✐③❡❞ ❝♦❞❡✳ ❚❤❡ ❛✈❡r❛❣❡ ✈❛r✐❛t✐♦♥ ♦❢ t❤❡ ♥✉♠❜❡r ♦❢❡①❡❝✉t❡❞ ✐♥str✉❝t✐♦♥s✱ ❞✉❡ t♦ s❧✐❣❤t❧② ❞✐✛❡r❡♥t r❡❧❡❛s❡s ♦❢ t❤❡ ♦♣❡r❛t✐♥❣ s②st❡♠ ❛♥❞ ❧✐❜r❛r✐❡s✱ ✐s❛❧s♦ ♦♥ t❤❡ ♦r❞❡r ♦❢ ✶✪✳

❋✐♥❛❧❧②✱ P▼❯ ❛♥❞ P✐♥ ❛❧s♦ r❡♣♦rt ✐♥str✉❝t✐♦♥ ❝♦✉♥ts ✇✐t❤✐♥ ✶✪✳

✺ ❊①♣❡r✐♠❡♥t❛❧ ❘❡s✉❧ts

❚❤✐s s❡❝t✐♦♥ ✜rst ♣r❡s❡♥ts r❡s✉❧ts ❢♦r ❡❛❝❤ ✐♥t❡r♣r❡t❡r s❡♣❛r❛t❡❧②✳ ❲❡ t❤❡♥ ♣r❡s❡♥t ❝r♦ss✲✐♥t❡r♣r❡t❡r❞✐s❝✉ss✐♦♥s✳

❋♦r ❡❛❝❤ ✐♥t❡r♣r❡t❡r✱ ✇❡ ♣r❡s❡♥t r❡s✉❧ts ✐♥ ❛ t❛❜❧❡ ✭❚❛❜❧❡s ✸✱ ✹✱ ✺✮✳ ❚❤❡ ❧❡❢t ♣❛rt r❡♣♦rts❣❡♥❡r❛❧ ❝❤❛r❛❝t❡r✐st✐❝s ♦❢ t❤❡ ✐♥t❡r♣r❡t❡r✳ ❉②♥❛♠✐❝ ❡✈❡♥ts ❛r❡ ❝♦❧❧❡❝t❡❞ ♦♥ ❙❛♥❞② ❇r✐❞❣❡✱ ❜✉t ❛r❡✈❡r② s✐♠✐❧❛r t♦ ◆❡❤❛❧❡♠✳ ❋♦r ❡❛❝❤ ❜❡♥❝❤♠❛r❦✱ t❤❡ t❛❜❧❡s s❤♦✇ t❤❡ ♥✉♠❜❡r ♦❢ ❡①❡❝✉t❡❞ ❜②t❡❝♦❞❡s✭✐♥ ♠✐❧❧✐♦♥s✮✱ t❤❡ ♥✉♠❜❡r ♦❢ ♥❛t✐✈❡ ✐♥str✉❝t✐♦♥s ✭✐♥ ❜✐❧❧✐♦♥s✮✱ t❤❡ ♦✈❡r❛❧❧ ♠❡❛s✉r❡❞ ♣❡r❢♦r♠❛♥❝❡r❡♣♦rt❡❞ ❛s ■P❈ ✭✐♥str✉❝t✐♦♥s ♣❡r ❝②❝❧❡✮✱ t❤❡ ♥✉♠❜❡r ♦❢ ✐♥str✉❝t✐♦♥s ♣❡r ❜②t❡❝♦❞❡✱ t❤❡ ❢r❛❝t✐♦♥♦❢ ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s✱ t❤❡ ❢r❛❝t✐♦♥ ♦❢ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s✱ ❛♥❞ ✜♥❛❧❧② t❤❡ ♥✉♠❜❡r ♦❢✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s ♣❡r ❜②t❡❝♦❞❡✳

❚❤❡ s❡❝♦♥❞ ❤❛❧❢ ♦❢ t❤❡ t❛❜❧❡s r❡♣♦rt ♦♥ t❤❡ ♣❡r❢♦r♠❛♥❝❡ ♦❢ ❡❛❝❤ ❛r❝❤✐t❡❝t✉r❡ ✐♥ t❡r♠s ♦❢ ❜r❛♥❝❤♣r❡❞✐❝t✐♦♥ ❢♦r ❡❛❝❤ ❜❡♥❝❤♠❛r❦✳ ❚❤❡ ✜rst t❤r❡❡ ❝♦❧✉♠♥s s❤♦✇ t❤❡ ♥✉♠❜❡r ♦❢ ♠✐s♣r❡❞✐❝t✐♦♥s ♣❡rt❤♦✉s❛♥❞ ✐♥str✉❝t✐♦♥s ✭▼P❑■✮ r❡s♣❡❝t✐✈❡❧② ❢♦r ◆❡❤❛❧❡♠✱ ❙❛♥❞② ❇r✐❞❣❡✱ ❛♥❞ ❚❆●❊✶ ❛♥❞ ❚❆●❊✷✳

✺✳✶ P②t❤♦♥

P②t❤♦♥ ✐s ✐♠♣❧❡♠❡♥t❡❞ ✐♥ ❈✳ ❚❤❡ s②♥t❛① ♦❢ t❤❡ P②t❤♦♥ ❧❛♥❣✉❛❣❡ ❞✐✛❡rs s❧✐❣❤t❧② ❜❡t✇❡❡♥ ✈❡rs✐♦♥s✷ ❛♥❞ ✸ ✭❛ ❝♦♥✈❡rt❡r ✐s ♣r♦✈✐❞❡❞✮✱ ❛♥❞ s♦ ❞♦❡s t❤❡ ❜②t❡❝♦❞❡ ❞❡✜♥✐t✐♦♥✳ ❙t✐❧❧✱ ❜♦t❤ ❤❛✈❡ ❛ s✐♠✐❧❛rs❡t ♦❢ r♦✉❣❤❧② ✶✶✵ ❜②t❡❝♦❞❡s✳

❚❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ✐s ✐❞❡♥t✐❝❛❧ ♦♥ ◆❡❤❛❧❡♠ ❛♥❞ ❙❛♥❞② ❇r✐❞❣❡ ✭✇✐t❤ t❤❡ ❡①❝❡♣t✐♦♥ ♦❢ st❛❝❦ ♦✛✲s❡ts✮✱ ✐t ❝♦♥s✐sts ✐♥ ✷✹ ✐♥str✉❝t✐♦♥s ❢♦r ❜②t❡❝♦❞❡s ✇✐t❤♦✉t ❛r❣✉♠❡♥ts✱ ❛♥❞ ✻ ❛❞❞✐t✐♦♥❛❧ ✐♥str✉❝t✐♦♥st♦ ❤❛♥❞❧❡ ❛♥ ❛r❣✉♠❡♥t✳ ❚❤❡s❡ ✐♥str✉❝t✐♦♥s ❝❤❡❝❦ ❢♦r ❡①✐t ❛♥❞ tr❛❝✐♥❣ ❝♦♥❞✐t✐♦♥s✱ ❧♦❝❛t✐♥❣ ❛♥❞❧♦❛❞✐♥❣ t❤❡ ♥❡①t ♦♣❝♦❞❡✱ ❛❝❝❡ss✐♥❣ t❤❡ ❥✉♠♣ t❛❜❧❡✱ ❛♥❞ ❞✐r❡❝t✐♥❣ ❝♦♥tr♦❧ t♦ t❤❡ ❝♦rr❡s♣♦♥❞✐♥❣ ❛❞✲❞r❡ss✳ ❆ ❢❡✇ ✐♥str✉❝t✐♦♥s ❞❡t❡❝t ♣❡♥❞✐♥❣ ❡①❝❡♣t✐♦♥s✱ ❛♥❞ ❤❛♥❞❧❡ ♦❜❥❡❝ts ❛❧❧♦❝❛t✐♦♥✴❞❡❛❧❧♦❝❛t✐♦♥✳❖♥❧② ♦♥❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐s ♣❛rt ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣✳

❚❛❜❧❡ ✸ r❡♣♦rt ♦✉r r❡s✉❧ts ✇✐t❤ t❤❡ P②t❤♦♥ ✐♥t❡r♣r❡t❡r✳ ❚❤❡ ♣❡r❢♦r♠❛♥❝❡ ✭♠❡❛s✉r❡ ❛s ■P❈✮♦♥ ❙❛♥❞② ❇r✐❞❣❡ ✐s ❢❛✐r❧② ❣♦♦❞✱ s❤♦✇✐♥❣ t❤❛t ♥♦ s❡r✐♦✉s ♣r♦❜❧❡♠ ✭s✉❝❤ ❛s ❝❛❝❤❡ ♠✐ss❡s ♦r ❜r❛♥❝❤♠✐s♣r❡❞✐❝t✐♦♥✮ ✐s ❞❡❣r❛❞✐♥❣ ♣❡r❢♦r♠❛♥❝❡✳

■t t❛❦❡s ✶✷✵ t♦ ✶✺✵ ✐♥str✉❝t✐♦♥s t♦ ❡①❡❝✉t❡ ❛ ❜②t❡❝♦❞❡✳ ❈♦♥s✐❞❡r✐♥❣ t❤❡ ♦✈❡r❤❡❛❞ ♦❢ t❤❡❞✐s♣❛t❝❤✱ ❛❜♦✉t ✶✵✵ ✐♥str✉❝t✐♦♥s ❛r❡ ♥❡❡❞❡❞ t♦ ❡①❡❝✉t❡ t❤❡ ♣❛②❧♦❛❞ ♦❢ ❛ ❜②t❡❝♦❞❡✳ ❚❤✐s r❛t❤❡r❤✐❣❤ ♥✉♠❜❡r ✐s ❞✉❡ t♦ ❞②♥❛♠✐❝ t②♣✐♥❣✳ ❆ s✐♠♣❧❡ ❛❞❞ ♠✉st ❝❤❡❝❦ t❤❡ t②♣❡s ♦❢ t❤❡ ❛r❣✉♠❡♥ts✭♥✉♠❜❡rs ♦r str✐♥❣s✮✱ ❛♥❞ ❡✈❡♥ ✐♥ t❤❡ ❝❛s❡ ♦❢ ✐♥t❡❣❡rs✱ ❛♥ ♦✈❡r✢♦✇ ❝❛♥ ♦❝❝✉r✱ r❡q✉✐r✐♥❣ s♣❡❝✐❛❧tr❡❛t♠❡♥t✳

■♥r✐❛

Page 16: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✶✸

❚❛❜❧❡ ✸✿ P②t❤♦♥ ❝❤❛r❛❝t❡r✐st✐❝s ❛♥❞ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ❢♦r ◆❡❤❛❧❡♠ ✭◆❡❤✳✮✱ ❙❛♥❞② ❇r✐❞❣❡ ✭❙❇✮❛♥❞ ❚❆●❊ ✭❚✶ ❛♥❞ ❚✷✮❜❡♥❝❤♠❛r❦ ▼❜❝ ●✐♥s ■P❈ ✐♥s✴❜❝ ❜r ✐♥❞ ✐♥❞✴❜❝ ▼P❑■

◆❡❤✳ ❙❇ ❚ ✶ ❚ ✷❝❛❧❧❴♠❡t❤♦❞ ✻✶✸✼ ✼✼✶ ✷✳✷ ✶✷✺✳✻ ✷✵✪ ✵✳✽✪ ✶✳✵✶ ✹✳✽ ✵✳✻ ✵✳✵✻✼ ✵✳✵✻✼❝❛❧❧❴♠❡t❤❴s❧♦ts ✻✶✸✼ ✼✻✻ ✷✳✶✽ ✶✷✹✳✽ ✷✵✪ ✵✳✽✪ ✶✳✵✷ ✺✳✾ ✵✳✼ ✵✳✵✻✽ ✵✳✵✻✽❝❛❧❧❴♠❡t❤❴✉♥❦ ✼✸✵✵ ✽✵✸ ✷✳✷✷ ✶✶✵✳✵ ✷✵✪ ✵✳✾✪ ✶✳✵✵ ✹✳✷ ✵✳✸ ✵✳✵✺✽ ✵✳✵✺✽❝❛❧❧❴s✐♠♣❧❡ ✺✶✷✸ ✻✶✸ ✷✳✸✸ ✶✶✾✳✻ ✶✾✪ ✵✳✽✪ ✶✳✵✵ ✹✳✶ ✵✳✺ ✵✳✵✽✻ ✵✳✵✽✻❝❤❛♦s ✶✶✾✻ ✶✻✷ ✶✳✺✺ ✶✸✺✳✹ ✷✷✪ ✵✳✽✪ ✶✳✵✼ ✶✽✳✹ ✹✳✹ ✵✳✻✽✵ ✷✳✺✹✽❞❥❛♥❣♦❴✈✷ ✶✹✺✶ ✸✸✷ ✶✳✹✹ ✷✷✽✳✼ ✷✶✪ ✵✳✻✪ ✶✳✸✸ ✶✺✳✾ ✸✳✾ ✵✳✺✷✾ ✶✳✽✷✾❢❛♥♥❦✉❝❤ ✼✻✾✸ ✼✹✼ ✶✳✻✼ ✾✼✳✶ ✷✸✪ ✶✳✸✪ ✶✳✷✸ ✶✽✳✹ ✻✳✶ ✵✳✺✼✽ ✵✳✺✾✷❢❛st♣✐❝❦❧❡ ✸✹ ✸✺✶ ✶✳✽✾ ✶✵✷✼✼ ✷✷✪ ✵✳✺✪ ✺✹ ✶✾ ✷✳✻ ✷✳✷✺✽ ✷✳✷✾✵❢❛st✉♥♣✐❝❦❧❡ ✷✺ ✷✼✽ ✶✳✼✼ ✶✶✸✷✵ ✷✷✪ ✵✳✽✪ ✾✶ ✶✻✳✺ ✸ ✷✳✸✻✺ ✷✳✻✼✸✢♦❛t ✶✷✽✵ ✶✽✵ ✶✳✼✸ ✶✹✵✳✻ ✷✷✪ ✵✳✽✪ ✶✳✶✺ ✶✷ ✸ ✵✳✸✻✹ ✵✳✸✻✺❢♦r♠❛tt❡❞❴❧♦❣❣✐♥❣ ✼✺✵ ✶✷✺ ✶✳✶✸ ✶✻✻✳✾ ✷✷✪ ✵✳✼✪ ✶✳✷✵ ✶✼✳✺ ✺✳✹ ✵✳✻✸✸ ✹✳✷✷✵❣♦ ✷✾✼✷ ✸✹✹ ✶✳✻ ✶✶✺✳✼ ✷✶✪ ✵✳✾✪ ✶✳✵✶ ✶✹ ✺✳✷ ✶✳✶✷✶ ✶✳✾✼✾❤❡①✐♦♠✷ ✸✸✸✺✵ ✸✻✼✹ ✶✳✽✻ ✶✶✵✳✷ ✷✶✪ ✶✳✵✪ ✶✳✵✽ ✶✶✳✾ ✷✳✾ ✵✳✺✻✸ ✵✳✽✸✷❥s♦♥❴❞✉♠♣❴✈✷ ✺✵✹✷ ✶✻✺✻ ✶✳✻✷ ✸✷✽✳✺ ✷✸✪ ✵✳✽✪ ✷✳✻✶ ✶✼✳✷ ✸✳✺ ✵✳✽✷✼ ✵✳✽✺✾❥s♦♥❴❧♦❛❞ ✶✾✺ ✷✼✶ ✶✳✽✶ ✶✸✾✶ ✷✻✪ ✵✳✺✪ ✻✳✼✻ ✶✺✳✼ ✸✳✸ ✸✳✵✼✹ ✸✳✶✾✽♠❡t❡♦r❴❝♦♥t❡st ✽✻✽ ✶✵✻ ✶✳✺✷ ✶✷✷✳✸ ✷✷✪ ✵✳✾✪ ✶✳✵✺ ✶✻✳✼ ✻✳✾ ✸✳✺✵✼ ✸✳✺✶✾♥❜♦❞② ✷✼✵✸ ✶✽✹ ✶✳✼✸ ✻✽✳✷ ✷✸✪ ✶✳✺✪ ✶✳✵✵ ✶✸✳✽ ✺✳✾ ✵✳✼✵✵ ✵✳✼✵✶♥q✉❡❡♥s ✶✷✾✻ ✶✺✷ ✶✳✹✻ ✶✶✼✳✵ ✷✷✪ ✵✳✾✪ ✶✳✵✻ ✶✻✳✺ ✸✳✾ ✵✳✺✹✾ ✵✳✺✹✾♣❛t❤❧✐❜ ✽✸✻ ✶✽✽ ✶✳✵✽ ✷✷✺✳✸ ✷✷✪ ✵✳✻✪ ✶✳✹✺ ✶✻✳✺ ✹✳✼ ✵✳✸✾✼ ✵✳✻✸✸♣✐❞✐❣✐ts ✾✹ ✷✷✸ ✷✳✸✼ ✷✸✻✻ ✼✪ ✵✳✶✪ ✶✳✹✷ ✶✳✷ ✵✳✺ ✵✳✸✺✻ ✵✳✸✻✸r❛②tr❛❝❡ ✹✻✻✷ ✼✻✻ ✶✳✻✻ ✶✻✹✳✸ ✷✶✪ ✵✳✼✪ ✶✳✶✷ ✶✺✳✷ ✸✳✻ ✵✳✺✼✼ ✶✳✵✶✼r❡❣❡①❴❝♦♠♣✐❧❡ ✶✾✸✽ ✷✶✹ ✶✳✺✷ ✶✶✵✳✻ ✷✶✪ ✶✳✵✪ ✶✳✵✺ ✶✺✳✶ ✺✳✸ ✶✳✺✽✽ ✷✳✷✺✼r❡❣❡①❴❡✛❜♦t ✼ ✺✷ ✷✳✺✸ ✻✾✼✼ ✷✷✪ ✷✳✶✪ ✶✹✻ ✻✳✶ ✵✳✶ ✵✳✵✷✻ ✵✳✵✷✼r❡❣❡①❴✈✽ ✸✶ ✸✼ ✶✳✼✾ ✶✶✽✷ ✷✷✪ ✶✳✼✪ ✷✶ ✾✳✽ ✶✳✶ ✵✳✺✵✻ ✵✳✺✸✹r✐❝❤❛r❞s ✾✻✶ ✶✵✽ ✶✳✺✾ ✶✶✶✳✾ ✷✶✪ ✵✳✾✪ ✶✳✵✷ ✶✸✳✷ ✺✳✽ ✵✳✽✷✹ ✶✳✺✶✽s✐❧❡♥t❴❧♦❣❣✐♥❣ ✸✺✸ ✺✸ ✶✳✽✸ ✶✹✽✳✽ ✷✶✪ ✵✳✼✪ ✶✳✵✽ ✶✵✳✸ ✸✳✼ ✵✳✵✸✺ ✵✳✵✸✺s✐♠♣❧❡❴❧♦❣❣✐♥❣ ✼✸✶ ✶✷✵ ✶✳✶✹ ✶✻✹✳✹ ✷✷✪ ✵✳✼✪ ✶✳✶✾ ✶✼✳✹ ✺✳✸ ✵✳✻✻✾ ✹✳✼✹✽t❡❧❝♦ ✸✹ ✻ ✺✳✾✵ ✶✼✹✳✻ ✷✶✪ ✶✳✸✪ ✷✳✸✺ ✶✺✳✻ ✺✳✼ ✶✳✶✹✸ ✶✳✶✺✵✉♥♣❛❝❦❴s❡q ✾✻✻ ✸✽ ✷✳✵✹ ✸✾✳✺ ✷✶✪ ✷✳✻✪ ✶✳✵✶ ✽✳✾ ✹✳✸ ✵✳✵✺✻ ✵✳✵✺✼

■♥ ❛ ❢❡✇ ❝❛s❡s✱ t❤❡ ♥✉♠❜❡r ✐s ♠✉❝❤ ❤✐❣❤❡r✱ ❛s ❢♦r t❤❡ ❢❛st♣✐❝❦❧❡ ♦r r❡❣❡① ❜❡♥❝❤♠❛r❦s✳ ❚❤✐s✐s ❜❡❝❛✉s❡ t❤❡② ❛♣♣❧② ❤❡❛✈✐❡r ♣r♦❝❡ss✐♥❣ ✐♠♣❧❡♠❡♥t❡❞ ✐♥ ♥❛t✐✈❡ ❧✐❜r❛r✐❡s ❢♦r ♣❡r❢♦r♠❛♥❝❡✳ ■♥ t❤❡❝❛s❡ ♦❢ ❢❛st♣✐❝❦❧❡✱ t❤❡ ❜❡♥❝❤♠❛r❦ s❡r✐❛❧✐③❡s ♦❜❥❡❝ts ❜② ❝❛❧❧✐♥❣ ❛ ❞❡❞✐❝❛t❡❞ r♦✉t✐♥❡✳

❚❤❡r❡ ✐s ❣❡♥❡r❛❧❧② ❛ s✐♥❣❧❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♣❡r ❜②t❡❝♦❞❡✳ ❱❛❧✉❡s s✐❣♥✐✜❝❛♥t❧② ❧❛r❣❡r t❤❛♥ ✶❛r❡ ❝♦rr❡❧❛t❡❞ ✇✐t❤ ❛ ❤✐❣❤ ♥✉♠❜❡r ♦❢ ✐♥str✉❝t✐♦♥s ♣❡r ❜②t❡❝♦❞❡✱ r❡✈❡❛❧✐♥❣ t❤❛t t❤❡ ❡①❡❝✉t✐♦♥ ❤❛s❧❡❢t t❤❡ ✐♥t❡r♣r❡t❡r ♠❛✐♥ ❧♦♦♣ ♣r♦♣❡r t♦ ❡①❡❝✉t❡ ❛ ❞❡❞✐❝❛t❡❞ r♦✉t✐♥❡✳

❋✐❣✉r❡ ✺ ♣❧♦ts t❤❡ ▼P❑■ ❢♦r ❡❛❝❤ ❜❡♥❝❤♠❛r❦ ❛♥❞ ❜r❛♥❝❤ ♣r❡❞✐❝t♦r✳ ■t ✐s ❝❧❡❛r t❤❛t t❤❡❙❛♥❞② ❇r✐❞❣❡ ♣r❡❞✐❝t♦r s✐❣♥✐✜❝❛♥t❧② ♦✉t♣❡r❢♦r♠s ◆❡❤❛❧❡♠✬s✱ ❛♥❞ t❤❡ s❛♠❡ ❛♣♣❧✐❡s ❢♦r ❚❆●❊✇❤❡♥ ❝♦♠♣❛r❡❞ t♦ ❙❛♥❞② ❇r✐❞❣❡✳

■♥ ♣r❛❝t✐❝❡✱ ♦♥❡ ❝❛♥ ♥♦t❡ t❤❛t ✇❤❡♥ t❤❡ ❛✈❡r❛❣❡ ♣❛②❧♦❛❞ ✐s ❛r♦✉♥❞ ✶✷✵ t♦ ✶✺✵ ✐♥str✉❝t✐♦♥s❛♥❞ t❤❡r❡ ❛r❡ ♥♦ ♦r ✈❡r② ❢❡✇ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❛♣❛rt t❤❡ ♠❛✐♥ s✇✐t❝❤✱ ✐✳❡✳✱ ✐♥❞✴❜❝ ≤ ✶✳✵✷✱ t❤❡♥❚❆●❊✰■❚❚❆●❊ ♣r❡❞✐❝ts t❤❡ ✐♥t❡r♣r❡t❡r q✉❛s✐✲♣❡r❢❡❝t❧②✳ ❲❤❡♥ t❤❡ ❛✈❡r❛❣❡ ♣❛②❧♦❛❞ ✐s ❧❛r❣❡r♦r s♦♠❡ ❡①tr❛ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❛r❡ ❡♥❝♦✉♥t❡r❡❞ t❤❡♥ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡ ♦❢ ❚❆●❊✰■❚❚❆●❊❜❡❝♦♠❡s ❤✐❣❤❡r ❛♥❞ ♠❛② ❜❡❝♦♠❡ ✐♥ t❤❡ s❛♠❡ ♦r❞❡r ❛s t❤❡ ♦♥❡ ♦❢ ❙❛♥❞② ❇r✐❞❣❡✳

✺✳✷ ❏❛✈❛s❝r✐♣t

❙♣✐❞❡r▼♦♥❦❡② ❏❛✈❛s❝r✐♣t ✐s ✐♠♣❧❡♠❡♥t❡❞ ✐♥ ❈✰✰✳ ❲❡ ❝♦♠♣✐❧❡❞ ✐t ✇✐t❤♦✉t ❏■❚ s✉♣♣♦rt✱ ❛♥❞ ✇❡♠❛♥✉❛❧❧② r❡♠♦✈❡❞ t❤❡ ❞❡t❡❝t✐♦♥ ♦❢ ▲❛❜❡❧s ❛s ❱❛❧✉❡s✳ ❚❤❡ ❜②t❡❝♦❞❡ ❝♦♥s✐sts ✐♥ ✷✹✹ ❡♥tr✐❡s✳ ❚❤❡❞✐s♣❛t❝❤ ❧♦♦♣ ❝♦♥s✐sts ✐♥ ✶✻ ✐♥str✉❝t✐♦♥s✱ s✐❣♥✐✜❝❛♥t❧② s❤♦rt❡r t❤❛t P②t❤♦♥✳

❘❘ ♥➦ ✽✹✵✺

Page 17: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✶✹ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

0

2

4

6

8

10

12

14

16

18

20

0 5 10 15 20 25benchmarks

NehalemSandy Bridge

TAGE 1

❋✐❣✉r❡ ✺✿ P②t❤♦♥ ▼P❑■ ❢♦r ◆❡❤❛❧❡♠✱ ❙❛♥❞② ❇r✐❞❣❡✱ ❚❆●❊ ✶

❚❛❜❧❡ ✹ r❡♣♦rts t❤❡ ❝❤❛r❛❝t❡r✐st✐❝s ♦❢ t❤❡ ❏❛✈❛s❝r✐♣t ✐♥t❡r♣r❡t❡r✳ ❲✐t❤ t❤❡ ❡①❝❡♣t✐♦♥ ♦❢ ❞♥❛✱✐♥❞✐r❡❝t ❜r❛♥❝❤❡s ❝♦♠❡ ❢r♦♠ t❤❡ s✇✐t❝❤ st❛t❡♠❡♥t✳ ❞♥❛ ❛❧s♦ ❤❛s ❛ ♦✉tst❛♥❞✐♥❣ ♥✉♠❜❡r ♦❢✐♥str✉❝t✐♦♥s ♣❡r ❜②t❡❝♦❞❡✳ ❊①❝❧✉❞✐♥❣ ❞♥❛✱ ✐t t❛❦❡s ♦♥ ❛✈❡r❛❣❡ ✐♥ t❤❡ ♦r❞❡r ♦❢ ✻✵ ✐♥str✉❝t✐♦♥s ♣❡r❜②t❡❝♦❞❡✳

❚❛❜❧❡ ✹ ❛❧s♦ r❡♣♦rts ♦♥ t❤❡ ♣❡r❢♦r♠❛♥❝❡ ♦❢ t❤❡ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs✱ ❛♥❞ ❋✐❣✉r❡ ✻ ✐❧❧✉str❛t❡st❤❡ r❡s♣❡❝t✐✈❡ ▼P❑■✳ ❆s ❢♦r P②t❤♦♥✱ ❚❆●❊ ❝♦♥s✐st❡♥t❧② ♦✉t♣❡r❢♦r♠s ❙❛♥❞② ❇r✐❞❣❡✱ ✇❤✐❝❤ ❛❧s♦♦✉t♣❡r❢♦r♠s ◆❡❤❛❧❡♠✳

❆s ❢♦r t❤❡ P②t❤♦♥ ✐♥t❡r♣r❡t❡rs✱ ✇✐t❤ t❤❡ ❡①❝❡♣t✐♦♥ ♦❢ t❤r❡❡ ♦✉t❧✐❡rs ✭t❤❡ ❛❧r❡❛❞② ♠❡♥t✐♦♥❡❞❞♥❛✱ ❜✐ts✲✐♥✲❜②t❡s ❛♥❞ ✉♥♣❛❝❦✲❝♦❞❡✮✱ ❚❆●❊ ♣r❡❞✐❝t q✉❛s✐ ♣❡r❢❡❝t❧② t❤❡ ✐♥t❡r♣r❡t❡r✳ ❖♥✉♥♣❛❝❦✱ t❤❡ ❛✈❡r❛❣❡ ♣❛②❧♦❛❞ ✐s ❧❛r❣❡r t❤❛♥ t❤❡ ✉s✉❛❧ ✹✵ t♦ ✽✵ ✐♥str✉❝t✐♦♥s ♣❛②❧♦❛❞✳ ❖♥ ❜✐ts✲✐♥✲❜②t❡s✱t❤❡ ❛❝❝✉r❛❝② ❧♦ss ✐s ♣❛rt❧② ❛ss♦❝✐❛t❡❞ ✇✐t❤ t❤❡ ✉♥♣r❡❞✐❝t❛❜✐❧✐t② ♦❢ ❜②t❡❝♦❞❡ ❜r❛♥❝❤❡s ✐♥ t❤❡ ✐♥✲t❡r♣r❡t❡❞ ❛♣♣❧✐❝❛t✐♦♥✿ ❜✐ts✲✐♥✲❜②t❡s ❝♦✉♥ts t❤❡ ♥♦♥✲③❡r♦ ❜✐ts ✐♥ ❛ ❜②t❡✳

✺✳✸ ❈▲■

❚❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r ✐s ✇r✐tt❡♥ ✐♥ st❛♥❞❛r❞ ❈✱ ❤❡♥❝❡ ❞✐s♣❛t❝❤ ✐s ✐♠♣❧❡♠❡♥t❡❞ ✇✐t❤ ❛ s✇✐t❝❤

st❛t❡♠❡♥t✳ ❚❤❡ ✐♥t❡r♥❛❧ ■❘ ❝♦♥s✐sts ✐♥ ✹✼✽ ❜②t❡❝♦❞❡s✳ ❚❤✐s ■❘ r❡s❡♠❜❧❡s t❤❡ ❈▲■ ❜②t❡❝♦❞❡ ❢r♦♠✇❤✐❝❤ ✐t ✐s ❞❡r✐✈❡❞✳ ❈▲■ ♦♣❡r❛t♦rs ❛r❡ ♥♦t t②♣❡❞✱ t❤❡ s❛♠❡ ❛❞❞ ✭❢♦r ❡①❛♠♣❧❡✮ ❛♣♣❧✐❡s t♦ ❛❧❧✐♥t❡❣❡r ❛♥❞ ✢♦❛t✐♥❣ ♣♦✐♥t t②♣❡s✳ ❚❤❡ st❛♥❞❛r❞✱ t❤♦✉❣❤✱ r❡q✉✐r❡s t❤❛t t②♣❡s ❝❛♥ ❜❡ st❛t✐❝❛❧❧②❞❡r✐✈❡❞ t♦ ♣r♦✈❡ t❤❡ ❝♦rr❡❝t♥❡ss ♦❢ t❤❡ ♣r♦❣r❛♠ ❜❡❢♦r❡ ❡①❡❝✉t✐♦♥✳ ❚❤❡ ✐♥t❡r♣r❡t❡r ■❘ s♣❡❝✐❛❧✐③❡st❤❡ ♦♣❡r❛t♦rs ✇✐t❤ t❤❡ ❝♦♠♣✉t❡❞ t②♣❡s t♦ r❡♠♦✈❡ s♦♠❡ ❜✉r❞❡♥ ❢r♦♠ t❤❡ ✐♥t❡r♣r❡t❡r ❡①❡❝✉t❡ ❧♦♦♣✳❚❤✐s ❡①♣❧❛✐♥s t❤❡ r❛t❤❡r ❧❛r❣❡ ♥✉♠❜❡r ♦❢ ❞✐✛❡r❡♥t ❜②t❡❝♦❞❡s✳ ❆s ♣❡r ❇r✉♥t❤❛❧❡r✬s ❞❡✜♥✐t✐♦♥ ❬✸❪✱t❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r ✐s ❛ ❧♦✇ ❛❜str❛❝t✐♦♥ ❧❡✈❡❧ ✐♥t❡r♣r❡t❡r✳

❚❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ❝♦♥s✐sts ✐♥ ♦♥❧② s❡✈❡♥ ✐♥str✉❝t✐♦♥s✱ ✐❧❧✉str❛t❡❞ ♦♥ ❋✐❣✉r❡ ✼✳ ❚❤✐s ✐s ♣♦ss✐❜❧❡❜❡❝❛✉s❡ ❡❛❝❤ ♦♣❝♦❞❡ ✐s ✈❡r② ❧♦✇ ❧❡✈❡❧ ✭str♦♥❣❧② t②♣❡❞✱ ❛♥❞ ❞❡r✐✈❡❞ ❢r♦♠ ❈ ♦♣❡r❛t♦rs✮✱ ❛♥❞ t❤❡r❡✐s ♥♦ s✉♣♣♦rt ❢♦r ❤✐❣❤❡r ❛❜str❛❝t✐♦♥s s✉❝❤ ❛s ❣❛r❜❛❣❡ ❝♦❧❧❡❝t✐♦♥✱ ♦r ❡①❝❡♣t✐♦♥s✳

❚❛❜❧❡ ✺ r❡♣♦rts ♦♥ t❤❡ ❝❤❛r❛❝t❡r✐st✐❝s ♦❢ t❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r ❛♥❞ t❤❡ ❜❡❤❛✈✐♦r ♦❢ t❤❡ ♣r❡❞✐❝t♦rs✳❚❤❡ ♥✉♠❜❡r ♦❢ s♣❡❝✉❧❛t✐✈❡ ✐♥❞✐r❡❝t ❥✉♠♣s ✐s ❜❡t✇❡❡♥ ✶✳✵✶ ❛♥❞ ✶✳✵✼ ❜②t❡❝♦❞❡s✳ ■♥ ❢❛❝t✱ ♠♦st ♦❢

■♥r✐❛

Page 18: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✶✺

0

2

4

6

8

10

12

14

16

18

0 5 10 15 20 25benchmarks

NehalemSandy Bridge

TAGE 1

❋✐❣✉r❡ ✻✿ ❏❛✈❛s❝r✐♣t ▼P❑■ ❢♦r ◆❡❤❛❧❡♠✱ ❙❛♥❞② ❇r✐❞❣❡✱ ❚❆●❊ ✶

❚❛❜❧❡ ✹✿ ❏❛✈❛s❝r✐♣t ❝❤❛r❛❝t❡r✐st✐❝s ❛♥❞ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ❢♦r ◆❡❤❛❧❡♠ ✭◆❡❤✳✮✱ ❙❛♥❞② ❇r✐❞❣❡ ✭❙❇✮❛♥❞ ❚❆●❊❜❡♥❝❤♠❛r❦ ▼❜❝ ●✐♥s ■P❈ ✐♥s✴❜❝ ❜r ✐♥❞ ✐♥❞✴❜❝ ▼P❑■

◆❡❤✳ ❙❇ ❚❆●❊ ✶ ❚❆●❊ ✷❝✉❜❡ ✼✷✽ ✸✸ ✶✳✺✸ ✹✹✳✼ ✶✾✪ ✷✳✷✪ ✶✳✵✵✸ ✶✻✳✺ ✻✳✸ ✵✳✼✷ ✶✳✷✵♠♦r♣❤ ✻✷✹ ✷✽ ✶✳✻ ✹✺✳✷ ✶✾✪ ✷✳✷✪ ✶✳✵✵✵ ✶✷✳✷ ✻✳✷ ✵✳✵✸ ✵✳✵✸r❛②tr❛❝❡ ✹✻✻✽ ✷✼ ✶✳✷✽ ✺✻✳✾ ✷✵✪ ✶✳✽✪ ✶✳✵✵✺ ✶✺ ✽✳✻ ✵✳✾✹ ✷✳✶✾❜✐♥❛r②✲tr❡❡s ✹✸✵ ✸✼ ✶✳✼✹ ✽✺✳✸ ✷✶✪ ✶✳✷✪ ✶✳✵✷✾ ✶✷✳✶ ✸✳✹ ✵✳✺✸ ✵✳✺✸❢❛♥♥❦✉❝❤ ✽✻✻ ✸✷ ✶✳✸✷ ✸✻✳✾ ✶✽✪ ✷✳✼✪ ✶✳✵✵✵ ✶✹✳✾ ✶✵✳✽ ✵✳✼✶ ✵✳✼✵♥❜♦❞② ✺✾✼ ✸✷ ✶✳✹✼ ✺✸✳✽ ✷✶✪ ✶✳✾✪ ✶✳✵✵✶ ✶✺✳✽ ✼✳✽ ✵✳✶✼ ✵✳✶✼♥s✐❡✈❡ ✶✵✾✸ ✹✵ ✷ ✸✻✳✺ ✶✽✪ ✷✳✼✪ ✶✳✵✵✷ ✶✷✳✼ ✵✳✶ ✵✳✵✾ ✵✳✵✾✸❜✐t✲❜✐ts✲✐♥✲❜②t❡ ✶✸✵✼ ✺✷ ✶✳✾✶ ✸✾✳✹ ✶✻✪ ✷✳✺✪ ✶✳✵✵✵ ✼✳✺ ✹ ✵✳✵✵ ✵✳✵✵❜✐ts✲✐♥✲❜②t❡ ✶✵✽✺ ✸✾ ✷✳✸✺ ✸✻✳✹ ✶✻✪ ✷✳✼✪ ✶✳✵✵✵ ✶✸✳✶ ✶✳✹ ✷✳✵✷ ✷✳✵✵❜✐t✇✐s❡✲❛♥❞ ✻✻✵ ✸✼ ✶✳✾✷ ✺✻✳✼ ✷✶✪ ✶✳✽✪ ✶✳✵✵✵ ✶✷✳✹ ✸✳✷ ✵✳✵✵ ✵✳✵✵♥s✐❡✈❡✲❜✐ts ✶✷✶✵ ✹✹ ✷✳✶✼ ✸✻✳✼ ✶✼✪ ✷✳✼✪ ✶✳✵✵✵ ✽✳✷ ✶✳✾ ✵✳✶✵ ✵✳✶✵r❡❝✉rs✐✈❡ ✼✹✾ ✹✼ ✶✳✾✶ ✻✷✳✹ ✶✾✪ ✶✳✻✪ ✶✳✵✵✵ ✼✳✻ ✷✳✹ ✵✳✺✷ ✵✳✺✹❛❡s ✺✸✻ ✷✷ ✶✳✹✷ ✹✶✳✼ ✶✽✪ ✷✳✹✪ ✶✳✵✵✼ ✶✺✳✹ ✼✳✺ ✵✳✻✷ ✵✳✽✻♠❞✺ ✻✸✽ ✸✷ ✶✳✸✻ ✺✵✳✺ ✶✽✪ ✷✳✵✪ ✶✳✵✵✵ ✶✷✳✸ ✽✳✷ ✵✳✷✹ ✵✳✷✹s❤❛✶ ✻✼✺ ✸✹ ✶✳✹✹ ✹✾✳✾ ✶✽✪ ✷✳✵✪ ✶✳✵✵✵ ✶✸✳✸ ✽✳✶ ✵✳✶✻ ✵✳✶✻❢♦r♠❛t✲t♦❢t❡ ✸✸✵ ✶✽ ✶✳✽✻ ✺✺✳✾ ✶✾✪ ✶✳✽✪ ✶✳✵✷ ✾✳✼ ✶✳✾ ✵✳✸✵ ✵✳✸✷❢♦r♠❛t✲①♣❛r❜ ✸✶✷ ✸✵ ✶✳✹✸ ✾✺✳✸ ✶✾✪ ✶✳✶✪ ✶✳✵✸✷ ✶✷ ✹✳✺ ✵✳✺✻ ✵✳✺✼❝♦r❞✐❝ ✻✺✹ ✷✼ ✶✳✹✻ ✹✵✳✻ ✶✽✪ ✷✳✺✪ ✶✳✵✵✵ ✶✺✳✽ ✻✳✼ ✵✳✺✶ ✵✳✺✶♣❛rt✐❛❧✲s✉♠s ✹✼✹ ✸✸ ✶✳✹✺ ✼✵✳✶ ✷✶✪ ✶✳✹✪ ✶✳✵✵✶ ✶✹✳✹ ✼✳✶ ✶✳✵✶ ✶✳✵✶s♣❡❝tr❛❧✲♥♦r♠ ✽✼✷ ✹✷ ✶✳✾✺ ✹✼✳✾ ✶✾✪ ✷✳✶✪ ✶✳✵✵✶ ✾✳✸ ✷✳✺ ✵✳✵✻ ✵✳✵✻❞♥❛ ✵✳✷✹ ✶✾ ✶✳✷✻ ✼✾✶✼✼ ✷✼✪ ✵✳✵✪ ✶✶✳✽ ✶✻✳✾ ✶✷ ✶✶✳✼✵ ✶✶✳✼✵❜❛s❡✻✹ ✺✻✵ ✷✾ ✶✳✺✷ ✺✶✳✻ ✶✽✪ ✶✳✾✪ ✶✳✵✵✶ ✶✺✳✷ ✻ ✵✳✷✹ ✵✳✷✹❢❛st❛ ✻✵✼ ✸✻ ✶✳✽✻ ✺✾✳✷ ✶✾✪ ✶✳✼✪ ✶✳✵✵✶ ✶✵ ✷✳✾ ✵✳✺✹ ✵✳✺✹t❛❣❝❧♦✉❞ ✻✽✸ ✹✹ ✶✳✼✼ ✻✹✳✶ ✶✼✪ ✶✳✻✪ ✶✳✵✸✶ ✶✶✳✺ ✸ ✵✳✻✹ ✵✳✻✹✉♥♣❛❝❦✲❝♦❞❡ ✶✺✽ ✸✸ ✶✳✼✽ ✷✵✾✳✽ ✷✵✪ ✵✳✺✪ ✶✳✵✷✷ ✶✻✳✶ ✸✳✽ ✷✳✼✹ ✷✳✼✺✈❛❧✐❞❛t❡✲✐♥♣✉t ✺✷✹ ✸✷ ✶✳✹✼ ✻✶✳✸ ✶✾✪ ✶✳✻✪ ✶✳✵✵✸ ✶✺✳✺ ✻✳✷ ✵✳✻✾ ✵✳✻✾

❘❘ ♥➦ ✽✹✵✺

Page 19: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✶✻ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

✶ ❧♦♦♣ ✿✷ ❝♠♣ ✵①✷✾✾ ✱ ❡❞✐✸ ❥❛ ❁❧♦♦♣❃✹ ❥♠♣ ✯❡❛①

✺ ✳ ✳ ✳✻ ♠♦✈ −✵①✶✵ ✭❡❜① ✮ ✱ ❡❛①✼ ❛❞❞ ❡❛① ✱−✵①✷✵ ✭❡❜①✮✽ ❛❞❞ ✵ ① ❢ ❢ ❢ ❢ ❢ ❢ ❢ ✵ ✱ ❡❜①✾ ❛❞❞ ✵①✷ ✱ ❡s ✐

✶✵ ♠♦✈③✇❧ ✭ ❡s ✐ ✮ ✱ ❡❞✐✶✶ ♠♦✈ ✵ ① ✳ ✳ ✳ ✭ ✱ ❡❞✐ ✱ ✹ ✮ ✱ ❡❛①✶✷ ❥♠♣ ❁❧♦♦♣❃

❋✐❣✉r❡ ✼✿ ▼❛✐♥ ❧♦♦♣ ♦❢ t❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r ✭❞✐s♣❛t❝❤ ✰ ❆❉❉ ❜②t❡❝♦❞❡✮

t❤❡ ❝♦❞❡ ✐s ✐♥t❡r♣r❡t❡❞✱ ❡✈❡♥ ❧✐❜r❛r✐❡s s✉❝❤ ❛s ❧✐❜❝ ❛♥❞ ❧✐❜♠✳ ❊①❡❝✉t✐♦♥ ❣♦❡s t♦ ♥❛t✐✈❡ ❝♦❞❡ ❛t ❛❝✉t✲♣♦✐♥t s✐♠✐❧❛r t♦ ❛ ♥❛t✐✈❡ ❧✐❜❝ ❞♦❡s ❛ s②st❡♠ ❝❛❧❧✳ ❚❤❡ s❤♦rt ❧♦♦♣ ✐s ❛❧s♦ t❤❡ r❡❛s♦♥ ✇❤② t❤❡❢r❛❝t✐♦♥ ♦❢ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐♥str✉❝t✐♦♥s ✐s ❤✐❣❤❡r t❤❛♥ ❏❛✈❛s❝r✐♣t ♦r P②t❤♦♥✳

❚❤❡ ❝♦♠♣✐❧❡r ❝♦✉❧❞ ♥♦t ❛❝❤✐❡✈❡ st❛❝❦ ❝❛❝❤✐♥❣ ✹✱ ♣r♦❜❛❜❧② ❞✉❡ t♦ t❤❡ ❧✐♠✐t❡❞ ♥✉♠❜❡r ♦❢ r❡❣✲✐st❡rs✳ ❋✐❣✉r❡ ✼ ✐❧❧✉str❛t❡s t❤❡ ①✽✻ ❛ss❡♠❜❧② ❝♦❞❡ ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣✱ ❛s ✇❡❧❧ ❛s ❡♥tr② ❢♦r t❤❡❆❉❉ ❜②t❡❝♦❞❡✳ ❚❤❡ ❞✐s♣❛t❝❤ ❝♦♥s✐sts ✐♥ s❡✈❡♥ ✐♥str✉❝t✐♦♥s✳ ❚✇♦ ♦❢ t❤❡♠ ✭❧✐♥❡s ✷ ❛♥❞ ✸✮ ♣❡r❢♦r♠t❤❡ ✉s❡❧❡ss r❛♥❣❡ ❝❤❡❝❦ t❤❛t t❤❡ ❝♦♠♣✐❧❡r ❝♦✉❧❞ ♥♦t r❡♠♦✈❡✳ ◆♦t❡ t❤❡ ✐♥str✉❝t✐♦♥s ❛t ❧✐♥❡ ✾✕✶✶✿t❤❡ ❝♦♠♣✐❧❡r ❝❤♦s❡ t♦ r❡♣❧✐❝❛t❡ t❤❡ ❝♦❞❡ t②♣✐❝❛❧❧② ❢♦✉♥❞ ❛t t❤❡ t♦♣ ♦❢ t❤❡ ✐♥✜♥✐t❡ ❧♦♦♣ ❛♥❞ ♠♦✈❡✐t ❛t t❤❡ ❜♦tt♦♠ ♦❢ ❡❛❝❤ ❝❛s❡ ❡♥tr② ✭❝♦♠♣❛r❡ ✇✐t❤ ❋✐❣✉r❡ ✶✮✳

❆❝r♦ss ❛❧❧ ❜❡♥❝❤♠❛r❦s✱ ✷✶ ✐♥str✉❝t✐♦♥s ❛r❡ ♥❡❡❞❡❞ t♦ ❡①❡❝✉t❡ ♦♥❡ ❜②t❡❝♦❞❡✳ ◆❡❤❛❧❡♠✱ ❙❛♥❞②❇r✐❞❣❡ ❛♥❞ ❚❆●❊ ❛r❡ r❛♥❦❡❞ ✐♥ t❤❡ s❛♠❡ ♦r❞❡r ❛s ❢♦r t❤❡ ♦t❤❡r t✇♦ ✐♥t❡r♣r❡t❡rs✳

❍♦✇❡✈❡r✱ ✇✐t❤ t❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r✱ t❤❡ ❛❝❝✉r❛❝② ♦❢ ❚❆●❊✰■❚❚❆●❊ ✐s ♦❢t❡♥ r❡❧❛t✐✈❡❧② ♣♦♦r✱✐✳❡✳ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡ ❡①❝❡❡❞s ✶ ▼P❑■✳ ❲❡ r❡♠❛r❦❡❞ t❤❛t ✐♥ t❤❡s❡ ❝❛s❡s t❤❡ ❛❝❝✉r❛❝② ♦❢ t❤❡s♠❛❧❧❡r ■❚❚❆●❊ ✭❚❆●❊✷✮ ✐s ♠✉❝❤ ❧♦✇❡r t❤❛♥ t❤❡ ♦♥❡ ✇✐t❤ t❤❡ ❧❛r❣❡r ■❚❚❆●❊ ✭❚❆●❊✶✮✳❚❤❡r❡❢♦r❡ t❤❡ r❡❧❛t✐✈❡❧② ❧♦✇ ❛❝❝✉r❛❝② s❡❡♠s t♦ ❜❡ ❛ss♦❝✐❛t❡❞ ✇✐t❤ ✐♥t❡r♣r❡t❡r ❢♦♦t♣r✐♥t ✐ss✉❡s ♦♥t❤❡ ■❚❚❆●❊ ♣r❡❞✐❝t♦r✳ ❚♦ ❝♦♥✜r♠ t❤✐s ♦❜s❡r✈❛t✐♦♥✱ ✇❡ r✉♥ ❛♥ ❡①tr❛ s✐♠✉❧❛t✐♦♥ ❚❆●❊✸ ✇❤❡r❡t❤❡ ■❚❚❆●❊ ♣r❡❞✐❝t♦r ✐s ✺✵ ❑❇✳ ❆ ✺✵❑❇ ■❚❚❆●❊ ♣r❡❞✐❝t♦r ❛❧❧♦✇s t♦ r❡❞✉❝❡ t❤❡ ♠✐s♣r❡❞✐❝t✐♦♥r❛t❡ t♦ t❤❡ ✏♥♦r♠❛❧✑ r❛t❡ ❡①❝❡♣t ❢♦r ❝r❛❢t② ✇❤✐❝❤ ✇♦✉❧❞ st✐❧❧ ♥❡❡❞ ❛ ❧❛r❣❡r ■❚❚❆●❊✳ ❚❤❡ ✈❡r②❧❛r❣❡ ❢♦♦t♣r✐♥t r❡q✉✐r❡❞ ❜② t❤❡ ✐♥t❡r♣r❡t❡r ♦♥ t❤❡ ■❚❚❆●❊ ♣r❡❞✐❝t♦r ✐s ❛❧s♦ ❛ss♦❝✐❛t❡❞ ✇✐t❤ t❤❡❤✉❣❡ ♥✉♠❜❡r ♦❢ ♣♦ss✐❜❧❡ t❛r❣❡ts ✭✹✼✽✮ ✐♥ t❤❡ ♠❛✐♥ s✇✐t❝❤ ♦❢ t❤❡ ✐♥t❡r♣r❡t❡r✳

✺✳✹ ❉✐s❝✉ss✐♦♥

●❡♥❡r❛❧❧② ❛❧❧ t❤r❡❡ ✐♥t❡r♣r❡t❡rs r✉♥ ❛t q✉✐t❡ ❤✐❣❤ ♣❡r❢♦r♠❛♥❝❡ ✇✐t❤ ♠❡❞✐❛♥ ✈❛❧✉❡s ♦❢ ✶✳✼✱ ✶✳✻ ❛♥❞✶✳✷ ■P❈ ❢♦r r❡s♣❡❝t✐✈❡❧② P②t❤♦♥✱ ❏❛✈❛s❝r✐♣t ❛♥❞ ❈▲■ ♦♥ ❙❛♥❞② ❇r✐❞❣❡✳

❖✉r ❡①♣❡r✐♠❡♥ts ❝❧❡❛r❧② s❤♦✇ t❤❛t ❜❡t✇❡❡♥ t✇♦ r❡❝❡♥t ❣❡♥❡r❛t✐♦♥s ♦❢ ■♥t❡❧ ♣r♦❝❡ss♦rs✱ ◆❡✲❤❛❧❡♠ ❛♥❞ ❙❛♥❞② ❇r✐❞❣❡✱ t❤❡ ✐♠♣r♦✈❡♠❡♥t ♦♥ t❤❡ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ❛❝❝✉r❛❝② ♦♥ ✐♥t❡r♣r❡t❡rs ✐s❞r❛♠❛t✐❝ ❢♦r P②t❤♦♥ ❛♥❞ ❏❛✈❛s❝r✐♣t✳ ❖✉r ❡①♣❡r✐♠❡♥ts s✐♠✉❧❛t✐♥❣ ❚❆●❊ ❛♥❞ ■❚❚❆●❊ s❤♦✇ t❤❛t❛s ❧♦♥❣ ❛s t❤❡ ♣❛②❧♦❛❞ ✐♥ t❤❡ ❜②t❡❝♦❞❡ r❡♠❛✐♥s ❧✐♠✐t❡❞ ❛♥❞ ❞♦ ♥♦t ❢❡❛t✉r❡ s✐❣♥✐✜❝❛♥t ❛♠♦✉♥t♦❢ ❡①tr❛ ✐♥❞✐r❡❝t ❜r❛♥❝❤❡s t❤❡♥ t❤❡ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡ ♦♥ t❤❡ ✐♥t❡r♣r❡t❡r ❡①❡❝✉t✐♦♥ ❝❛♥ ❜❡ ❡✈❡♥❜❡❝♦♠❡ ✐♥s✐❣♥✐✜❝❛♥t ✭❧❡ss t❤❛♥ ✵✳✺ ▼P❑■✮✳

✹❞❡s♣✐t❡ ❛ ♥✉♠❜❡r ♦❢ ❛tt❡♠♣ts✳✳✳

■♥r✐❛

Page 20: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✶✼

❚❛❜❧❡ ✺✿ ❈▲■ ❝❤❛r❛❝t❡r✐st✐❝s ❛♥❞ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ❢♦r ◆❡❤❛❧❡♠ ✭◆❡❤✳✮✱ ❙❛♥❞② ❇r✐❞❣❡ ✭❙❇✮ ❛♥❞❚❆●❊ ✭❚✶ t♦ ❚✸✮❜❡♥❝❤♠❛r❦ ●❜❝ ●✐♥s ■P❈ ✐♥s✴❜❝ ❜r ✐♥❞ ✐♥❞✴❜❝ ▼P❑■

◆❡❤✳ ❙❇ ❚ ✶ ❚ ✷ ❚ ✸✶✻✹✳❣③✐♣ ✼✽✳✽ ✶✻✻✼✳✷ ✶✳✷✸ ✷✶✳✷ ✷✸✪ ✹✳✽✪ ✶✳✵✷ ✶✽✳✼ ✶✹✳✺ ✵✳✻✹ ✶✳✺✽ ✵✳✻✷✶✼✺✳✈♣r ✶✽✳✹ ✹✵✵✳✾ ✶ ✷✶✳✽ ✷✸✪ ✹✳✼✪ ✶✳✵✸ ✷✹✳✽ ✷✶✳✾ ✻✳✹✾ ✶✸✳✻✷ ✶✳✵✽✶✼✼✳♠❡s❛ ✶✶✽✳✻ ✸✶✼✼✳✶ ✶✳✸ ✷✻✳✽ ✷✸✪ ✹✳✵✪ ✶✳✵✼ ✶✸✳✽ ✶✶✳✶ ✵✳✷✶ ✵✳✺✾ ✵✳✷✵✶✼✾✳❛rt ✹✳✼ ✺✽✳✺ ✶✳✹✾ ✶✷✳✺ ✷✻✪ ✽✳✵✪ ✶✳✵✵ ✼✳✸ ✾✳✸ ✵✳✸✽ ✵✳✸✽ ✵✳✸✼✶✽✶✳♠❝❢ ✶✸✳✸ ✶✽✶✳✷ ✶✳✶✾ ✶✸✳✼ ✷✺✪ ✼✳✹✪ ✶✳✵✶ ✶✼✳✺ ✶✺✳✶ ✶✳✸✸ ✷✳✵✾ ✶✳✵✽✶✽✸✳❡q✉❛❦❡ ✹✵✳✺ ✼✷✻✳✶ ✶✳✵✾ ✶✼✳✾ ✷✹✪ ✺✳✼✪ ✶✳✵✷ ✷✵✳✽ ✶✾ ✵✳✹✼ ✵✳✻✽ ✵✳✹✸✶✽✻✳❝r❛❢t② ✸✺✳✽ ✶✵✹✼✳✸ ✶✳✵✸ ✷✾✳✷ ✷✷✪ ✸✳✺✪ ✶✳✵✹ ✷✶✳✶ ✶✾✳✷ ✶✶✳✽✼ ✶✻✳✸✶ ✹✳✵✶✶✽✽✳❛♠♠♣ ✾✶✳✸ ✶✻✻✺✳✾ ✶✳✷✹ ✶✽✳✸ ✷✹✪ ✺✳✼✪ ✶✳✵✹ ✶✾✳✺ ✶✹✳✹ ✵✳✸✾ ✶✳✶✹ ✵✳✸✵✶✾✼✳♣❛rs❡r ✶✷✳✻ ✹✹✼✳✺ ✶✳✷✹ ✸✺✳✹ ✷✷✪ ✸✳✵✪ ✶✳✵✻ ✶✹✳✹ ✶✵✳✽ ✶✳✵✶ ✷✳✼✺ ✵✳✼✵✷✺✻✳❜③✐♣✷ ✷✽✳✸ ✹✻✵✳✽ ✶✳✸✷ ✶✻✳✸ ✷✹✪ ✻✳✷✪ ✶✳✵✷ ✶✼✳✺ ✶✷✳✼ ✶✳✺✺ ✷✳✶✺ ✵✳✹✹

0

5

10

15

20

25

gzip

vpr

mesa

art mcf equa

ke

crafty

ammp

parse

rbz

ip2

NehalemSandy Bridge

TAGE 1

❋✐❣✉r❡ ✽✿ ❈▲■ ▼P❑■ ❢♦r ◆❡❤❛❧❡♠✱ ❙❛♥❞② ❇r✐❞❣❡✱ ❛♥❞ ❚❆●❊ ✶

❘❘ ♥➦ ✽✹✵✺

Page 21: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✶✽ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

❚❤❡r❡❢♦r❡✱ t❤❡ ♣r❡❞✐❝t❛❜✐❧✐t② ♦❢ ❜r❛♥❝❤❡s✱ ❜♦t❤ ✐♥❞✐r❡❝t ❛♥❞ ❝♦♥❞✐t✐♦♥❛❧✱ s❤♦✉❧❞ ♥♦t ❜❡ ❝♦♥✲s✐❞❡r❡❞ ❛s ❛♥ ✐ss✉❡ ❛♥②♠♦r❡ ❢♦r ❏❛✈❛s❝r✐♣t ❛♥❞ P②t❤♦♥ ✐♥t❡r♣r❡t❡rs✳

❋♦r t❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r✱ t❤❡ r❡s✉❧ts ♦♥ ◆❡❤❛❧❡♠ ❛♥❞ ❙❛♥❞② ❇r✐❞❣❡ ❛r❡ ♠✉❝❤ ♠♦r❡ ♠✐t✐❣❛t❡❞✱✇✐t❤ ❙❛♥❞② ❇r✐❞❣❡ ♦♥❧② r❡❞✉❝✐♥❣ t❤❡ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡ ❜② ❛t ♠♦st ✷✺✪ ❛♥❞ ♦❢t❡♥ ♠✉❝❤ ❧❡ss✱❡✳❣✳ ♦♥ ❛rt✱ ✐t ❡✈❡♥ ❧♦s❡s ❛❝❝✉r❛❝②✳ ❲✐t❤♦✉t ✐♥❢♦r♠❛t✐♦♥ ♦♥ t❤❡ ♣r❡❞✐❝t♦r ❞❡s✐❣♥ ✐♥ ❙❛♥❞②❇r✐❞❣❡✱ ❜✉t ✇✐t❤ t❤❡ ❢❡❡❞❜❛❝❦ ♦❢ t❤❡ s✐♠✉❧❛t✐♦♥ ♦❢ ❚❆●❊✱ ✇❡ s✉s♣❡❝t t❤❛t ❙❛♥❞② ❇r✐❞❣❡ ♣r❡✲❞✐❝t♦r ❤❛s ♥♦t t❤❡ ❝❛♣❛❝✐t② t♦ r❡t❛✐♥ t❤❡ ♦✈❡r❛❧❧ ❢♦♦t♣r✐♥t ♥❡❡❞❡❞ ❜② t❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r✳ ❚❤❡❚❆●❊✰■❚❚❆●❊ ♣r❡❞✐❝t♦r ✇♦✉❧❞ ❜❡ ❛❜❧❡ r❡t❛✐♥ t❤✐s ❢♦♦t♣r✐♥t ♣r♦✈✐❞❡❞ t❤❛t ♦♥❡ ✉s❡s ❛ ✈❡r②❧❛r❣❡ ■❚❚❆●❊ ❝♦♠♣♦♥❡♥t✳

✺✳✺ ❋♦❧❦❧♦r❡ ♦♥ ✏❤❛r❞ t♦ ♣r❡❞✐❝t✑ ❜r❛♥❝❤❡s ✐♥ ■♥t❡r♣r❡t❡rs

❚❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ✐♥ ❡❛❝❤ ✐♥t❡r♣r❡t❡r ✐s ❣❡♥❡r❛❧❧② ❝♦♥s✐❞❡r❡❞ ❛s t❤❡ ♦♥❡ t❤❛t✐s ✈❡r② ❤❛r❞ t♦ ♣r❡❞✐❝t✳ ❙✐♠✉❧❛t✐♦♥ ❛❧❧♦✇s ✉s t♦ ♦❜s❡r✈❡ t❤❡ ✐♥❞✐✈✐❞✉❛❧ ❜❡❤❛✈✐♦r ♦❢ s♣❡❝✐✜❝ ❜r❛♥❝❤✐♥str✉❝t✐♦♥s✳ ❲❡ ♠❡❛s✉r❡❞ t❤❡ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t✐♦ ♦❢ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ✐♥❡❛❝❤ ✐♥t❡r♣r❡t❡r✳ ❚❤❡ s♦✉r❝❡ ❝♦❞❡ ♦❢ P②t❤♦♥ r❡❢❡rs t♦ t✇♦ ✏❤❛r❞ t♦ ♣r❡❞✐❝t✑ ❜r❛♥❝❤❡s✳ ❚❤❡ ✜rst✐s t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ t❤❛t ✐♠♣❧❡♠❡♥ts t❤❡ s✇✐t❝❤ st❛t❡♠❡♥t✳ ❚❤❡ s❡❝♦♥❞ ❝♦♠❡s ❢♦r t❤❡ ♠❛❝r♦❍❆❙❴❆❘● t❤❛t ❝❤❡❝❦s ✇❤❡t❤❡r ❛♥ ♦♣❝♦❞❡ ❤❛s ❛♥ ❛r❣✉♠❡♥t✳ ❲❡ ❛❧s♦ ❝♦♥s✐❞❡r❡❞ t❤✐s ❝♦♥❞✐t✐♦♥❛❧❜r❛♥❝❤✳ ❚❛❜❧❡ ✻ r❡♣♦rts t❤❡ ♠✐s♣r❡❞✐❝t✐♦♥ ♥✉♠❜❡rs ❢♦r t❤❡s❡ ❜r❛♥❝❤❡s ❢♦r ❛❧❧ ❜❡♥❝❤♠❛r❦s✳

❋♦r ❏❛✈❛s❝r✐♣t✱ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ❛♣♣❡❛r❡❞ ❛s q✉✐t❡ ❡❛s② t♦ ♣r❡❞✐❝t ✇✐t❤ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡s❣❡♥❡r❛❧❧② ❧♦✇❡r t❤❛♥ ✶✪ ✇✐t❤ t❤❡ ✶✷❑❇ ■❚❚❆●❊✱ ❛♥❞ ❛ s✐♥❣❧❡ ♦✉t❧✐❡r ❜❡♥❝❤♠❛r❦✱ t❤❡ ❛❧r❡❛❞②♠❡♥t✐♦♥❡❞ ❜✐ts✲✐♥✲❜②t❡ ❛t ✸✳✽✪❀ ♥♦t t❤❛t ❞r❛♠❛t✐❝ ✐❢ ♦♥❡ ❝♦♥s✐❞❡rs t❤❛t ✇❡ ❛r❡ ♣r❡❞✐❝t✐♥❣❝♦♠♣❧❡t❡ t❛r❣❡t ✇✐t❤ ✷✹✹ ❞✐✛❡r❡♥t ♣♦ss✐❜✐❧✐t✐❡s✦

❖♥ P②t❤♦♥✱ ❍❆❙❴❆❘● t✉r♥s ♦✉t t♦ ❜❡ ✈❡r② ❡❛s✐❧② ♣r❡❞✐❝t❡❞ ❜② t❤❡ ❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ♣r❡❞✐❝t♦r❚❆●❊✳ ■♥❞✐r❡❝t ❥✉♠♣s ❛r❡ ❛❧s♦ ✈❡r② ✇❡❧❧ ♣r❡❞✐❝t❡❞ ❢♦r ♠♦st ❜❡♥❝❤♠❛r❦s✱ ❡✈❡♥ ✐♥ ♠♦st ❝❛s❡s ❜②t❤❡ ✻❑❇ ■❚❚❆●❊✳ ▼♦st ♦❢ t❤♦s❡ t❤❛t ❛r❡ ❜❛❞❧② ♣r❡❞✐❝t❡❞ ✇✐t❤ ✻❑❇ ■❚❚❆●❊ ❛r❡ ✇❡❧❧ ❤❛♥❞❧❡❞❜② t❤❡ ✶✷❑❇ ❝♦♥✜❣✉r❛t✐♦♥✱ s❡❡ ❢♦r ❡①❛♠♣❧❡ t❤❡ P②t❤♦♥ ❝❤❛♦s✱ ❞❥❛♥❣♦✲✈✷✱ ❢♦r♠❛tt❡❞✲❧♦❣✱ ❣♦✳

❲✐t❤ t❤❡ ❈▲■ ✐♥t❡r♣r❡t❡r✱ t❤❡ ♠❛✐♥ ✐♥❞✐r❡❝t ❜r❛♥❝❤ s✉✛❡r ❢r♦♠ ❛ r❛t❤❡r ❤✐❣❤ ♠✐s♣r❡❞✐❝t✐♦♥r❛t❡ ✇❤❡♥ ❡①❡❝✉t✐♥❣ ✈♣r ❛♥❞ ❝r❛❢t② ✭❛♥❞ ❜③✐♣✷ t♦ s♦♠❡ ❡①t❡♥t✮ ✇✐t❤ ❛ ✶✷❑❇ ■❚❚❆●❊✳ ❇✉t ❛✺✵❑❇ ■❚❚❆●❊ ♣r❡❞✐❝t♦r str✐❝t❧② r❡❞✉❝❡ t❤✐s ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡ ❡①❝❡♣t ❢♦r ❝r❛❢t② ✇❤✐❝❤ ✇♦✉❧❞♥❡❡❞ ❛♥ ❡✈❡♥ ❧❛r❣❡r ■❚❚❆●❊ ♣r❡❞✐❝t♦r✳

❚❤❡r❡❢♦r❡ t❤❡ ❢♦❧❦❧♦r❡ ♦♥ t❤❡ ✉♥♣r❡❞✐❝t❛❜✐❧✐t② ♦❢ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐♥ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ✐sr❛t❤❡r ✉♥❥✉st✐✜❡❞✿ t❤✐s ✐♥❞✐r❡❝t ❜r❛♥❝❤ ✐s ✈❡r② ♣r❡❞✐❝t❛❜❧❡✳

✻ ❖t❤❡r ❘❡❧❛t❡❞ ❲♦r❦

❚❤✐s ♣❛♣❡r ✐s ❛❜♦✉t t❤❡ ✐♥t❡r❛❝t✐♦♥ ♦❢ ✐♥t❡r♣r❡t❡rs ✇✐t❤ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs✳ ❚❤❡ ♠♦st r❡❧❡✈❛♥t✇♦r❦ ♦♥ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ✐s ❝♦✈❡r❡❞ ❜② ❙❡❝t✐♦♥ ✸✳ ❚❤✐s s❡❝t✐♦♥ r❡✈✐❡✇s ❧✐t❡r❛t✉r❡ r❡❧❛t❡❞ t♦♦t❤❡r t❡❝❤♥✐q✉❡s t❤❛t ❛✐♠ ❛t ✐♠♣r♦✈✐♥❣ t❤❡ ♣❡r❢♦r♠❛♥❝❡ ♦❢ ✐♥t❡r♣r❡t❡rs✳

❚❤❡ ♦✈❡r❤❡❛❞ ♦❢ ✐♥t❡r♣r❡t❡rs ❝♦♠♣❛r❡❞ t♦ ♥❛t✐✈❡ ❝♦❞❡ ❞❡r✐✈❡s ♠♦st❧② ❢r♦♠ t✇♦ s♦✉r❝❡s✿ t❤❡♠❛♥❛❣❡♠❡♥t ♦❢ t❤❡ ❡✈❛❧✉❛t✐♦♥ st❛❝❦ ❛♥❞ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣✳

❱❡r② r❡❝❡♥t ✇♦r❦ ❜② ❙❛✈r✉♥✲❨❡♥✐ç❡r✐ ❡t ❛❧✳ ❬✷✻❪ st✐❧❧ r❡❢❡r❡♥❝❡s t❤❡ ♦r✐❣✐♥❛❧ ✇♦r❦ ♦❢ ❊rt❧❛♥❞ ●r❡❣❣ ❬✶✷❪✳ ❚❤❡✐r ❛♣♣r♦❛❝❤✱ ❤♦✇❡✈❡r✱ ✐s ✈❡r② ❞✐✛❡r❡♥t✿ t❤❡② ❝♦♥s✐❞❡r ❤♦st✲❱▼ t❛r❣❡t❡❞✐♥t❡r♣r❡t❡rs✱ ✐✳❡✳ ✐♥t❡r♣r❡t❡rs ❢♦r ❧❛♥❣✉❛❣❡s s✉❝❤ ❛s P②t❤♦♥ ♦r ❏❛✈❛s❝r✐♣t ✐♠♣❧❡♠❡♥t❡❞ ♦♥ t♦♣ ♦❢t❤❡ ❏❛✈❛ ❱▼✳ P❡r❢♦r♠❛♥❝❡ r❡s✉❧ts ❛r❡ ❞✐✣❝✉❧t t♦ ❝♦♠♣❛r❡ ✇✐t❤ ♦✉rs✳

❱✐t❛❧❡ ❛♥❞ ❆❜❞❡❧r❛❤♠❛♥ ❬✸✹❪ ❡❧✐♠✐♥❛t❡ t❤❡ ❞✐s♣❛t❝❤ ♦✈❡r❤❡❛❞ ✇✐t❤ ❛ t❡❝❤♥✐q✉❡ ❝❛❧❧❡❞ ❝❛t❡♥❛✲t✐♦♥✳ ■t ❝♦♥s✐sts ✐♥ ❝♦♣②✐♥❣ ❛♥❞ ❝♦♠❜✐♥✐♥❣ ❛t r✉♥✲t✐♠❡ s❡q✉❡♥❝❡s ♦❢ ♥❛t✐✈❡ ❝♦❞❡ ♣r♦❞✉❝❡❞ ✇❤❡♥t❤❡ ✐♥t❡r♣r❡t❡r ✇❛s ❝♦♠♣✐❧❡❞✳ ❍❛❧❢ t❤❡ ❜❡♥❝❤♠❛r❦s✱ ❤♦✇❡✈❡r✱ r✉♥ s❧♦✇❡r✱ ❜❡❝❛✉s❡ ♦❢ t❤❡ ✐♥❞✉❝❡❞❝♦❞❡ ❜❧♦❛t✱ ❛♥❞ t❤❡ ✐♥str✉❝t✐♦♥ ❝❛❝❤❡ ❜❡❤❛✈✐♦r ❞❡❣r❛❞❛t✐♦♥✳ ❚❤❡② r❡♣♦rt t❤❡ s✇✐t❝❤ ❞✐s♣❛t❝❤ t♦

■♥r✐❛

Page 22: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤

Pr❡❞

✐❝t✐♦♥❛♥❞t❤❡P❡r❢♦

r♠❛♥❝❡

♦❢■♥t❡r♣

r❡t❡rs✶✾

P②t❤♦♥ ✐♥❞✐r❡❝t ❆❘● ❏❛✈❛s❝r✐♣t ❈▲■■❚ ✶ ■❚ ✷ ❚❆●❊ ■❚ ✶ ■❚ ✷ ■❚ ✶ ■❚ ✷ ■❚ ✸

❝❛❧❧✲♠❡t❤ ✵✳✽✷✼✪ ✵✳✽✷✼✪ ✵✳✵✵✵✪ ❝✉❜❡ ✵✳✼✼✼✪ ✷✳✽✼✸✪ ✶✻✹✳❣③✐♣ ✵✳✻✶✷✪ ✷✳✻✾✽✪ ✵✳✺✻✾✪❝❛❧❧✲♠❡t❤✲s❧♦ts ✵✳✽✷✼✪ ✵✳✽✷✼✪ ✵✳✵✵✵✪ ♠♦r♣❤ ✵✳✵✷✾✪ ✵✳✵✷✾✪ ✶✼✺✳✈♣r ✶✷✳✺✷✼✪ ✷✼✳✽✶✷✪ ✵✳✾✵✺✪❝❛❧❧✲♠❡t❤✲✉♥❦ ✵✳✻✷✻✪ ✵✳✻✷✻✪ ✵✳✵✵✵✪ r❛②tr❛❝❡ ✶✳✵✶✹✪ ✽✳✶✹✾✪ ✶✼✼✳♠❡s❛ ✵✳✵✺✵✪ ✶✳✵✷✻✪ ✵✳✵✶✾✪❝❛❧❧✲s✐♠♣❧❡ ✵✳✾✾✶✪ ✵✳✾✾✶✪ ✵✳✵✵✵✪ ❜✐♥❛r②✲tr❡❡s ✶✳✷✹✸✪ ✶✳✷✸✷✪ ✶✼✾✳❛rt ✵✳✵✼✼✪ ✵✳✵✽✸✪ ✵✳✵✼✺✪❝❤❛♦s ✵✳✶✻✺✪ ✷✶✳✸✻✷✪ ✸✳✹✺✻✪ ❢❛♥♥❦✉❝❤ ✶✳✵✻✸✪ ✶✳✵✺✶✪ ✶✽✶✳♠❝❢ ✶✳✵✷✵✪ ✶✳✾✾✹✪ ✵✳✻✽✶✪❞❥❛♥❣♦✲✈✷ ✵✳✸✵✽✪ ✷✷✳✹✷✶✪ ✵✳✸✼✷✪ ♥❜♦❞② ✵✳✹✺✷✪ ✵✳✹✺✷✪ ✶✽✸✳❡q✉❛❦❡ ✵✳✶✽✺✪ ✵✳✺✹✶✪ ✵✳✶✶✸✪❢❛♥♥❦✉❝❤ ✵✳✻✺✷✪ ✵✳✼✶✽✪ ✵✳✵✵✶✪ ♥s✐❡✈❡ ✵✳✶✹✽✪ ✵✳✶✹✾✪ ✶✽✻✳❝r❛❢t② ✸✷✳✹✵✺✪ ✹✺✳✸✶✶✪ ✾✳✻✽✽✪❢❛st♣✐❝❦❧❡ ✵✳✹✼✽✪ ✵✳✻✸✹✪ ✵✳✵✹✷✪ ✸❜✐t✲❜✐ts✲✐♥✲❜②t❡ ✵✳✵✵✽✪ ✵✳✵✵✽✪ ✶✽✽✳❛♠♠♣ ✵✳✸✽✷✪ ✶✳✼✺✷✪ ✵✳✷✷✷✪❢❛st✉♥♣✐❝❦❧❡ ✵✳✼✷✸✪ ✸✳✼✸✵✪ ✵✳✵✻✵✪ ❜✐ts✲✐♥✲❜②t❡ ✸✳✽✷✼✪ ✸✳✼✸✷✪ ✶✾✼✳♣❛rs❡r ✶✳✽✽✶✪ ✼✳✾✸✾✪ ✵✳✼✽✻✪✢♦❛t ✵✳✵✵✽✪ ✵✳✵✶✵✪ ✵✳✽✷✶✪ ❜✐t✇✐s❡✲❛♥❞ ✵✳✵✵✵✪ ✵✳✵✵✵✪ ✷✺✻✳❜③✐♣✷ ✷✳✶✾✵✪ ✸✳✶✵✷✪ ✵✳✹✼✵✪❢♦r♠❛tt❡❞✲❧♦❣ ✵✳✶✸✻✪ ✹✽✳✷✶✷✪ ✶✳✷✶✻✪ ♥s✐❡✈❡✲❜✐ts ✵✳✶✹✻✪ ✵✳✶✹✻✪❣♦ ✹✳✹✵✼✪ ✶✸✳✺✷✶✪ ✵✳✾✽✵✪ r❡❝✉rs✐✈❡ ✶✳✶✷✸✪ ✶✳✷✶✹✪❤❡①✐♦♠✷ ✶✳✼✹✾✪ ✹✳✺✶✵✪ ✶✳✵✹✷✪ ❛❡s ✵✳✼✺✹✪ ✶✳✼✸✽✪❥s♦♥✲❞✉♠♣✲✈✷ ✵✳✵✶✺✪ ✵✳✷✵✵✪ ✵✳✽✹✶✪ ♠❞✺ ✵✳✷✽✶✪ ✵✳✷✽✽✪❥s♦♥✲❧♦❛❞ ✷✳✺✽✵✪ ✸✳✻✼✻✪ ✶✳✻✸✵✪ s❤❛✶ ✵✳✶✽✸✪ ✵✳✶✽✽✪♠❡t❡♦r✲❝♦♥t❡st ✵✳✹✻✵✪ ✵✳✺✺✽✪ ✵✳✺✽✸✪ ❢♦r♠❛t✲t♦❢t❡ ✵✳✺✷✾✪ ✵✳✺✽✽✪♥❜♦❞② ✵✳✵✵✷✪ ✵✳✵✵✸✪ ✵✳✼✺✽✪ ❢♦r♠❛t✲①♣❛r❜ ✵✳✹✽✷✪ ✵✳✻✶✷✪♥q✉❡❡♥s ✵✳✺✶✽✪ ✵✳✺✷✻✪ ✵✳✸✺✼✪ ❝♦r❞✐❝ ✵✳✹✺✾✪ ✵✳✹✺✾✪♣❛t❤❧✐❜ ✵✳✶✵✹✪ ✸✳✻✸✺✪ ✵✳✾✻✺✪ ♣❛rt✐❛❧✲s✉♠s ✵✳✵✵✵✪ ✵✳✵✵✵✪♣✐❞✐❣✐ts ✶✳✼✶✾✪ ✸✳✶✻✾✪ ✷✳✾✺✽✪ s♣❡❝tr❛❧✲♥♦r♠ ✵✳✵✽✾✪ ✵✳✵✽✾✪r❛②tr❛❝❡ ✵✳✽✼✸✪ ✻✳✻✾✶✪ ✸✳✽✻✶✪ ❞♥❛ ✵✳✹✷✹✪ ✷✳✶✺✺✪r❡❣❡①✲❝♦♠♣✐❧❡ ✾✳✽✺✷✪ ✶✻✳✷✽✹✪ ✵✳✺✽✾✪ ❜❛s❡✻✹ ✵✳✷✾✸✪ ✵✳✷✾✸✪r❡❣❡①✲❡✛❜♦t ✶✳✸✶✶✪ ✶✳✻✵✽✪ ✵✳✶✼✼✪ ❢❛st❛ ✶✳✷✶✵✪ ✶✳✷✸✸✪r❡❣❡①✲✈✽ ✶✳✻✼✽✪ ✷✳✸✼✹✪ ✵✳✶✶✷✪ t❛❣❝❧♦✉❞ ✵✳✸✻✽✪ ✵✳✸✼✻✪r✐❝❤❛r❞s ✵✳✹✷✵✪ ✻✳✼✼✺✪ ✶✳✻✵✷✪ ✉♥♣❛❝❦✲❝♦❞❡ ✵✳✷✶✻✪ ✵✳✸✸✹✪s✐❧❡♥t✲❧♦❣❣✐♥❣ ✵✳✸✶✻✪ ✵✳✸✷✶✪ ✵✳✵✵✹✪ ✈❛❧✐❞❛t❡✲✐♥♣✉t ✵✳✼✶✸✪ ✵✳✼✶✾✪s✐♠♣❧❡✲❧♦❣❣✐♥❣ ✵✳✵✸✵✪ ✺✸✳✺✺✷✪ ✶✳✶✾✼✪t❡❧❝♦ ✵✳✷✻✹✪ ✵✳✸✹✷✪ ✵✳✵✹✹✪✉♥♣❛❝❦✲s❡q ✵✳✵✷✼✪ ✵✳✵✷✾✪ ✵✳✵✵✶✪

❚❛❜❧❡ ✻✿ ✭■❚✮❚❆●❊ ♠✐s♣r❡❞✐❝t✐♦♥ r❡s✉❧ts ❢♦r ✏❤❛r❞✑ ❜r❛♥❝❤✱ ❚❆●❊ ✶ ❛♥❞ ❚❆●❊ ✷

❘❘

♥➦✽✹✵✺

Page 23: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✷✵ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

❜❡ ✶✷ ✐♥str✉❝t✐♦♥s ❛♥❞ ✶✾ ❝②❝❧❡s ♦♥ ❛♥ ❯❧tr❛❙♣❛r❝✲■■■ ♣r♦❝❡ss♦r✱ ❛♥❞ ♦♥ ❛✈❡r❛❣❡ ✶✵✵ ❝②❝❧❡s ♣❡r❜②t❡❝♦❞❡ ❢♦r t❤❡ ❢❛❝t♦r✐❛❧ ❢✉♥❝t✐♦♥ ✇r✐tt❡♥ ✐♥ ❚❝❧✳

▼❝❈❛♥❞❧❡ss ❛♥❞ ●r❡❣❣ ❬✶✽❪ ♣r♦♣♦s❡ t♦ ♦♣t✐♠✐③❡ ❝♦❞❡ ❛t t❤❡ ❛ss❡♠❜❧② ❧❡✈❡❧ t♦ ❡❧✐♠✐♥❛t❡ ✐♥t❡r✲❢❡r❡♥❝❡ ❜❡t✇❡❡♥ t❛r❣❡ts ♦❢ t❤❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤✳ ❚✇♦ t❡❝❤♥✐q✉❡s ❛r❡ ❞❡✈❡❧♦♣❡❞✿❢♦r❝✐♥❣ ❛❧✐❣♥♠❡♥t✱❛♥❞ r❡♦r❞❡r✐♥❣ ♦❢ ❡♥tr✐❡s✳ ❚❤❡ ❤❛r❞✇❛r❡ ✉s❡❞ ❢♦r ❡①♣❡r✐♠❡♥ts ✐s ❛ ❈♦r❡✷ ♣r♦❝❡ss♦r✳ ❲❡ ❝❧❛✐♠t❤❛t ♠♦❞❡r♥ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs ❛r❡ q✉✐t❡ ✐♥s❡♥s✐t✐✈❡ t♦ t❛r❣❡t ♣❧❛❝❡♠❡♥t✳

✻✳✶ ❙t❛❝❦ ❈❛❝❤✐♥❣ ❛♥❞ ❘❡❣✐st❡rs

❲✐t❤ t❤❡ ♥♦t❛❜❧❡ ❡①❝❡♣t✐♦♥ ♦❢ t❤❡ ❉❛❧✈✐❦ ✈✐rt✉❛❧ ♠❛❝❤✐♥❡ ❬✾❪✱ ♠♦st ❝✉rr❡♥t ✐♥t❡r♣r❡t❡rs ♣❡r❢♦r♠t❤❡✐r ❝♦♠♣✉t❛t✐♦♥s ♦♥ ❛♥ ❡✈❛❧✉❛t✐♦♥ st❛❝❦✳ ❱❛❧✉❡s ❛r❡ st♦r❡❞ ✐♥ ❛ ❞❛t❛ str✉❝t✉r❡ ✇❤✐❝❤ r❡s✐❞❡s✐♥ ♠❡♠♦r② ✭r❡❝❛❧❧ ❋✐❣✉r❡ ✶ ❢♦r ✐❧❧✉str❛t✐♦♥✮✳ ❊rt❧ ♣r♦♣♦s❡❞ st❛❝❦ ❝❛❝❤✐♥❣ ❬✶✵❪ t♦ ❢♦r❝❡ t❤❡ t♦♣ ♦❢t❤❡ st❛❝❦ ✐♥t♦ r❡❣✐st❡rs✳ ❚♦❣❡t❤❡r ✇✐t❤ ●r❡❣❣✱ t❤❡② ❧❛t❡r ♣r♦♣♦s❡❞ t♦ ❝♦♠❜✐♥❡ ✐t ✇✐t❤ ❞②♥❛♠✐❝s✉♣❡r✐♥str✉❝t✐♦♥s ❬✶✸❪ ❢♦r ❛❞❞✐t✐♦♥❛❧ ♣❡r❢♦r♠❛♥❝❡✳ ❙t❛❝❦ ❝❛❝❤✐♥❣ ✐s ♦rt❤♦❣♦♥❛❧ t♦ t❤❡ ❜❡❤❛✈✐♦r♦❢ t❤❡ ❜r❛♥❝❤ ♣r❡❞✐❝t♦r✳ ❲❤✐❧❡ ✐t ❝♦✉❧❞ ❞❡❝r❡❛s❡ t❤❡ ♥✉♠❜❡r ♦❢ ❝②❝❧❡s ♦❢ t❤❡ ✐♥t❡r♣r❡t❡r ❧♦♦♣✱❛♥❞ ❤❡♥❝❡ ✐♥❝r❡❛s❡ t❤❡ r❡❧❛t✐✈❡ ✐♠♣❛❝t ♦❢ ❛ ♠✐s♣r❡❞✐❝t✐♦♥✱ t❤✐s ❞❛t❛ ✇✐❧❧ t②♣✐❝❛❧❧② ❤✐t ✐♥ t❤❡ ▲✶❝❛❝❤❡ ❛♥❞ ❛❣❣r❡ss✐✈❡ ♦✉t✲♦❢✲♦r❞❡r ❛r❝❤✐t❡❝t✉r❡s ❛r❡ ❧❡ss ❧✐❦❡❧② t♦ ❜❡♥❡✜t✱ ❡s♣❡❝✐❛❧❧② ❢♦r r❛t❤❡r❧♦♥❣ ❧♦♦♣s✱ ❛♥❞ t❤❡ ❛❧r❡❛❞② r❡❛s♦♥❛❜❧② ❣♦♦❞ ♣❡r❢♦r♠❛♥❝❡ ✭■P❈✮✳ ❘❡❣✐st❡r ❛❧❧♦❝❛t♦rs ❤❛✈❡ ❛ ❤❛r❞t✐♠❡ ❦❡❡♣✐♥❣ t❤❡ r❡❧❡✈❛♥t ✈❛❧✉❡s ✐♥ r❡❣✐st❡rs ✺ ❜❡❝❛✉s❡ ♦❢ t❤❡ s✐③❡ ❛♥❞ ❝♦♠♣❧❡①✐t② ♦❢ t❤❡ ♠❛✐♥✐♥t❡r♣r❡t❡r ❧♦♦♣✳ ❙t❛❝❦ ❝❛❝❤✐♥❣ ❛❧s♦ ❛❞❞s s✐❣♥✐✜❝❛♥t ❝♦♠♣❧❡①✐t② t♦ t❤❡ ❝♦❞❡ ❜❛s❡✳

❆s ❛♥ ❛❧t❡r♥❛t✐✈❡ t♦ st❛❝❦ ❝❛❝❤✐♥❣✱ s♦♠❡ ✈✐rt✉❛❧ ♠❛❝❤✐♥❡s ❛r❡ r❡❣✐st❡r✲❜❛s❡❞✳ ❙❤✐ ❡t ❛❧✳ ❬✸✷❪s❤♦✇ t❤❛t t❤❡② ❛r❡ ♠♦r❡ ❡✣❝✐❡♥t ✇❤❡♥ s♦♣❤✐st✐❝❛t❡❞ tr❛♥s❧❛t✐♦♥ ❛♥❞ ♦♣t✐♠✐③❛t✐♦♥s ❛r❡ ❛♣♣❧✐❡❞✳❚❤✐s ✐s ❛❧s♦ ♦rt❤♦❣♦♥❛❧ t♦ t❤❡ ✐♠♣❧❡♠❡♥t❛t✐♦♥ ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣✳

✻✳✷ ❙✉♣❡r✐♥str✉❝t✐♦♥s ❛♥❞ ❘❡♣❧✐❝❛t✐♦♥

❙❡q✉❡♥❝❡s ♦❢ ❜②❝♦❞❡s ❛r❡ ♥♦t r❛♥❞♦♠✳ ❙♦♠❡ ♣❛✐rs ♦❢ ✐♥str✉❝t✐♦♥s ❛r❡ ♠♦r❡ ❢r❡q✉❡♥t t❤❛♥ ♦t❤❡rs✭❡✳❣✳ ❛ ❝♦♠♣❛r❡ ✐s ♦❢t❡♥ ❢♦❧❧♦✇❡❞ ❜② ❛ ❜r❛♥❝❤✮✳ ❙✉♣❡r✐♥str✉❝t✐♦♥s ❬✷✸❪ ❝♦♥s✐st ✐♥ s✉❝❤ s❡q✉❡♥❝❡s♦❢ ❢r❡q✉❡♥t❧② ♦❝❝✉rr✐♥❣ t✉♣❧❡s ♦❢ ❜②t❡❝♦❞❡✳ ◆❡✇ ♦♣❝♦❞❡s ❛r❡ ❞❡✜♥❡❞✱ ✇❤♦s❡ ♣❛②❧♦❛❞s ❛r❡ t❤❡❝♦♠❜✐♥❛t✐♦♥ ♦❢ t❤❡ ♣❛②❧♦❛❞s ♦❢ t❤❡ t✉♣❧❡ t❤❡② ❝♦♠❡ ❢r♦♠✳ ❚❤❡ ♦✈❡r❤❡❛❞ ♦❢ t❤❡ ❞✐s♣❛t❝❤ ❧♦♦♣ ✐s✉♥♠♦❞✐✜❡❞ ❜✉t t❤❡ ❣❛✐♥ ❝♦♠❡s ❢r♦♠ ❛ r❡❞✉❝❡❞ ♥✉♠❜❡r ♦❢ ✐t❡r❛t✐♦♥s ♦❢ t❤❡ ❧♦♦♣✱ ❤❡♥❝❡ ❛ r❡❞✉❝❡❞❛✈❡r❛❣❡ ❝♦st✳ ❊rt❧ ❛♥❞ ●r❡❣❣ ❬✶✷❪ ❞✐s❝✉ss st❛t✐❝ ❛♥❞ ❞②♥❛♠✐❝ s✉♣❡r✐♥str✉❝t✐♦♥s✳

❘❡♣❧✐❝❛t✐♦♥✱ ❛❧s♦ ♣r♦♣♦s❡❞ ❜② ❊rt❧ ❛♥❞ ●r❡❣❣✱ ❝♦♥s✐sts ✐♥ ❣❡♥❡r❛t✐♥❣ ♠❛♥② ♦♣❝♦❞❡s ❢♦r t❤❡s❛♠❡ ♣❛②❧♦❛❞✱ s♣❡❝✐❛❧✐③✐♥❣ ❡❛❝❤ ♦❝❝✉rr❡♥❝❡✱ ✐♥ ♦r❞❡r t♦ ♠❛①✐♠✐③❡ t❤❡ ♣❡r❢♦r♠❛♥❝❡ ♦❢ ❜r❛♥❝❤t❛r❣❡t ❜✉✛❡rs✳ ▼♦❞❡r♥ ♣r❡❞✐❝t♦rs ♥♦ ❧♦♥❣❡r ♥❡❡❞ ✐t t♦ ❝❛♣t✉r❡ ♣❛tt❡r♥s ✐♥ ❛♣♣❧✐❝❛t✐♦♥s✳

✻✳✸ ❏✉♠♣ ❚❤r❡❛❞✐♥❣

❲❡ ❞✐s❝✉ss❡❞ ❥✉♠♣ t❤r❡❛❞✐♥❣ ✐♥ ❣❡♥❡r❛❧ t❡r♠s ✐♥ ♣r❡✈✐♦✉s s❡❝t✐♦♥s✳ ❚♦ ❜❡ ♠♦r❡ ♣r❡❝✐s❡✱ s❡✈✲❡r❛❧ ✈❡rs✐♦♥s ♦❢ t❤r❡❛❞✐♥❣ ❤❛✈❡ ❜❡❡♥ ♣r♦♣♦s❡❞✿ t♦❦❡♥ t❤r❡❛❞✐♥❣ ✭✐❧❧✉str❛t❡❞ ✐♥ ❋✐❣✉r❡ ✷✮✱ ❞✐r❡❝tt❤r❡❛❞✐♥❣ ❬✶❪✱ ✐♥❧✐♥❡ t❤r❡❛❞✐♥❣ ❬✷✸❪✱ ♦r ❝♦♥t❡①t t❤r❡❛❞✐♥❣ ❬✷❪✳ ❆❧❧ ❢♦r♠s ♦❢ t❤r❡❛❞✐♥❣ r❡q✉✐r❡ ❡①✲t❡♥s✐♦♥s t♦ ❆◆❙■ ❈✳ ❙♦♠❡ ❛❧s♦ r❡q✉✐r❡ ❧✐♠✐t❡❞ ❢♦r♠s ♦❢ ❞②♥❛♠✐❝ ❝♦❞❡ ❣❡♥❡r❛t✐♦♥ ❛♥❞ ✇❛❧❦ ❛✇❛②❢r♦♠ ♣♦rt❛❜✐❧✐t② ❛♥❞ ❡❛s❡ ♦❢ ❞❡✈❡❧♦♣♠❡♥t✳

✺❊✈❡♥ ✇✐t❤ t❤❡ ❤❡❧♣ ♦❢ t❤❡ ●◆❯ ❡①t❡♥s✐♦♥ r❡❣✐st❡r ❛s♠✱ ♦r ♠❛♥✉❛❧❧② ❛❧❧♦❝❛t✐♥❣ ❛ ❢❡✇ t♦♣✲♦❢✲st❛❝❦ ❡❧❡♠❡♥ts ✐♥❧♦❝❛❧ ✈❛r✐❛❜❧❡✳

■♥r✐❛

Page 24: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✷✶

✼ ❈♦♥❝❧✉s✐♦♥

❉❡s♣✐t❡ ♠❛t✉r❡ ❏■❚ ❝♦♠♣✐❧❛t✐♦♥ t❡❝❤♥♦❧♦❣②✱ ✐♥t❡r♣r❡t❡rs ❛r❡ ✈❡r② ♠✉❝❤ ❛❧✐✈❡✳ ❚❤❡② ♣r♦✈✐❞❡ ❡❛s❡♦❢ ❞❡✈❡❧♦♣♠❡♥t ❛♥❞ ♣♦rt❛❜✐❧✐t②✳ ❯♥❢♦rt✉♥❛t❡❧②✱ t❤✐s ✐s ❛t t❤❡ ❡①♣❡♥s❡ ♦❢ ♣❡r❢♦r♠❛♥❝❡✿ ✐♥t❡r♣r❡t❡rs❛r❡ s❧♦✇✳ ▼❛♥② st✉❞✐❡s ❤❛✈❡ ✐♥✈❡st✐❣❛t❡❞ ✇❛②s t♦ ✐♠♣r♦✈❡ ✐♥t❡r♣r❡t❡rs✱ ❛♥❞ ♠❛♥② ❞❡s✐❣♥ ♣♦✐♥ts❤❛✈❡ ❜❡❡♥ ♣r♦♣♦s❡❞✳ ❇❡❝❛✉s❡ ♠❛♥② st✉❞✐❡s ❣♦ ❜❛❝❦ ✇❤❡♥ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs ✇❡r❡ ♥♦t ✈❡r②❛❣❣r❡ss✐✈❡✱ ❢♦❧❦❧♦r❡ ❤❛s r❡t❛✐♥❡❞ t❤❛t ❛ ❤✐❣❤ ♠✐s♣r❡❞✐❝t✐♦♥ r❛t❡ ♦❢ ❛♥ ✐♥❞✐r❡❝t ❥✉♠♣ ✐s ♦♥❡ ♦❢ t❤❡♠❛✐♥ r❡❛s♦♥s ❢♦r t❤❡ ✐♥❡✣❝✐❡♥❝② ♦❢ s✇✐t❝❤✲❜❛s❡❞ ✐♥t❡r♣r❡t❡rs✳ ■♥ t❤✐s ♣❛♣❡r✱ ✇❡ s❤❡❞ ♥❡✇ ❧✐❣❤t ♦♥t❤✐s ❝❧❛✐♠✱ ❝♦♥s✐❞❡r✐♥❣ ❝✉rr❡♥t ✐♥t❡r♣r❡t❡rs ❛♥❞ st❛t❡✲♦❢✲t❤❡✲❛rt ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs✳ ❲❡ s❤♦✇ t❤❛tt❤❡ ♣r❡❞✐❝t♦r ♦❢ ❙❛♥❞② ❇r✐❞❣❡ ✐♠♣r♦✈❡s ♦✈❡r t❤❡ ♣r❡✈✐♦✉s ❣❡♥❡r❛t✐♦♥ ◆❡❤❛❧❡♠✱ ❛♥❞ t❤❛t ❧✐t❡r❛t✉r❡st❛t❡✲♦❢✲t❤❡✲❛rt ■❚❚❆●❊ ✇♦✉❧❞ ♣r♦✈✐❞❡ ②❡t ❛♥♦t❤❡r s✐❣♥✐✜❝❛♥t ✐♠♣r♦✈❡♠❡♥t✳ ■❚❚❆●❊ ♣❡r❢♦r♠ss♣❡❝✐❛❧❧② ✇❡❧❧ ✇❤❡♥ t❤❡ ✢♦✇ ♦❢ ❡①❡❝✉t✐♦♥ st❛②s ✐♥ t❤❡ ♠❛✐♥ ✐♥t❡r♣r❡t❛t✐♦♥ ❧♦♦♣✱ ✐✳❡✳ ✇❤❡♥ ❜②t❡❝♦❞❡♣❛②❧♦❛❞s r❡♠❛✐♥s s✐♠♣❧❡✳ ❋✐♥❛❧❧② ✇❡ ❝♦♥✜r♠❡❞ t❤❛t t❤❡ ❢❡✇ ❝❛s❡s ✇❤❡r❡ ■❚❚❆●❊ ♣❡r❢♦r♠s ♣♦♦r❧②❛r❡ ❞✉❡ t♦ ❢♦♦t♣r✐♥t ✐ss✉❡s✱ ❛♥❞ ♥♦t ✐♥❤❡r❡♥t t♦ t❤❡ ♣r❡❞✐❝t✐♦♥ s❝❤❡♠❡✳

❘❡❢❡r❡♥❝❡s

❬✶❪ ❏✳ ❘✳ ❇❡❧❧✳ ❚❤r❡❛❞❡❞ ❝♦❞❡✳ ❈♦♠♠✉♥✐❝❛t✐♦♥s ♦❢ t❤❡ ❆❈▼✱ ✶✻✭✻✮✱ ✶✾✼✸✳

❬✷❪ ▼✳ ❇❡r♥❞❧✱ ❇✳ ❱✐t❛❧❡✱ ▼✳ ❩❛❧❡s❦✐✱ ❛♥❞ ❆✳ ❉✳ ❇r♦✇♥✳ ❈♦♥t❡①t t❤r❡❛❞✐♥❣✿ ❆ ✢❡①✐❜❧❡ ❛♥❞❡✣❝✐❡♥t ❞✐s♣❛t❝❤ t❡❝❤♥✐q✉❡ ❢♦r ✈✐rt✉❛❧ ♠❛❝❤✐♥❡ ✐♥t❡r♣r❡t❡rs✳ ■♥ ❈●❖✱ ♣❛❣❡s ✶✺✕✷✻✱ ✷✵✵✺✳

❬✸❪ ❙✳ ❇r✉♥t❤❛❧❡r✳ ❱✐rt✉❛❧✲♠❛❝❤✐♥❡ ❛❜str❛❝t✐♦♥ ❛♥❞ ♦♣t✐♠✐③❛t✐♦♥ t❡❝❤♥✐q✉❡s✳ ❊❧❡❝tr♦♥✐❝ ◆♦t❡s✐♥ ❚❤❡♦r❡t✐❝❛❧ ❈♦♠♣✉t❡r ❙❝✐❡♥❝❡✱ ✷✺✸✭✺✮✿✸✕✶✹✱ ✷✵✵✾✳

❬✹❪ P✳✲❨✳ ❈❤❛♥❣✱ ❊✳ ❍❛♦✱ ❛♥❞ ❨✳ ◆✳ P❛tt✳ ❚❛r❣❡t ♣r❡❞✐❝t✐♦♥ ❢♦r ✐♥❞✐r❡❝t ❥✉♠♣s✳ ■♥ ■❙❈❆✱ ♣❛❣❡s✷✼✹✕✷✽✸✱ ✶✾✾✼✳

❬✺❪ ❘✳ ❈♦st❛✱ ❆✳ ❈✳ ❖r♥st❡✐♥✱ ❛♥❞ ❊✳ ❘♦❤♦✉✳ ❈▲■ ❜❛❝❦✲❡♥❞ ✐♥ ●❈❈✳ ■♥ ●❈❈ ❉❡✈❡❧♦♣❡rs✬❙✉♠♠✐t✱ ♣❛❣❡s ✶✶✶✕✶✶✻✱ ❏✉❧② ✷✵✵✼✳

❬✻❪ ❚✳ ❈r❛♠❡r✱ ❘✳ ❋r✐❡❞♠❛♥✱ ❚✳ ▼✐❧❧❡r✱ ❉✳ ❙❡❜❡r❣❡r✱ ❘✳ ❲✐❧s♦♥✱ ❛♥❞ ▼✳ ❲♦❧❝③❦♦✳ ❈♦♠♣✐❧✐♥❣❏❛✈❛ ❥✉st ✐♥ t✐♠❡✳ ▼✐❝r♦✱ ■❊❊❊✱ ✶✼✭✸✮✿✸✻✕✹✸✱ ▼❛②✴❏✉♥✳

❬✼❪ ❏✳ ❲✳ ❉❛✈✐❞s♦♥ ❛♥❞ ❏✳ ❱✳ ●r❡s❤✳ ❈✐♥t✿ ❛ ❘■❙❈ ✐♥t❡r♣r❡t❡r ❢♦r t❤❡ ❈ ♣r♦❣r❛♠♠✐♥❣ ❧❛♥❣✉❛❣❡✳■♥ P❛♣❡rs ♦❢ t❤❡ ❙②♠♣♦s✐✉♠ ♦♥ ■♥t❡r♣r❡t❡rs ❛♥❞ ✐♥t❡r♣r❡t✐✈❡ t❡❝❤♥✐q✉❡s✱ ❙■●P▲❆◆ ✬✽✼✱♣❛❣❡s ✶✽✾✕✶✾✽✳ ❆❈▼✱ ✶✾✽✼✳

❬✽❪ ❑✳ ❉r✐❡s❡♥ ❛♥❞ ❯✳ ❍ö❧③❧❡✳ ❆❝❝✉r❛t❡ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥✳ ■♥ ■❙❈❆✱ ♣❛❣❡s ✶✻✼✕✶✼✽✱✶✾✾✽✳

❬✾❪ ❉✳ ❊❤r✐♥❣❡r✳ ❚❤❡ ❉❛❧✈✐❦ ✈✐rt✉❛❧ ♠❛❝❤✐♥❡ ❛r❝❤✐t❡❝t✉r❡✳ ❘❡tr✐❡✈❡❞ ❢r♦♠ ❤tt♣✿

✴✴❞❛✈✐❞❡❤r✐♥❣❡r✳❝♦♠✴s♦❢t✇❛r❡✴❛♥❞r♦✐❞✴❚❤❡❴❉❛❧✈✐❦❴❱✐rt✉❛❧❴▼❛❝❤✐♥❡✳♣❞❢ ♦♥ ◆♦✈ ✺✷✵✶✸✱ ✷✵✶✵✳

❬✶✵❪ ▼✳ ❆✳ ❊rt❧✳ ❙t❛❝❦ ❝❛❝❤✐♥❣ ❢♦r ✐♥t❡r♣r❡t❡rs✳ ■♥ Pr♦❝❡❡❞✐♥❣s ♦❢ t❤❡ ❆❈▼ ❙■●P▲❆◆ ✶✾✾✺❝♦♥❢❡r❡♥❝❡ ♦♥ Pr♦❣r❛♠♠✐♥❣ ❧❛♥❣✉❛❣❡ ❞❡s✐❣♥ ❛♥❞ ✐♠♣❧❡♠❡♥t❛t✐♦♥✱ P▲❉■ ✬✾✺✱ ♣❛❣❡s ✸✶✺✕✸✷✼✳❆❈▼✱ ✶✾✾✺✳

❬✶✶❪ ▼✳ ❆✳ ❊rt❧ ❛♥❞ ❉✳ ●r❡❣❣✳ ❚❤❡ ❜❡❤❛✈✐♦r ♦❢ ❡✣❝✐❡♥t ✈✐rt✉❛❧ ♠❛❝❤✐♥❡ ✐♥t❡r♣r❡t❡rs ♦♥ ♠♦❞❡r♥❛r❝❤✐t❡❝t✉r❡s✳ ■♥ ❊✉r♦✲P❛r ✷✵✵✶ P❛r❛❧❧❡❧ Pr♦❝❡ss✐♥❣✱ ♣❛❣❡s ✹✵✸✕✹✶✸✳ ❙♣r✐♥❣❡r✱ ✷✵✵✶✳

❘❘ ♥➦ ✽✹✵✺

Page 25: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

✷✷ ❘♦❤♦✉ ✫ ◆❛r❛s✐♠❤❛ ❙✇❛♠② ✫ ❙❡③♥❡❝

❬✶✷❪ ▼✳ ❆✳ ❊rt❧ ❛♥❞ ❉✳ ●r❡❣❣✳ ❖♣t✐♠✐③✐♥❣ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ❛❝❝✉r❛❝② ✐♥ ✈✐rt✉❛❧ ♠❛❝❤✐♥❡✐♥t❡r♣r❡t❡rs✳ ■♥ P▲❉■✱ ♣❛❣❡s ✷✼✽✕✷✽✽✳ ❆❈▼✱ ✷✵✵✸✳

❬✶✸❪ ▼✳ ❆✳ ❊rt❧ ❛♥❞ ❉✳ ●r❡❣❣✳ ❈♦♠❜✐♥✐♥❣ st❛❝❦ ❝❛❝❤✐♥❣ ✇✐t❤ ❞②♥❛♠✐❝ s✉♣❡r✐♥str✉❝t✐♦♥s✳ ■♥❲♦r❦s❤♦♣ ♦♥ ■♥t❡r♣r❡t❡rs✱ ❱✐rt✉❛❧ ▼❛❝❤✐♥❡s ❛♥❞ ❊♠✉❧❛t♦rs✱ ♣❛❣❡s ✼✕✶✹✳ ❆❈▼✱ ✷✵✵✹✳

❬✶✹❪ ■♥t❡❧✳ ■♥t❡❧ ✻✹ ❛♥❞ ■❆✲✸✷ ❆r❝❤✐t❡❝t✉r❡s ❙♦❢t✇❛r❡ ❉❡✈❡❧♦♣❡r✬s ▼❛♥✉❛❧✱ ❏✉♥❡ ✷✵✶✸✳

❬✶✺❪ ❉✳ ❆✳ ❏✐♠é♥❡③ ❛♥❞ ❈✳ ▲✐♥✳ ❉②♥❛♠✐❝ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥ ✇✐t❤ ♣❡r❝❡♣tr♦♥s✳ ■♥ ❍✐❣❤✲P❡r❢♦r♠❛♥❝❡ ❈♦♠♣✉t❡r ❆r❝❤✐t❡❝t✉r❡✱ ✷✵✵✶✳ ❍P❈❆✳ ❚❤❡ ❙❡✈❡♥t❤ ■♥t❡r♥❛t✐♦♥❛❧ ❙②♠♣♦s✐✉♠♦♥✱ ♣❛❣❡s ✶✾✼✕✷✵✻✳ ■❊❊❊✱ ✷✵✵✶✳

❬✶✻❪ ❈✳✲❈✳ ▲❡❡✱ ■✳✲❈✳ ❑✳ ❈❤❡♥✱ ❛♥❞ ❚✳ ◆✳ ▼✉❞❣❡✳ ❚❤❡ ❜✐✲♠♦❞❡ ❜r❛♥❝❤ ♣r❡❞✐❝t♦r✳ ■♥ ▼■❈❘❖✱♣❛❣❡s ✹✕✶✸✱ ✶✾✾✼✳

❬✶✼❪ ❈✳✲❑✳ ▲✉❦✱ ❘✳ ❈♦❤♥✱ ❘✳ ▼✉t❤✱ ❍✳ P❛t✐❧✱ ❆✳ ❑❧❛✉s❡r✱ ●✳ ▲♦✇♥❡②✱ ❙✳ ❲❛❧❧❛❝❡✱ ❱✳ ❏✳ ❘❡❞❞✐✱❛♥❞ ❑✳ ❍❛③❡❧✇♦♦❞✳ P✐♥✿ ❜✉✐❧❞✐♥❣ ❝✉st♦♠✐③❡❞ ♣r♦❣r❛♠ ❛♥❛❧②s✐s t♦♦❧s ✇✐t❤ ❞②♥❛♠✐❝ ✐♥str✉✲♠❡♥t❛t✐♦♥✳ ■♥ P▲❉■✱ ♣❛❣❡s ✶✾✵✕✷✵✵✳ ❆❈▼✱ ✷✵✵✺✳

❬✶✽❪ ❏✳ ▼❝❈❛♥❞❧❡ss ❛♥❞ ❉✳ ●r❡❣❣✳ ❈♦♠♣✐❧❡r t❡❝❤♥✐q✉❡s t♦ ✐♠♣r♦✈❡ ❞②♥❛♠✐❝ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥❢♦r ✐♥❞✐r❡❝t ❥✉♠♣ ❛♥❞ ❝❛❧❧ ✐♥str✉❝t✐♦♥s✳ ❆❈▼ ❚❆❈❖✱ ✽✭✹✮✿✷✹✿✶✕✷✹✿✷✵✱ ❏❛♥✳ ✷✵✶✷✳

❬✶✾❪ ❙✳ ▼❝❋❛r❧✐♥❣✳ ❈♦♠❜✐♥✐♥❣ ❜r❛♥❝❤ ♣r❡❞✐❝t♦rs✳ ❚❡❝❤♥✐❝❛❧ ❘❡♣♦rt ❚◆✲✸✻✱ ❉✐❣✐t❛❧ ❲❡st❡r♥❘❡s❡❛r❝❤ ▲❛❜♦r❛t♦r②✱ ✶✾✾✸✳

❬✷✵❪ P✳ ▼✐❝❤❛✉❞✱ ❆✳ ❙❡③♥❡❝✱ ❛♥❞ ❘✳ ❯❤❧✐❣✳ ❚r❛❞✐♥❣ ❝♦♥✢✐❝t ❛♥❞ ❝❛♣❛❝✐t② ❛❧✐❛s✐♥❣ ✐♥ ❝♦♥❞✐t✐♦♥❛❧❜r❛♥❝❤ ♣r❡❞✐❝t♦rs✳ ❙■●❆❘❈❍ ❈♦♠♣✉t✳ ❆r❝❤✐t✳ ◆❡✇s✱ ✷✺✭✷✮✿✷✾✷✕✸✵✸✱ ▼❛② ✶✾✾✼✳

❬✷✶❪ ❚✳ ▼②t❦♦✇✐❝③✱ ❆✳ ❉✐✇❛♥✱ ▼✳ ❍❛✉s✇✐rt❤✱ ❛♥❞ P✳ ❋✳ ❙✇❡❡♥❡②✳ Pr♦❞✉❝✐♥❣ ✇r♦♥❣ ❞❛t❛ ✇✐t❤♦✉t❞♦✐♥❣ ❛♥②t❤✐♥❣ ♦❜✈✐♦✉s❧② ✇r♦♥❣✦ ■♥ ❆❙P▲❖❙✱ ♣❛❣❡s ✷✻✺✕✷✼✻✳ ❆❈▼✱ ✷✵✵✾✳

❬✷✷❪ ❆✳ ◆❛✉♠❛♥♥ ❛♥❞ P✳ ❈❛♥❛❧✳ ❚❤❡ r♦❧❡ ♦❢ ✐♥t❡r♣r❡t❡rs ✐♥ ❤✐❣❤ ♣❡r❢♦r♠❛♥❝❡ ❝♦♠♣✉t✐♥❣✳ ■♥ Pr♦✲❝❡❡❞✐♥❣s ♦❢ ❳■■ ❆❞✈❛♥❝❡❞ ❈♦♠♣✉t✐♥❣ ❛♥❞ ❆♥❛❧②s✐s ❚❡❝❤♥✐q✉❡s ✐♥ P❤②s✐❝s ❘❡s❡❛r❝❤✱ ♣❛❣❡ ✻✺✱✷✵✵✽✳

❬✷✸❪ ■✳ P✐✉♠❛rt❛ ❛♥❞ ❋✳ ❘✐❝❝❛r❞✐✳ ❖♣t✐♠✐③✐♥❣ ❞✐r❡❝t t❤r❡❛❞❡❞ ❝♦❞❡ ❜② s❡❧❡❝t✐✈❡ ✐♥❧✐♥✐♥❣✳ ❙■●✲P▲❆◆ ◆♦t✳✱ ✸✸✭✺✮✿✷✾✶✕✸✵✵✱ ▼❛② ✶✾✾✽✳

❬✷✹❪ ●✳ ❘✐❝❤❛r❞s✱ ❙✳ ▲❡❜r❡s♥❡✱ ❇✳ ❇✉r❣✱ ❛♥❞ ❏✳ ❱✐t❡❦✳ ❆♥ ❛♥❛❧②s✐s ♦❢ t❤❡ ❞②♥❛♠✐❝ ❜❡❤❛✈✐♦r ♦❢❏❛✈❛❙❝r✐♣t ♣r♦❣r❛♠s✳ ■♥ P▲❉■✱ ♣❛❣❡s ✶✕✶✷✱ ✷✵✶✵✳

❬✷✺❪ ❊✳ ❘♦❤♦✉✳ ❚✐♣t♦♣✿ ❍❛r❞✇❛r❡ P❡r❢♦r♠❛♥❝❡ ❈♦✉♥t❡rs ❢♦r t❤❡ ▼❛ss❡s✳ ❚❡❝❤♥✐❝❛❧ ❘❡♣♦rt❘❘✲✼✼✽✾✱ ■◆❘■❆✱ ◆♦✈✳ ✷✵✶✶✳

❬✷✻❪ ●✳ ❙❛✈r✉♥✲❨❡♥✐ç❡r✐✱ ❲✳ ❩❤❛♥❣✱ ❍✳ ❩❤❛♥❣✱ ❈✳ ▲✐✱ ❙✳ ❇r✉♥t❤❛❧❡r✱ P✳ ▲❛rs❡♥✱ ❛♥❞ ▼✳ ❋r❛♥③✳❊✣❝✐❡♥t ✐♥t❡r♣r❡t❡r ♦♣t✐♠✐③❛t✐♦♥s ❢♦r t❤❡ ❏❱▼✳ ■♥ ■♥t❡r♥❛t✐♦♥❛❧ ❈♦♥❢❡r❡♥❝❡ ♦♥ Pr✐♥❝✐♣❧❡s❛♥❞ Pr❛❝t✐❝❡s ♦❢ Pr♦❣r❛♠♠✐♥❣ ♦♥ t❤❡ ❏❛✈❛ P❧❛t❢♦r♠✿ ❱✐rt✉❛❧ ▼❛❝❤✐♥❡s✱ ▲❛♥❣✉❛❣❡s✱ ❛♥❞❚♦♦❧s✱ ♣❛❣❡s ✶✶✸✕✶✷✸✳ ❆❈▼✱ ✷✵✶✸✳

❬✷✼❪ ❆✳ ❙❡③♥❡❝✳ ❆♥❛❧②s✐s ♦❢ t❤❡ ❖✲●❊♦♠❡tr✐❝ ❍✐st♦r② ▲❡♥❣t❤ ❇r❛♥❝❤ Pr❡❞✐❝t♦r✳ ■♥ ■❙❈❆✱ ♣❛❣❡s✸✾✹✕✹✵✺✱ ✷✵✵✺✳

❬✷✽❪ ❆✳ ❙❡③♥❡❝✳ ❆ ✻✹✲❑❜②t❡s ■❚❚❆●❊ ✐♥❞✐r❡❝t ❜r❛♥❝❤ ♣r❡❞✐❝t♦r✳ ■♥ ❏❲❆❈✲✷✿ ❈❤❛♠♣✐♦♥s❤✐♣❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥✳ ❏■▲P✱ ❏✉♥❡ ✷✵✶✶✳

■♥r✐❛

Page 26: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

❇r❛♥❝❤ Pr❡❞✐❝t✐♦♥ ❛♥❞ t❤❡ P❡r❢♦r♠❛♥❝❡ ♦❢ ■♥t❡r♣r❡t❡rs ✷✸

❬✷✾❪ ❆✳ ❙❡③♥❡❝✳ ❆ ♥❡✇ ❝❛s❡ ❢♦r t❤❡ ❚❆●❊ ❜r❛♥❝❤ ♣r❡❞✐❝t♦r✳ ■♥ ▼■❈❘❖✱ ♣❛❣❡s ✶✶✼✕✶✷✼✱ ✷✵✶✶✳

❬✸✵❪ ❆✳ ❙❡③♥❡❝✱ ❙✳ ❋❡❧✐①✱ ❱✳ ❑r✐s❤♥❛♥✱ ❛♥❞ ❨✳ ❙❛③❡✐❞❡s✳ ❉❡s✐❣♥ tr❛❞❡♦✛s ❢♦r t❤❡ ❆❧♣❤❛ ❊❱✽❝♦♥❞✐t✐♦♥❛❧ ❜r❛♥❝❤ ♣r❡❞✐❝t♦r✳ ■♥ ■❙❈❆✱ ♣❛❣❡s ✷✾✺✕✸✵✻✳ ■❊❊❊✱ ✷✵✵✷✳

❬✸✶❪ ❆✳ ❙❡③♥❡❝ ❛♥❞ P✳ ▼✐❝❤❛✉❞✳ ❆ ❝❛s❡ ❢♦r ✭♣❛rt✐❛❧❧②✮ ❚❆❣❣❡❞ ●❊♦♠❡tr✐❝ ❤✐st♦r② ❧❡♥❣t❤ ❜r❛♥❝❤♣r❡❞✐❝t✐♦♥✳ ❏♦✉r♥❛❧ ♦❢ ■♥str✉❝t✐♦♥✲▲❡✈❡❧ P❛r❛❧❧❡❧✐s♠✱ ✽✿✶✕✷✸✱ ✷✵✵✻✳

❬✸✷❪ ❨✳ ❙❤✐✱ ❑✳ ❈❛s❡②✱ ▼✳ ❆✳ ❊rt❧✱ ❛♥❞ ❉✳ ●r❡❣❣✳ ❱✐rt✉❛❧ ♠❛❝❤✐♥❡ s❤♦✇❞♦✇♥✿ ❙t❛❝❦ ✈❡rs✉sr❡❣✐st❡rs✳ ❆❈▼ ❚❆❈❖✱ ✹✭✹✮✿✷✿✶✕✷✿✸✻✱ ❏❛♥✳ ✷✵✵✽✳

❬✸✸❪ ❊✳ ❙♣r❛♥❣❧❡✱ ❘✳ ❙✳ ❈❤❛♣♣❡❧❧✱ ▼✳ ❆❧s✉♣✱ ❛♥❞ ❨✳ ◆✳ P❛tt✳ ❚❤❡ ❛❣r❡❡ ♣r❡❞✐❝t♦r✿ ❆ ♠❡❝❤❛♥✐s♠❢♦r r❡❞✉❝✐♥❣ ♥❡❣❛t✐✈❡ ❜r❛♥❝❤ ❤✐st♦r② ✐♥t❡r❢❡r❡♥❝❡✳ ■♥ ■❙❈❆✱ ♣❛❣❡s ✷✽✹✕✷✾✶✱ ✶✾✾✼✳

❬✸✹❪ ❇✳ ❱✐t❛❧❡ ❛♥❞ ❚✳ ❙✳ ❆❜❞❡❧r❛❤♠❛♥✳ ❈❛t❡♥❛t✐♦♥ ❛♥❞ s♣❡❝✐❛❧✐③❛t✐♦♥ ❢♦r t❝❧ ✈✐rt✉❛❧ ♠❛❝❤✐♥❡♣❡r❢♦r♠❛♥❝❡✳ ■♥ Pr♦❝❡❡❞✐♥❣s ♦❢ t❤❡ ✷✵✵✹ ✇♦r❦s❤♦♣ ♦♥ ■♥t❡r♣r❡t❡rs✱ ✈✐rt✉❛❧ ♠❛❝❤✐♥❡s ❛♥❞❡♠✉❧❛t♦rs✱ ■❱▼❊ ✬✵✹✱ ♣❛❣❡s ✹✷✕✺✵✳ ❆❈▼✱ ✷✵✵✹✳

❬✸✺❪ ❱✳ ▼✳ ❲❡❛✈❡r ❛♥❞ ❏✳ ❉♦♥❣❛rr❛✳ ❈❛♥ ❤❛r❞✇❛r❡ ♣❡r❢♦r♠❛♥❝❡ ❝♦✉♥t❡rs ♣r♦❞✉❝❡ ❡①♣❡❝t❡❞✱❞❡t❡r♠✐♥✐st✐❝ r❡s✉❧ts❄ ■♥ ✸r❞ ❲♦r❦s❤♦♣ ♦♥ ❋✉♥❝t✐♦♥❛❧✐t② ♦❢ ❍❛r❞✇❛r❡ P❡r❢♦r♠❛♥❝❡ ▼♦♥✐✲t♦r✐♥❣✱ ❉❡❝✳ ✷✵✶✵✳

❬✸✻❪ ❊✳ ❲✐❡♣r❡❝❤t✱ ❏✳ ❇r✉♠✜t✱ ❏✳ ❇❛❦❦❡r✱ ◆✳ ❞❡ ❈❛♥❞✉ss✐♦✱ ❙✳ ●✉❡st✱ ❘✳ ❍✉②❣❡♥✱ ❆✳ ❞❡ ❏♦♥❣❡✱❏✳ ❏✳ ▼❛tt❤✐❡✇✱ ❙✳ ❖st❡r❤❛❣❡✱ ❙✳ ❖tt✱ ❍✳ ❙✐❞❞✐q✉✐✱ ❇✳ ❱❛♥❞❡♥❜✉ss❝❤❡✱ ❲✳ ❞❡ ▼❡❡st❡r✱ ▼✳ ❲❡t✲③st❡✐♥✱ ❊✳ ❲✐❡③♦rr❡❦✱ ❛♥❞ P✳ ❩❛❛❧✳ ❚❤❡ ❍❊❘❙❈❍❊▲✴P❆❈❙ ❈♦♠♠♦♥ ❙♦❢t✇❛r❡ ❙②st❡♠ ❛s❉❛t❛ ❘❡❞✉❝t✐♦♥ ❙②st❡♠✳ ❆str♦♥♦♠✐❝❛❧ ❉❛t❛ ❆♥❛❧②s✐s ❙♦❢t✇❛r❡ ❛♥❞ ❙②st❡♠s ✭❆❉❆❙❙✮ ❳■■■✱❏✉❧② ✷✵✵✹✳

❬✸✼❪ ❚✳✲❨✳ ❨❡❤ ❛♥❞ ❨✳ ◆✳ P❛tt✳ ❚✇♦✲❧❡✈❡❧ ❛❞❛♣t✐✈❡ tr❛✐♥✐♥❣ ❜r❛♥❝❤ ♣r❡❞✐❝t✐♦♥✳ ■♥ ▼■❈❘❖✱ ♣❛❣❡s✺✶✕✻✶✳ ❆❈▼✱ ✶✾✾✶✳

❘❘ ♥➦ ✽✹✵✺

Page 27: Branch Prediction and the Performance of Interpreters ... · Branch Prediction and the Performance of Interpreters Don't rustT olkloreF Erven Rohou, Bharath Narasimha Swamy, André

RESEARCH CENTRE

RENNES – BRETAGNE ATLANTIQUE

Campus universitaire de Beaulieu

35042 Rennes Cedex

Publisher

Inria

Domaine de Voluceau - Rocquencourt

BP 105 - 78153 Le Chesnay Cedex

inria.fr

ISSN 0249-6399