From 98b99b3057d24ff33b7767e72f95495f27588e85 Mon Sep 17 00:00:00 2001 From: "(no author)" <(no author)@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sun, 9 Mar 2003 17:55:48 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'hammer-3_3-merge-20030309'. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/tags/hammer-3_3-merge-20030309@64040 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/cselib.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/cselib.c') diff --git a/gcc/cselib.c b/gcc/cselib.c index feffa6de6cf..e34f26772ac 100644 --- a/gcc/cselib.c +++ b/gcc/cselib.c @@ -83,6 +83,7 @@ static GTY((param_is (cselib_val))) htab_t hash_table; /* This is a global so we don't have to pass this through every function. It is used in new_elt_loc_list to set SETTING_INSN. */ static rtx cselib_current_insn; +static bool cselib_current_insn_in_libcall; /* Every new unknown value gets a unique number. */ static unsigned int next_unknown_value; @@ -163,6 +164,7 @@ new_elt_loc_list (next, loc) el->next = next; el->loc = loc; el->setting_insn = cselib_current_insn; + el->in_libcall = cselib_current_insn_in_libcall; return el; } @@ -1308,6 +1310,10 @@ cselib_process_insn (insn) int i; rtx x; + if (find_reg_note (insn, REG_LIBCALL, NULL)) + cselib_current_insn_in_libcall = true; + if (find_reg_note (insn, REG_RETVAL, NULL)) + cselib_current_insn_in_libcall = false; cselib_current_insn = insn; /* Forget everything at a CODE_LABEL, a volatile asm, or a setjmp. */ @@ -1407,6 +1413,7 @@ cselib_init () hash_table = htab_create_ggc (31, get_value_hash, entry_and_rtx_equal_p, NULL); clear_table (1); + cselib_current_insn_in_libcall = false; } /* Called when the current user is done with cselib. */ -- cgit v1.2.3