Interpreters have been used in many contexts. They provide portability and ease of development at the expense of performance. The literature of the past decade covers analysis of why interpreters are slow, and many software techniques to improve them. A large proportion of these works focuses on the dispatch loop, and in particular on the implementation of the switch statement: typically an indirect branch instruction. Conventional wisdom attributes a significant penalty to this branch, due to its high misprediction rate. We revisit this assumption, considering current interpreters, and modern predictors. Using both hardware counters and simulation, we show that the accuracy of indirect branch prediction is no longer critical for interprete...
International audienceIn the present computing landscape, interpreters are in use in a wide range of...
An ILP (Instruction-Level Parallelism) compiler uses aggressive optimizations to reduce a program&ap...
In high-performance computer systems. performance losses due to conditional branch instructrons can ...
Interpreters have been used in many contexts. They provide portability and ease of development at th...
The paper [EG03b] deals with two methods, which are used to reduce mispredictions of indirect branch...
Interpreters designed for efficiency execute a huge number of indirect branches and can spend more ...
International audienceLanguage interpreters are generally slower than (JIT) compiled implementations...
Indirect branch prediction is likely to become increasingly important in the future because indirect...
Branch prediction is a key mechanism used to achieve high performance on multiple issue, deeply pipe...
textPerformance of modern pipelined processor depends on steady flow of useful instructions for proc...
Providing accurate branch prediction is critical to effectively exploit superscalar execution. While...
Dynamic dispatch, or late binding of function calls, is a salient feature of object-oriented program...
Pipeline stalls due to branches represent one of the most significant impediments to realizing the p...
Interpreted languages have become increasingly popular due to demands for rapid program development,...
A binary translator examines binary code for a source machine, optionally builds an intermediate rep...
International audienceIn the present computing landscape, interpreters are in use in a wide range of...
An ILP (Instruction-Level Parallelism) compiler uses aggressive optimizations to reduce a program&ap...
In high-performance computer systems. performance losses due to conditional branch instructrons can ...
Interpreters have been used in many contexts. They provide portability and ease of development at th...
The paper [EG03b] deals with two methods, which are used to reduce mispredictions of indirect branch...
Interpreters designed for efficiency execute a huge number of indirect branches and can spend more ...
International audienceLanguage interpreters are generally slower than (JIT) compiled implementations...
Indirect branch prediction is likely to become increasingly important in the future because indirect...
Branch prediction is a key mechanism used to achieve high performance on multiple issue, deeply pipe...
textPerformance of modern pipelined processor depends on steady flow of useful instructions for proc...
Providing accurate branch prediction is critical to effectively exploit superscalar execution. While...
Dynamic dispatch, or late binding of function calls, is a salient feature of object-oriented program...
Pipeline stalls due to branches represent one of the most significant impediments to realizing the p...
Interpreted languages have become increasingly popular due to demands for rapid program development,...
A binary translator examines binary code for a source machine, optionally builds an intermediate rep...
International audienceIn the present computing landscape, interpreters are in use in a wide range of...
An ILP (Instruction-Level Parallelism) compiler uses aggressive optimizations to reduce a program&ap...
In high-performance computer systems. performance losses due to conditional branch instructrons can ...