On-Stack Replacement (OSR) is a technique for dynamically transferring execution between different versions of a function at run time. OSR is typically used in virtual machines to interrupt a long-running function and recompile it at a higher optimization level, or to replace it with a different one when a speculative assumption made during its compilation no longer holds. In this paper we present a framework for OSR that introduces novel ideas and combines features of existing techniques that no previous solution provided simultaneously. New features include OSR with compensation code to adjust the program state during a transition and the ability to fire an OSR from arbitrary locations in the code. Our approach is platform-independent as ...
Compiling queries to machine code is arguably the most efficient way for executing queries. One ofte...
One of the main problems that prevent extensive use of VLIW architectures for non-numeric programs i...
Dynamic languages such as Perl, Python, JavaScript, Ruby, and PHP are becoming increasingly popular....
On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to co...
Efficient invalidation and dynamic replacement of executing code – on-stack replacement (OSR), is ne...
In recent years, there has been an increase in the popularity of dynamic languages such as Python, R...
As part of the Platform-Aware Compilation Environment (PACE) Project1, Operator Strength Reduction (...
Low Level Virtual Machine (LLVM) is a widely adopted open source compiler providing numerous optimiz...
OSRKit is a library that enables On-Stack Replacement (OSR) at arbitrary places in LLVM IR code. The...
Massively parallel architectures are gaining momentum thanks to the opportunities for both high perf...
peer-reviewedWe propose a new language-neutral primitive for the LLVM compiler, which provides effic...
Modern virtual machines for object-oriented machines use dynamic (run-time) compilation in order to ...
We are interested in implementing dynamic language run-times on top of language-level virtual machin...
To achieve the best performance, most computer languages are compiled, either ahead of time and s...
Abstract Dynamic or Just-in-Time (JIT) compilation is crucial to achieve acceptable performance for ...
Compiling queries to machine code is arguably the most efficient way for executing queries. One ofte...
One of the main problems that prevent extensive use of VLIW architectures for non-numeric programs i...
Dynamic languages such as Perl, Python, JavaScript, Ruby, and PHP are becoming increasingly popular....
On-stack replacement (OSR) is essential technology for adaptive optimization, allowing changes to co...
Efficient invalidation and dynamic replacement of executing code – on-stack replacement (OSR), is ne...
In recent years, there has been an increase in the popularity of dynamic languages such as Python, R...
As part of the Platform-Aware Compilation Environment (PACE) Project1, Operator Strength Reduction (...
Low Level Virtual Machine (LLVM) is a widely adopted open source compiler providing numerous optimiz...
OSRKit is a library that enables On-Stack Replacement (OSR) at arbitrary places in LLVM IR code. The...
Massively parallel architectures are gaining momentum thanks to the opportunities for both high perf...
peer-reviewedWe propose a new language-neutral primitive for the LLVM compiler, which provides effic...
Modern virtual machines for object-oriented machines use dynamic (run-time) compilation in order to ...
We are interested in implementing dynamic language run-times on top of language-level virtual machin...
To achieve the best performance, most computer languages are compiled, either ahead of time and s...
Abstract Dynamic or Just-in-Time (JIT) compilation is crucial to achieve acceptable performance for ...
Compiling queries to machine code is arguably the most efficient way for executing queries. One ofte...
One of the main problems that prevent extensive use of VLIW architectures for non-numeric programs i...
Dynamic languages such as Perl, Python, JavaScript, Ruby, and PHP are becoming increasingly popular....