Filters








94 Hits in 2.2 sec

Correctness of Speculative Optimizations with Dynamic Deoptimization [article]

Olivier Flückiger, Gabriel Scherer, Ming-Ho Yee, Aviral Goel, Amal Ahmed, Jan Vitek
2017 arXiv   pre-print
High-performance dynamic language implementations make heavy use of speculative optimizations to achieve speeds close to statically compiled languages.  ...  Furthermore, the paper establishes the correctness of compiler transformations specific to deoptimization: namely unrestricted deoptimization, predicate hoisting, and assume composition.  ...  Francesco Zappa Nardelli helped with the motivation and presentation of our work. We thank Sewell, Nardelli, Owens, Peskine, Ridge, Sarkar, and Strniša [2007] for writing and maintaining Ott.  ... 
arXiv:1711.03050v2 fatcat:fghw4kiznvad3hqvsdzmm2qhn4

Correctness of speculative optimizations with dynamic deoptimization

Olivier Flückiger, Gabriel Scherer, Ming-Ho Yee, Aviral Goel, Amal Ahmed, Jan Vitek
2017 Proceedings of the ACM on Programming Languages  
Francesco Zappa Nardelli helped with the motivation and presentation of our work. We thank Sewell, Nardelli, Owens, Peskine, Ridge, Sarkar, and Strniša [2007] for writing and maintaining Ott.  ...  ACKNOWLEDGMENTS Jean-Marie Madiot provided guidance on the use and limitations of various notions of bisimulation.  ...  Speculative optimizations are key to just-in-time optimization of dynamic languages.  ... 
doi:10.1145/3158137 dblp:journals/pacmpl/FluckigerSYGAV18 fatcat:zgb4yuglxrgnvgqkwa52cbdet4

Formally verified speculation and deoptimization in a JIT compiler

Aurèle Barrière, Sandrine Blazy, Olivier Flückiger, David Pichardie, Jan Vitek
2021 Proceedings of the ACM on Programming Languages (PACMPL)  
We also present several common compiler optimizations that can leverage speculation to generate improved code. The optimizations are proved correct with the help of a proof assistant.  ...  This form of software speculation requires support for deoptimization when some of the assumptions fail to hold.  ...  In our work we avoid self-modifying code and introduce an optimizing compiler with speculative optimizations and dynamic deoptimization.  ... 
doi:10.1145/3434327 fatcat:uf7jy646mvg5zk2kmozutrjyla

An intermediate representation for speculative optimizations in a dynamic compiler

Gilles Duboscq, Thomas Würthinger, Lukas Stadler, Christian Wimmer, Doug Simon, Hanspeter Mössenböck
2013 Proceedings of the 7th ACM workshop on Virtual machines and intermediate languages - VMIL '13  
We present a compiler intermediate representation (IR) that allows dynamic speculative optimizations for high-level languages.  ...  Exception edges are modeled as explicit control flow and are subject to full optimization. We use profiling and deoptimization to speculatively reduce the number of such edges.  ...  Conclusions Our IR is suited for dynamic speculative optimization thanks to its deoptimization framework.  ... 
doi:10.1145/2542142.2542143 fatcat:bco3fmbnsjcivjdmrp4tgirhgi

Practical Validation of Bytecode to Bytecode JIT Compiler Dynamic Deoptimization

Clément Béra, Eliot Miranda, Marcus Denker, Stéphane Ducasse
2016 Journal of Object Technology  
To stabilize our bytecode to bytecode just-in-time compiler, we designed a new approach to validate the correctness of dynamic deoptimization.  ...  The approach consists of the symbolic execution of an optimized and an unoptimized bytecode compiled method side by side, deoptimizing the abstract stack at each deoptimization point (where dynamic deoptimization  ...  Acknowledgements We thank Stefan Marr and Xavier Leroy for their reviews of an earlier versions of this article.  ... 
doi:10.5381/jot.2016.15.2.a1 fatcat:5hchktfsqvdjrglimrthrfdvnq

Practical partial evaluation for high-performance dynamic language runtimes

Thomas Würthinger, Christian Wimmer, Christian Humer, Andreas Wöß, Lukas Stadler, Chris Seaton, Gilles Duboscq, Doug Simon, Matthias Grimmer
2017 Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI 2017  
Our generalpurpose compilation system is competitive with production systems even when they have been heavily optimized for the one language they support.  ...  This makes partial evaluation practical in the context of dynamic languages: It reduces the size of the compiled code while still compiling all parts of an operation that are relevant for a particular  ...  Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.  ... 
doi:10.1145/3062341.3062381 dblp:conf/pldi/WurthingerWHWSS17 fatcat:zp3yn5lk5nhftn4idv75gvk64m

Sista

Clément Béra, Eliot Miranda, Tim Felgentreff, Marcus Denker, Stéphane Ducasse
2017 Proceedings of the 14th International Conference on Managed Languages and Runtimes - ManLang 2017  
and deoptimization of the executed code.  ...  In this paper, we propose an approach, Sista (Speculative Inlining SmallTalk Architecture) to persist optimized code in a platformindependent representation as part of a snapshot.  ...  The improvements would consists of decreasing the JIT compilation time by improving the efficiency of the JIT code, or have better heuristic so the JIT can generate optimized code with the correct speculations  ... 
doi:10.1145/3132190.3132201 dblp:conf/pppj/BeraMFDD17 fatcat:qvlq3rn3cffjnnxgrei7ejkd2i

Deoptimization for dynamic language JITs on typed, stack-based virtual machines

Madhukar N. Kedlaya, Behnam Robatmili, Cġlin Caşcaval, Ben Hardekopf
2014 SIGPLAN notices  
Type specialization is a critical optimization for dynamic language runtimes: generic code that handles any type of data is replaced with specialized code for particular types observed during execution  ...  The state-of-the-art recovery mechanism is called deoptimization. Deoptimization is a well-known technique for dynamic language runtimes implemented in low-level languages like C.  ...  Quickening with deoptimization can be an alternative to the existing approach of optimization.  ... 
doi:10.1145/2674025.2576209 fatcat:vs3slmf42zewrefoabtgu625qm

Deoptimization for dynamic language JITs on typed, stack-based virtual machines

Madhukar N. Kedlaya, Behnam Robatmili, Cġlin Caşcaval, Ben Hardekopf
2014 Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments - VEE '14  
Type specialization is a critical optimization for dynamic language runtimes: generic code that handles any type of data is replaced with specialized code for particular types observed during execution  ...  The state-of-the-art recovery mechanism is called deoptimization. Deoptimization is a well-known technique for dynamic language runtimes implemented in low-level languages like C.  ...  Quickening with deoptimization can be an alternative to the existing approach of optimization.  ... 
doi:10.1145/2576195.2576209 dblp:conf/vee/KedlayaRCH14 fatcat:fajd5nncj5cpjnqroxlhqxvwbq

Server-side type profiling for optimizing client-side JavaScript engines

Madhukar N. Kedlaya, Behnam Robatmili, Ben Hardekopf
2015 Proceedings of the 11th Symposium on Dynamic Languages - DLS 2015  
Modern JavaScript engines optimize hot functions using a JIT compiler along with type information gathered by an online profiler.  ...  In this paper we describe a method to significantly reduce the number of deoptimizations observed by client-side JavaScript engines by using ahead-of-time profiling on the server-side.  ...  Other kinds of deoptimizations are caused by speculative, optimistic assumptions made by the optimizing compiler that may not be valid.  ... 
doi:10.1145/2816707.2816719 dblp:conf/dls/KedlayaRH15 fatcat:7eatq2o73jgnjajujf42uk4bau

One VM to rule them all

Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, Mario Wolczko
2013 Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software - Onward! '13  
The compiler uses speculative assumptions and deoptimization in order to produce efficient machine code.  ...  The approach relies on abstract syntax tree (AST) interpretation where a node can rewrite itself to a more specialized or more general node, together with an optimizing compiler that exploits the structure  ...  Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.  ... 
doi:10.1145/2509578.2509581 dblp:conf/oopsla/WurthingerWWSDHRSW13 fatcat:a4qlub6ha5hubgk5psdej564ke

Server-side type profiling for optimizing client-side JavaScript engines

Madhukar N. Kedlaya, Behnam Robatmili, Ben Hardekopf
2015 SIGPLAN notices  
Modern JavaScript engines optimize hot functions using a JIT compiler along with type information gathered by an online profiler.  ...  In this paper we describe a method to significantly reduce the number of deoptimizations observed by client-side JavaScript engines by using ahead-of-time profiling on the server-side.  ...  Other kinds of deoptimizations are caused by speculative, optimistic assumptions made by the optimizing compiler that may not be valid.  ... 
doi:10.1145/2936313.2816719 fatcat:x2bcizve5vgavnguzbjcily7je

On-stack replacement, distilled

Daniele Cono D'Elia, Camil Demetrescu
2018 Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation - PLDI 2018  
We aim at filling this gap with a constructive and provably correct OSR framework, allowing a class of general-purpose transformation functions to yield a special-purpose replacement.  ...  The engineering aspects of OSR are well-known among VM architects, with several implementations available to date.  ...  We are grateful to Gustavo Petri for suggesting the use of bisimulation in our theoretical framework, to Jan Vitek for some enlightening discussions, and to the anonymous PLDI reviewers and our shepherd  ... 
doi:10.1145/3192366.3192396 dblp:conf/pldi/DEliaD18 fatcat:3zh7pabes5fdrbdt53h3zec7li

R melts brains: an IR for first-class environments and lazy effectful arguments

Olivier Flückiger, Guido Chari, Jan Ječmen, Ming-Ho Yee, Jakob Hain, Jan Vitek
2019 Proceedings of the 15th ACM SIGPLAN International Symposium on Dynamic Languages - DLS 2019  
The combination of these features renders most static program analysis techniques impractical, and thus, compiler optimizations based on them ineffective.  ...  The R programming language combines a number of features considered hard to analyze and implement efficiently: dynamic typing, reflection, lazy evaluation, vectorized primitive types, first-class closures  ...  Ř dynamically picks the optimal version of a function to invoke. Stub Environments.  ... 
doi:10.1145/3359619.3359744 dblp:conf/dls/FluckigerCJYHV19 fatcat:tln6mijxqna2rgh4pb6xhslrbq

Partial Escape Analysis and Scalar Replacement for Java

Lukas Stadler, Thomas Würthinger, Hanspeter Mössenböck
2014 Proceedings of Annual IEEE/ACM International Symposium on Code Generation and Optimization - CGO '14  
This information is used to perform optimizations such as Scalar Replacement, Stack Allocation and Lock Elision, allowing modern dynamic compilers to remove some of the abstractions introduced by advanced  ...  It performs particularly well in situations with additional levels of abstraction, such as code generated by the Scala compiler.  ...  Acknowledgments We thank all members of the Virtual Machine Research Group at Oracle Labs and the Institute for System Software at the Johannes Kepler University Linz for their support and contributions  ... 
doi:10.1145/2581122.2544157 fatcat:cu52bg3xb5a3bo6wxld3c3d37a
« Previous Showing results 1 — 15 out of 94 results