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.