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.

Reply via email to