>> Though the two pseudo-regs >> are connected by reg-move insn and contains same value afterward, >> the two live ranges(i.e. allocnos) are conflict with each other, thus IRA >> cannot allocate same hard register for them. > > If two allocnos have the same value, why can't IRA coalesce them? I don't know IRA very well,by guessing, IRA does not know that the two allocnos have same value, and they ARE conflict with each other, this is reflected in build_conflicts. After conflict is built, there is no chance to coalesce.
> > And why isn't this overlap copy-propped out before IRA? > Because the move insn is generated in cse2 pass and there is no copy prop pass from cse2 to ira. Thanks. -- Best Regards.