84 p.Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 2009.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 h...
Although compiler optimization techniques are standard and successful in non-real-time systems, if n...
Trends in processor architecture and design suggest that static speculation will become a candidate...
Static timing analysis of embedded software is important for systems with hard real-time constraints...
While dynamic languages are now mainstream choices for application development, most popular dynamic...
International audienceHigh-performance dynamic language implementations make heavy use of speculativ...
Abstract—We argue that speculation leads to increased parallelism in the coarse-grain dataflow parad...
We propose a formal definition for (valid) speculative computa-tions, which is independent of any im...
To achieve good performance on modern hardware, software must be designed with a high degree of para...
The available instruction level parallelism (ILP) is extremely limited within basic blocks of non-nu...
Interpreters have a bad reputation for having lower perfor-mance than just-in-time compilers. We pre...
Speculative execution, such as control speculation or data speculation, is an effective way to impro...
International audienceJust-in-time compilers for dynamic languages routinely generate code under ass...
We argue that speculation leads to increased parallelism in the coarse-grain dataflow paradigm. To d...
Effectively utilizing available parallelism is becoming harder and harder as systems evolve to many-...
Scientific applications are ideal candidates for the “heterogeneous computing” paradigm, in which pa...
Although compiler optimization techniques are standard and successful in non-real-time systems, if n...
Trends in processor architecture and design suggest that static speculation will become a candidate...
Static timing analysis of embedded software is important for systems with hard real-time constraints...
While dynamic languages are now mainstream choices for application development, most popular dynamic...
International audienceHigh-performance dynamic language implementations make heavy use of speculativ...
Abstract—We argue that speculation leads to increased parallelism in the coarse-grain dataflow parad...
We propose a formal definition for (valid) speculative computa-tions, which is independent of any im...
To achieve good performance on modern hardware, software must be designed with a high degree of para...
The available instruction level parallelism (ILP) is extremely limited within basic blocks of non-nu...
Interpreters have a bad reputation for having lower perfor-mance than just-in-time compilers. We pre...
Speculative execution, such as control speculation or data speculation, is an effective way to impro...
International audienceJust-in-time compilers for dynamic languages routinely generate code under ass...
We argue that speculation leads to increased parallelism in the coarse-grain dataflow paradigm. To d...
Effectively utilizing available parallelism is becoming harder and harder as systems evolve to many-...
Scientific applications are ideal candidates for the “heterogeneous computing” paradigm, in which pa...
Although compiler optimization techniques are standard and successful in non-real-time systems, if n...
Trends in processor architecture and design suggest that static speculation will become a candidate...
Static timing analysis of embedded software is important for systems with hard real-time constraints...