aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcse.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2003-01-07 23:14:43 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2003-01-07 22:14:43 +0000
commit9635cfadeef9c6a1556a1675094a1f5af9e4fe8b (patch)
treeb69303dec14643feb1ed9f6714049e127cdb3831 /gcc/gcse.c
parentb5038cfb822f8f3881fab43d0149dd205d4ca001 (diff)
downloadgcc-9635cfadeef9c6a1556a1675094a1f5af9e4fe8b.zip
gcc-9635cfadeef9c6a1556a1675094a1f5af9e4fe8b.tar.gz
gcc-9635cfadeef9c6a1556a1675094a1f5af9e4fe8b.tar.bz2
cselib.c (cselib_current_insn_in_libcall): New static variable.
* cselib.c (cselib_current_insn_in_libcall): New static variable. (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether we are inside libcall. * cselib.h (elt_loc_list): Add in_libcall. * gcse.c (do_local_cprop): Do not copy propagate using insns in libcalls. From-SVN: r61023
Diffstat (limited to 'gcc/gcse.c')
-rw-r--r--gcc/gcse.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 400df2d..ae0a1ba 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -4274,6 +4274,9 @@ do_local_cprop (x, insn, alter_jumps, libcall_sp)
rtx this_rtx = l->loc;
rtx note;
+ if (l->in_libcall)
+ continue;
+
if (CONSTANT_P (this_rtx))
newcnst = this_rtx;
if (REG_P (this_rtx) && REGNO (this_rtx) >= FIRST_PSEUDO_REGISTER