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 switching on LRA remat


The LRA rematerialization patch I've submitted about day ago broke H.J.'s 32-bit bootstrap. So I switched off the rematerialization right away. The set for bootstrapping used by H.J. was very useful. I've fixed several existing and potential bugs.

Here the patch fixing the bugs and switching on LRA remat back. The patch was bootstrapped on x86-64 and i686 (using H.J.'s options).

Committed as rev. 217588.

2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>

        * lra-int.h (lra_create_live_ranges): Add parameter.
        * lra-lives.c (temp_bitmap): Move higher.
        (initiate_live_solver): Move temp_bitmap initialization into
        lra_live_ranges_init.
        (finish_live_solver): Move temp_bitmap clearing into
        live_ranges_finish.
        (process_bb_lives): Add parameter.  Use it to control live info
        update and dead insn elimination.  Pass it to mark_regno_live and
        mark_regno_dead.
        (lra_create_live_ranges): Add parameter.  Pass it to
        process_bb_lives.
        (lra_live_ranges_init, lra_live_ranges_finish): See changes in
        initiate_live_solver and finish_live_solver.
        * lra-remat.c (do_remat): Process insn non-operand hard regs too.
        Use temp_bitmap to update avail_cands.
        * lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
        check with lra_need_for_spill_p after live range pass.  Switch on
        rematerialization pass.

Attachment: remat3.patch
Description: Text document


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