Improving Error Checking and Unsafe Optimizations using Software Speculation

The use of multi-core, multi-processor machines is opening new opportunities for software speculation, where program code is speculatively executed to improve performance at the additional cost of monitoring and error recovery. We present a new system that use software speculation to support unsafely optimized code or to reduce the overhead of expensive correctness checks. We open a fast, unsafe track of execution while running the correct code on other processors to ensure correctness. We have implemented a system including runtime library and compiler support, and have verified the correctness and performance using SPEC benchmarks with memory checking inserted by GCC's mudflap system.
Greg Steffan
Last modified: Wed Aug 27 12:01:27 EDT 2008