This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

patch to fix PR59133


The following patch fixes

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59133

The problem was in creation a new additional pseudo by RTL infrastructure and assigning it a wrong class.

The patch was bootstrapped and tested on x86/x86-64 and ppc64.

Committed as rev. 205141.

2013-11-20  Vladimir Makarov  <vmakarov@redhat.com>

        PR rtl-optimization/59133
        * lra.c (expand_reg_data): Add new argument.  Set up ALL_REGS for
        new pseudos.
        (lra_create_new_reg_with_unique_value): Pass new argument value.
        (lra_emit_add, lra_emit_move): Ditto.
        * lra-constraints.c (in_class_p): Add check for move for a new
        insn.
        (change_class): Rename to lra_change_class.  Move to lra-int.h.
        (get_reload_reg, narrow_reload_pseudo_class): Adjust calls of
        change_class.
        (process_addr_reg, process_addr): Ditto.
        (curr_insn_transform): Ditto.  Add check on old pseudo for
        optional reload.
        * lra-int.h (lra_get_regno_hard_regno): Move below.
        (lra_change_class): Renamed change_class from lra.c.

2013-11-20  Vladimir Makarov  <vmakarov@redhat.com>

        PR rtl-optimization/59133
        * gcc.target/i386/pr59133.c: New.

Attachment: pr59133.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]