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]

[lra] patch to use equiv for restoring values around calls


The following patch permits to use equivalences to restore pseudo values around the call.

As side effect the patch solves SPECFP2000 art degradation on x86-64 and possibly on ppc64 (unfortunately the score results for art is too unstable on power7).

The patch was successfully bootstrapped on x86-64 and ppc64.

2011-09-15 Vladimir Makarov <vmakarov@redhat.com>

        * lra.c (remove_scratches): Rescan changed insns.
        (lra): Call df_analyze after lr_save_restore if necessary.

* lra-int.h (lr_save_restore): Change the prototype.

        * lra-saves.c (struct save_regs): Rename mem_reg to saved_value.
        Add new member equiv_p.
        (equiv_for_save): New function.
        (update_live_info_p): New static variable.
        (setup_save_regs): Add code to regno equivalence.
        (insert_save_restore): Ditto.
        (lra_save_restore): Return true if need to update live info.

Attachment: equiv-caller-saves.patch
Description: Text document


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