Larus, J. R. and Chandra, S. 1993. Using tracing and dynamic slicing to tune compilers . University of Wisconsin Technical Report 1174. Bates and Horwitz proof that statements in the same class are exercised by the same test cases. Finding such a common subexpression is an indication of sub optimal code being generated.
Object code is instrumented with trace generating instructions.
A trace regenerator reads a trace and produces a stream of events, such as the read and load of a memory location. Larus, J., and Chandra, S. Using tracing and dynamic slicing to tune compilers . The reuse exposed by the static load reuse analysis. James Larus and Satish Chandra. Using tracing and dynamic slicing to tune compilers .