A name dependence occurs when two instructions Inst1 and Inst2 use the same register (or memory location), but there is no data transmitted between Inst1 and Inst2.
If the register is renamed so that Inst1 and Inst2 do not conflict, the two instructions can execute simultaneously or be reordered.
The technique that dynamically eliminates name dependences in registers to avoid WAR and WAW hazard, is called register renaming.
Register renaming can be done statically (= by compiler) or dynamically (= by hardware).
Tomasulo’s algorithm performs register renaming per hardware!
Dynamic renaming in memory is much harder to perform!Why??Pointer aliasing problems.