HyperLink   Hardware Support for Dynamic Activation of Compiler-Directed Computation Reuse.
Publication Year:
  Daniel A. Connors, Hillery C. Hunter, Ben-Chung Cheng, Wen-mei Hwu
  Proceedings of the 9th International Conference on Architecture Support for Programming Languages and Operating Systems, November 2000

Compiler-directed Computation Reuse (CCR) enhances program execution speed and efficiency by eliminating dynamic computation redundancy. In the CCR approach, the compiler designates large program regions for potential reuse. During run time, the execution results of these reusable regions are recorded into hardware buffers for future reuse. Previous work shows that CCR can result in significant performance enhancements in general applications. A major limitation of the work is that the compiler relies on value profiling to identify reusable regions, making it difficult to deploy the scheme in many software production environments.

This paper presents a new hardware model that alleviates the need for value profiling at compile time. The compiler is allowed to designate reusable regions that may prove to be inappropriate. The hardware mechanism monitors the dynamic behavior of compiler-designated regions and selectively activates the profitable ones at run time. Experimental results show that the proposed design makes more effective utilization of hardware buffer resources, achieves rapid employment of computation regions, and improves reuse accuracy, all of which promote more flexible compiler methods of identifying reusable computation regions. Results also indicate that even a modest hardware monitoring mechanism can greatly increase the benefit of the CCR approach.