Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleMay 2024
JOG: Java JIT Peephole Optimizations and Tests from Patterns
ICSE-Companion '24: Proceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion ProceedingsPages 11–15https://doi.org/10.1145/3639478.3640040We present JOG, a framework for developing peephole optimizations and accompanying tests for Java compilers. JOG allows developers to write a peephole optimization as a pattern in Java itself. Such a pattern contains code before and after the desired ...
- research-articleJune 2023
Optimization-Aware Compiler-Level Event Profiling
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 45, Issue 2Article No.: 10, Pages 1–50https://doi.org/10.1145/3591473Tracking specific events in a program’s execution, such as object allocation or lock acquisition, is at the heart of dynamic analysis. Despite the apparent simplicity of this task, quantifying these events is challenging due to the presence of compiler ...
- research-articleMarch 2023
User-driven Online Kernel Fusion for SYCL
ACM Transactions on Architecture and Code Optimization (TACO), Volume 20, Issue 2Article No.: 21, Pages 1–25https://doi.org/10.1145/3571284Heterogeneous programming models are becoming increasingly popular to support the ever-evolving hardware architectures, especially for new and emerging specialized accelerators optimizing specific tasks. While such programs provide performance portability ...
- research-articleMay 2022
SIMD support to improve eclipse OpenJ9 performance on the AArch64 platform
CF '22: Proceedings of the 19th ACM International Conference on Computing FrontiersPages 49–57https://doi.org/10.1145/3528416.3530233Just-in-time (JIT) compilers achieve application portability and improved management of large code-bases by abstracting the architecture specific details from programmers. Eclipse OMR and Eclipse OpenJ9 invest extensively in JIT technology to ...
- short-paperSeptember 2021
Profiling code cache behaviour via events
MPLR 2021: Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and RuntimesPages 61–69https://doi.org/10.1145/3475738.3480720Virtual machine performance tuning for a given application is an arduous and challenging task. For example, parametrizing the behaviour of the JIT compiler machine code caches affects the overall performance of applications while being rather obscure ...
- short-paperSeptember 2021
Cross-ISA testing of the Pharo VM: lessons learned while porting to ARMv8
- Guillermo Polito,
- Pablo Tesone,
- Stéphane Ducasse,
- Luc Fabresse,
- Théo Rogliano,
- Pierre Misse-Chanabier,
- Carolina Hernandez Phillips
MPLR 2021: Proceedings of the 18th ACM SIGPLAN International Conference on Managed Programming Languages and RuntimesPages 16–25https://doi.org/10.1145/3475738.3480715Testing and debugging a Virtual Machine is a laborious task without the proper tooling. This is particularly true for VMs with JIT compilation and dynamic code patching for techniques such as inline caching. In addition, this situation is getting worse ...
- research-articleOctober 2021
A Surprisingly Simple Lua Compiler
SBLP '21: Proceedings of the 25th Brazilian Symposium on Programming LanguagesPages 1–8https://doi.org/10.1145/3475061.3475077Dynamically-typed programming languages are often implemented using interpreters, which offer several advantages in terms of portability and flexibility of the implementation. However, as a language matures and its programs get bigger, programmers may ...
- research-articleSeptember 2021
Safe-by-default Concurrency for Modern Programming Languages
ACM Transactions on Programming Languages and Systems (TOPLAS), Volume 43, Issue 3Article No.: 10, Pages 1–50https://doi.org/10.1145/3462206Modern “safe” programming languages follow a design principle that we call safety by default and performance by choice. By default, these languages enforce important programming abstractions, such as memory and type safety, but they also provide ...
Towards efficient and verified virtual machines for dynamic languages
CPP 2021: Proceedings of the 10th ACM SIGPLAN International Conference on Certified Programs and ProofsPages 61–75https://doi.org/10.1145/3437992.3439923The prevalence of dynamic languages is not commensurate with the security guarantees provided by their execution mechanisms. Consider, for example, the ubiquitous case of JavaScript: it runs everywhere and its complex just-in-time compilers produce code ...
- research-articleOctober 2019
Weakening WebAssembly
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue OOPSLAArticle No.: 133, Pages 1–28https://doi.org/10.1145/3360559WebAssembly (Wasm) is a safe, portable virtual instruction set that can be hosted in a wide range of environments, such as a Web browser. It is a low-level language whose instructions are intended to compile directly to bare hardware. While the initial ...
- research-articleJune 2017
Bringing the web up to speed with WebAssembly
- Andreas Haas,
- Andreas Rossberg,
- Derek L. Schuff,
- Ben L. Titzer,
- Michael Holman,
- Dan Gohman,
- Luke Wagner,
- Alon Zakai,
- JF Bastien
PLDI 2017: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and ImplementationPages 185–200https://doi.org/10.1145/3062341.3062363The maturation of the Web platform has given rise to sophisticated and demanding Web applications such as interactive 3D visualization, audio and video software, and games. With that, efficiency and security of code on the Web has become more important ...
Also Published in:
ACM SIGPLAN Notices: Volume 52 Issue 6 - research-articleFebruary 2014
Efficient hosted interpreters on the JVM
- Gülfem Savrun-Yeniçeri,
- Wei Zhang,
- Huahan Zhang,
- Eric Seckler,
- Chen Li,
- Stefan Brunthaler,
- Per Larsen,
- Michael Franz
ACM Transactions on Architecture and Code Optimization (TACO), Volume 11, Issue 1Article No.: 9, Pages 1–24https://doi.org/10.1145/2532642Many guest languages are implemented using the Java Virtual Machine (JVM) as a host environment. There are two major implementation choices: custom compilers and so-called hosted interpreters. Custom compilers are complex to build but offer good ...
- research-articleOctober 2013
Unipycation: a case study in cross-language tracing
VMIL '13: Proceedings of the 7th ACM workshop on Virtual machines and intermediate languagesPages 31–40https://doi.org/10.1145/2542142.2542146Language composition approaches have traditionally suffered from poor performance. In this paper we hypothesise that meta-tracing provides a means to compose independent language interpreters while retaining the performance levels of each. To study this ...
- research-articleSeptember 2013
Efficient interpreter optimizations for the JVM
PPPJ '13: Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and ToolsPages 113–123https://doi.org/10.1145/2500828.2500839The Java virtual machine is a popular target for many language implementers. Due to the unusually poor performance of hosted interpreters, many programming language implementers resort to implementing a custom compiler that emits Java bytecode instead. ...
- articleSeptember 2000
Techniques for obtaining high performance in Java programs
This survey describes research directions in techniques to improve the performance of programs written in the Java programming language. The standard technique for Java execution is interpretation, which provides for extensive portability of programs. A ...