lgorithms. After the compiler marking, we instrument the benchmarks to generate events that reflect the behavior of the codes executing on different target architectures. Execution-driven simulations =-=[29]-=- are used to verify the compiler algorithm and to evaluate the performance of compiler-directed coherence schemes. Fig. 12 shows the experimentation process used in our simulations. 5.1 Simulation All