Barcelona RISC-V Workshop, 2018
Dynamic Language Runtimes on RISC-V
Author: Boris Shingarov
Affiliation: LabWare
Conference: 8th RISC-V Workshop, Barcelona, 2018
Abstract:
Dynamic programming languages, such as Java, Smalltalk, Python, Ruby, etc.,
are critical to RISC-V's adoption
in areas that go beyond embedded micro-controllers:
areas such as mobile devices, automotive applications,
IoT, edge computing, and data centers.
At a very minimum, RISC-V needs a modern, robust,
efficient JVM with a high performance JIT.
One of the most advanced JVMs in existence is IBM's J9.
Two important advances happened to J9 recently.
First, it has been factored into a language-semantic-neutral ("universal")
runtime "OMR" and a Java portion which implements the language-specific semantics.
Second, the whole OMR+OpenJ9 is now open-source.
The focus of this talk is two-fold.
We present preliminary results in porting OMR to RISC-V.
Beyond this short-term project,
we present a roadmap of our long-term vision
which combines a belief in runtime abstractions such as the OMR API,
with a strategy for the automated synthesis of the JIT back-end
from the formal specification of RISC-V by machne reasoning,
so that multiple dynamic languages simultaneously benefit
from the same formal verification of the runtime.
Workshop Photos
Auditorium
The Tent
Mare Nostrum
Photos, Barcelona
Palau de la Música Catalana
Montserrat
Gaudi
Santa Maria del Pi
Barcelona
|
RISC-V Summit, Santa Clara, 2018
|
|
|
7th RISC-V Workshop, Milpitas, 2017
|
|
Author: Boris Shingarov
Affiliation: LabWare
Conference: 7th RISC-V Workshop, Milpitas, 2017
Abstract:
We demonstrate two experimental backends for a JIT compiler for a dynamic
language's Virtual Machine. The principal design goal of the first one is
target-ISA agnosticism: we use logic programming to automatically infer the
code generator from a formal specification of the ISA written in a Processor
Description Language. On the other hand, the distinguishing characteristic of
our second backend is formal verification; the generator is developed in the
Coq interactive proof assistant and its executable form is extracted from the
proof. Both backends produce code for a number of ISAs including RISC-V. In
this talk, we compare our experiences debugging the two backends on a GEM5
simulation of RISC-V as well as on a RISC-V implementation in an FPGA.
CCS Concepts:
- Software and its engineering - Virtual machines
- Software and its engineering - Formal software verication
- Programming languages - Processors
Keywords:
- Virtual machine
- Certied compilation
- Program proof
- Coq theorem prover
- Curry–Howard correspondence
- Processor Description Language
- Retargetable compiler
- GEM5
- GDB Remote Serial Protocol
Workshop Photos
...coming...
Photos, Silicon Valley
...coming...
|
RISC-V Summit, San Jose, 2019
|
|
JIT Superoptimization on RISC-V via Symbolic Execution
Author: Boris Shingarov, Jan Vrany
Conference: RISC-V Summit, San Jose, 2019
Abstract:
We present a dynamic-language JIT in which the backend is automatically inferred from the formal ISA specification and the formal semantics of the VM's Intermediate Language. The core of the JIT comprises a Symbolic Execution Engine, and a Search Engine. The SEE computes the algebraic effect of an instruction sequence on an input state given as symbolic variables; whereas the instruction sequence itself is also given algebraically. (This latter fact is crucial because in a JIT, the binary program text is not known ahead-of-time, making many known IL lifting algorithms inapplicable.) Based on CLP(FD) algorithms, the Search Engine traverses the space of instruction sequences to find a sequence whose effect unifies with the effect of the VM bytecode being translated. To the found sequence, the search procedure attaches the proof of its equivalence with the VM bytecode.
CCS Concepts:
- Software and its engineering - Virtual machines
- Software and its engineering - Formal software verication
- Programming languages - Processors
Keywords:
- Virtual machine
- Certied compilation
- Processor Description Language
- Retargetable compiler
Summit Photos
...coming...
Photos, Silicon Valley
...coming...