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