Efficient invalidation and dynamic replacement of executing code – on-stack replacement (OSR), is necessary to facilitate effective, aggressive, specialization of object-oriented programs that are dynamically loaded, incrementally compiled, and garbage collected. Extant OSR mechanisms restrict the performance potential of program specialization since their implementations are special-purpose and restrict compiler optimization. In this paper, we present a novel, general-purpose OSR mechanism that is more amenable to optimization than prior approaches. In particular, we decouple the OSR implementation from the optimization process and update the program state information incrementally during optimization. Our OSR implementation efficiently en...
Abstract. Application performance is heavily dependent on the com-piler optimizations. Modern compil...
Compile-time optimizations generally improve program performance. Nevertheless, degradations caused ...
The structure of object-oriented programs differs from that of procedural programs, requiring specia...
On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to co...
On-Stack Replacement (OSR) is a technique for dynamically transferring execution between different v...
Dynamic dispatching is a major source of run-time overhead in object-oriented languages, due both to...
As transistors sizes shrink and architects put more and more cores on chip, computer systems become ...
High level programming language features have long been seen as improving programmer efficiency at s...
As systems become more complex, there are increasing demands for improvement with respect to attribu...
The overhead of performing optimizations during execu-tion is the main hindrance in achieving good p...
Compilers and other programming environment tools derive information from the source code of program...
To meet the demands of modern architectures, optimizing compilers must incorporate an ever larger nu...
With the projected increase in hardware error rates in the future, software needs to be resilient to...
Application codes reliably under perform the advertised performance of existing architectures, compi...
Dynamically-dispatched calls often limit the performance of object-oriented programs since object-or...
Abstract. Application performance is heavily dependent on the com-piler optimizations. Modern compil...
Compile-time optimizations generally improve program performance. Nevertheless, degradations caused ...
The structure of object-oriented programs differs from that of procedural programs, requiring specia...
On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to co...
On-Stack Replacement (OSR) is a technique for dynamically transferring execution between different v...
Dynamic dispatching is a major source of run-time overhead in object-oriented languages, due both to...
As transistors sizes shrink and architects put more and more cores on chip, computer systems become ...
High level programming language features have long been seen as improving programmer efficiency at s...
As systems become more complex, there are increasing demands for improvement with respect to attribu...
The overhead of performing optimizations during execu-tion is the main hindrance in achieving good p...
Compilers and other programming environment tools derive information from the source code of program...
To meet the demands of modern architectures, optimizing compilers must incorporate an ever larger nu...
With the projected increase in hardware error rates in the future, software needs to be resilient to...
Application codes reliably under perform the advertised performance of existing architectures, compi...
Dynamically-dispatched calls often limit the performance of object-oriented programs since object-or...
Abstract. Application performance is heavily dependent on the com-piler optimizations. Modern compil...
Compile-time optimizations generally improve program performance. Nevertheless, degradations caused ...
The structure of object-oriented programs differs from that of procedural programs, requiring specia...