@MISC{Riley_explicitsoftware, author = {Nicholas J. Riley}, title = {EXPLICIT SOFTWARE SPECULATION FOR DYNAMIC LANGUAGE RUNTIMES BY}, year = {} }
Share
OpenURL
Abstract
While dynamic languages are now mainstream choices for application development, most popular dynamic languages are primarily executed by interpreters whose perfor-mance and capabilities restrict their wider application. The only successful remedy for these limitations has been dynamic optimization infrastructures developed specif-ically for each language. Building such infrastructures is a substantial undertaking. This dissertation presents explicit software speculation, which encloses common or expected case code in atomic regions. A best-effort hardware transactional memory executes a region speculatively when specified assumptions, or correctness constraints, permit. When an assumption becomes invalid, the hardware and runtime software transition to corresponding nonspeculative, fallback code which executes correctly, albeit more slowly, under all circumstances. I demonstrate that explicit speculation improves the performance of dynamic language implementations on existing managed runtimes by speculatively executing dynamic language code with a common case interpretation of the language semantics. I implement a variety of optimizations at a high level, maintaining correct execution without requiring the sophisticated static analysis, language-specific runtime profiling infrastructure or potentially intricate, low-level recovery code that would be otherwise necessary. In addition, I explore how explicit speculation can guarantee speculative optimization correctness in an unmanaged dynamic language runtime by utilizing additional hardware support for fine-grain memory protection. ii In memory of my mother, Dr Julia H Riley. iii