Idea: Instructions generate many highly predictable result values in real programs ?Speculate on source operand values and begin execution without waiting for result from the previous instruction.Speculate about true data dependences!!
reasons for the existence of value locality
- Register spill code.
- Input sets often contain data with little variation.
- A compiler often generates run-time constants due to error-checking, switch statement evaluation, and virtual function calls.
- The compiler also often loads program constants from memory rather than using immediate operands.