The GCC internal document says [1]:
[quote]
In the early stages of register allocation, a REG_EQUAL note is changed
into a REG_EQUIV note if op is a constant and the insn represents the
only set of its destination register.
Thus, compiler passes prior to register allocation need only check for
REG_EQUAL notes and passes subsequent to register allocation need only
check for REG_EQUIV notes.
[/quote]
But I still find REG_EQUAL notes in RTL dumps for those passes after
IRA. My understanding is: a REG_EQUAL note is changed into a REG_EQUIV
note in IRA when possible, but the remaining REG_EQUAL notes are still
kept around. So the compiler passes after register allocation need check
for both REG_EQUIV notes and REG_EQUAL notes. Is my understanding correct?
[1] http://gcc.gnu.org/onlinedocs/gccint/Insns.html#index-REG_005fEQUIV-2258
--
Jie Zhang
CodeSourcery
(650) 331-3385 x735