https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87871
Peter Bergner <bergner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |bergner at gcc dot gnu.org --- Comment #33 from Peter Bergner <bergner at gcc dot gnu.org> --- Created attachment 46189 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46189&action=edit Proposed patch Here is a patch that fixes make_object_dead() that was causing r0 to be incorrectly added to p116's total_conflict_regs which made it impossible to assign r0 to p116. With this patch, we now assign r0 to p116 like we want: ;; a5(r116,l0) conflicts: ;; total conflict hard regs: ;; conflict hard regs: ... Popping a5(r116,l0) -- assign reg 0 Popping a3(r112,l0) -- assign reg 4 Popping a2(r114,l0) -- assign reg 4 Popping a0(r111,l0) -- assign reg 0 Popping a4(r117,l0) -- assign reg 0 Popping a1(r113,l0) -- assign reg 3 Disposition: 0:r111 l0 0 3:r112 l0 4 1:r113 l0 3 2:r114 l0 4 5:r116 l0 0 4:r117 l0 0 Can someone on the ARM side please bootstrap and regtest the patch to see if it fixes the testsuite fallout? I'll bootstrap and regtest it on power.