Precise Exception Semantics in Dynamic Compilation

Maintaining precise exceptions is an important aspect of achieving full compatibility with a legacy architecture. While asynchronous exceptions can be deferred to an appropriate boundary in the code, synchronous exceptions must be taken when they occur. This introduces uncertainty into liveness analysis since processor state that is otherwise dead may be exposed when an exception handler is invoked. Previous systems either had to sacrifice full compatibility to achieve more freedom to perform optimization, use less aggressive optimization or rely on hardware support.In this work, we demonstrate how aggressive optimization can be used in conjunction with dynamic compilation without the need for specialized hardware. The approach is based on maintaining enough state to recompute the processor state when an unpredicted event such as a synchronous exception may make otherwise dead processor state visible. The transformations necessary to preserve precise exception capability can be performed in linear time.

[1]  Kemal Ebcioglu,et al.  VLIW compilation techniques in a superscalar environment , 1994, PLDI '94.

[2]  John L. Hennessy,et al.  Symbolic Debugging of Optimized Code , 1982, TOPL.

[3]  K. Ebcioglu,et al.  Daisy: Dynamic Compilation For 10o?40 Architectural Compatibility , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[4]  Josva Kleist,et al.  Euro-Par'99 - Parallel Processing: 5th International Euro-Par Conference , 1999 .

[5]  Michael Gschwind,et al.  Dynamic and Transparent Binary Translation , 2000, Computer.

[6]  Michael Gschwind,et al.  Execution-Based Scheduling for VLIW Architectures , 1999, Euro-Par.

[7]  Vasanth Bala,et al.  Transparent Dynamic Optimization: The Design and Implementation of Dynamo , 1999 .

[8]  Michael Gschwind,et al.  Binary translation and architecture convergence issues for IBM system/390 , 2000, ICS '00.

[9]  Erik R. Altman,et al.  Efficient Instruction Scheduling with Precise Exceptions , 2003 .

[10]  Erik R. Altman,et al.  Daisy: Dynamic Compilation For 10o?40 Architectural Compatibility , 1997, Conference Proceedings. The 24th Annual International Symposium on Computer Architecture.

[11]  Erik R. Altman,et al.  Simulation and Debugging of Full System Binary Translation , 2000 .

[12]  Bich C. Le,et al.  An out-of-order execution technique for runtime binary translators , 1998, ASPLOS VIII.

[13]  Erik R. Altman,et al.  BOA: Targeting Multi-Gigahertz with Binary Translation , 1999 .