I am not sure whether my understanding is right, that the function replaceRegEqv
1. replaces local variables with iTemps, including register passed parameters, excluding statically allocated and on-stack parameters
2. find which icodes assign a new value to each iTemp
3. any others I miss?

And I also have confusion with its comments :

  /* Update the symbols' def bitvector so we know if there is   */
  /* a defining iCode or not. Only replace a local variable     */
  /* with its register equivalent if there is a defining iCode; */
  /* otherwise, the port's register allocater may choke.        */

What does it mean by "otherwise, the port's register allocater may choke. " ?