[Bug rtl-optimization/64317] [5 Regression] Ineffective allocation of PIC base register
law at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Mar 23 07:53:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64317
--- Comment #24 from Jeffrey A. Law <law at gcc dot gnu.org> ---
Author: law
Date: Mon Mar 23 05:21:04 2015
New Revision: 221585
URL: https://gcc.gnu.org/viewcvs?rev=221585&root=gcc&view=rev
Log:
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.
Added:
trunk/gcc/gcse-common.c
trunk/gcc/gcse-common.h
Modified:
trunk/gcc/ChangeLog
trunk/gcc/Makefile.in
trunk/gcc/gcse.c
trunk/gcc/postreload-gcse.c
More information about the Gcc-bugs
mailing list