re PR rtl-optimization/64317 (Ineffective allocation of PIC base register)
authorJeff Law <law@redhat.com>
Mon, 23 Mar 2015 05:21:04 +0000 (23:21 -0600)
committerJeff Law <law@gcc.gnu.org>
Mon, 23 Mar 2015 05:21:04 +0000 (23:21 -0600)
commitaf3eb1106883dffe6b1164070a00ad0c14df1146
treeff31c846a2349895a68d8feecadffa34bf433a27
parent4460b2dc61de31c84b9a25464eea06be0567c0db
re PR rtl-optimization/64317 (Ineffective allocation of PIC base register)

       PR rtl-optimization/64317
        * Makefile.in (OBJS): Add gcse-common.c
        * gcse.c: Include gcse-common.h
        (struct modify_pair_s): Move structure definition to gcse-common.h
        (compute_transp): Move function to gcse-common.c.
        (canon_list_insert): Similarly.
        (record_last_mem_set_info): Break out some code and put it into
        gcse-common.c.  Call into the new common code.
        (compute_local_properties): Pass additional arguments to compute_transp.
        * postreload-gcse.c: Include gcse-common.h and df.h
        (modify_mem_list_set, blocks_with_calls): New variables.
        (modify_mem_list, canon_modify_mem_list, transp): Likewise.
        (get_bb_avail_insn): Pass in the expression index too.
        (alloc_mem): Allocate memory for the new bitmaps and lists.
        (free_mem): Free memory for the new bitmaps and lists.
        (insert_expr_in_table): Record a bitmap index for each entry we
        add to the table.
        (record_last_mem_set_info): Call into common code in gcse-common.c.
        (get_bb_avail_insn): If no available insn was found in the requested
        BB.  If BB has a single predecessor, see if the expression is
        transparent in BB and available in that single predecessor.
        (compute_expr_transp): New wrapper for compute_transp.
        (eliminate_partially_redundant_load): Pass expression's bitmap_index
        to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
        (gcse_after_reload_main): If there are elements in the hash table,
        then compute transparency for all the elements in the hash table.
        * gcse-common.h: New file.
        * gcse-common.c: New file.

From-SVN: r221585
gcc/ChangeLog
gcc/Makefile.in
gcc/gcse-common.c [new file with mode: 0644]
gcc/gcse-common.h [new file with mode: 0644]
gcc/gcse.c
gcc/postreload-gcse.c