------- Comment #14 from vmakarov at redhat dot com 2009-10-06 21:59 ------- IRA does not create a conflict for p66 and p67 (in function triangle). One pseudo is earlyclobber. They should have a conflict. Therefore p67 gets wrong hard register and reload fixes this by generation of additional move.
Actually I found a reason for this. It is a typo in ira-lives.c::check_and_make_def_conflict (continue stmts should be instead of returns in the loop). I'll submit the patch for a review soon. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22072