Abstract
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.
Index Terms
- Optimization and precise exceptions in dynamic compilation
Recommendations
Precise Exception Semantics in Dynamic Compilation
CC '02: Proceedings of the 11th International Conference on Compiler ConstructionMaintaining 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. ...
A Mechanism for Implementing Precise Exceptions in Pipelined Processors
DSD '04: Proceedings of the Digital System Design, EUROMICRO SystemsAn exception is precise if all instructions before the faulting instruction have completed and those instructions following it can be restarted from scratch. If all exceptions in a processor are precise, the processor is said to implement the precise ...
The MC88110 implementation of precise exceptions in a superscalar architecture
This paper describes the precise exception model of the MC88110 symmetric superscalar microprocessor. The MC88110 is a superscalar, pipelined processor that contains multiple exection units and allows out-of order execution of instructions. The MC88110 ...
Comments