diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-22 19:28:23 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-22 19:28:23 +0000 |
commit | ebc94641ff3e0c2c1b02d02147eb2738c86577e3 (patch) | |
tree | ce100096d41a38847cdcf3bd954b2e8fbcdd6bd2 /gcc/see.c | |
parent | a8cb6ebcf2203cf9456618c144b2daf0572c46e9 (diff) | |
download | gcc-ebc94641ff3e0c2c1b02d02147eb2738c86577e3.tar.gz |
PR rtl-optimization/33644
* cfgcleanup.c: Do not include dce.h.
* cfgrtl.c (delete_insn_chain_and_edges): Resurrect.
* combine.c (distribute_notes): Delete REG_LIBCALL_ID case.
* dce.c (something_changed): Delete.
(libcall_dead_p): New predicate.
(delete_unmarked_insns): Use it to delete dead libcalls.
Deal with REG_LIBCALL and REG_RETVAL notes.
(prescan_libcall_for_dce): New function.
(prescan_insns_for_dce): Use it to deal with libcalls.
(mark_reg_dependencies): Do nothing special for libcalls.
(dce_process_block): Likewise.
(fast_dce): Delete unused local variable.
(run_fast_dce): Do not return a value.
* dce.h (struct df): Delete.
(run_fast_dce): Adjust prototype.
* optabs.c (libcall_id): Delete.
(maybe_encapsulate_block): Do not emit REG_LIBCALL_ID notes.
(emit_no_conflict_block): Do not look for REG_LIBCALL_ID notes.
* reload1.c (reload): Delete REG_LIBCALL_ID case.
* rtl.h (delete_insn_chain_and_edges): Resurrect prototype.
* see.c (see_update_relevancy): Look for REG_LIBCALL and REG_RETVAL
notes instead of REG_LIBCALL_ID notes.
* reg-notes.def (LIBCALL_ID): Delete.
* Makefile.in (see.o): Add dce.h dependency.
(cfgcleanup.o): Remove dce.h dependency.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129556 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/see.c')
-rw-r--r-- | gcc/see.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/see.c b/gcc/see.c index 0302af2d94f..8191b2d8103 100644 --- a/gcc/see.c +++ b/gcc/see.c @@ -3649,9 +3649,9 @@ see_update_defs_relevancy (rtx insn, struct df_ref *ref, The information of the u'th use is stored in use_entry[u] and the information of the d'th definition is stored in def_entry[d]. - + Currently all the uses are relevant for the optimization except for - uses that are in LIBCALL instructions. */ + uses that are in LIBCALL or RETVAL instructions. */ static void see_update_relevancy (void) @@ -3676,13 +3676,12 @@ see_update_relevancy (void) unsigned int uid = INSN_UID (insn); if (INSN_P (insn)) { - - /* If this is an insn in a libcall, do not touch the uses. */ - if (find_reg_note (insn, REG_LIBCALL_ID, NULL_RTX)) + if (find_reg_note (insn, REG_LIBCALL, NULL_RTX) + || find_reg_note (insn, REG_RETVAL, NULL_RTX)) et = NOT_RELEVANT; else et = RELEVANT_USE; - + for (use_rec = DF_INSN_UID_USES (uid); *use_rec; use_rec++) { struct df_ref *use = *use_rec; |