Compiler-directed Computation Reuse (CCR) enhances program execution speed
and efficiency by eliminating dynamic computation redundancy. In this appro
ach, the compiler designates large program regions for potential reuse. Dur
ing run time, the execution results of these reusable regions are recorded
into hardware buffers for future reuse. Previous work shows that CCR can re
sult in significant performance enhancements in general applications. A maj
or limitation of the work is that the compiler relies on value profiling to
identify reusable regions, making it difficult to deploy the scheme in man
y software production environments. This paper presents a new hardware mode
l that alleviates the need for value profiling at compile time. The compile
r is allowed to designate reusable regions that may prove to be inappropria
te. The hardware mechanism monitors the dynamic behavior of compiler-design
ated regions and selectively activates the profitable ones at run time. Exp
erimental results show that the proposed design makes more effective utiliz
ation of hardware buffer resources, achieves rapid employment of computatio
n regions, and improves reuse accuracy, all of which promote more flexible
compiler methods of identifying reusable computation regions.