alias.c (find_base_value): Only use new_reg_base_value shortcut if the register is...
authorRichard Henderson <rth@redhat.com>
Tue, 7 Jan 2003 20:59:42 +0000 (12:59 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 7 Jan 2003 20:59:42 +0000 (12:59 -0800)
        * alias.c (find_base_value): Only use new_reg_base_value shortcut
        if the register is set once.

From-SVN: r61017

gcc/ChangeLog
gcc/alias.c

index 6114e53bc817422c937aeebc78d2b39b749e2a7a..98f174d6313ead2ba78bdef3f783dfc1b75ad951 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-07  Richard Henderson  <rth@redhat.com>
+
+        * alias.c (find_base_value): Only use new_reg_base_value shortcut
+        if the register is set once.
+
 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
   
        * config/i386/i386.c (ix86_init_mmx_sse_builtins):
index fee64b1e50df27625bff57c45ef763063febee6c..960475be0c5f63cbf3e9e9bbc2c14a183ee3322c 100644 (file)
@@ -1,5 +1,6 @@
 /* Alias analysis for GNU C
-   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+   Free Software Foundation, Inc.
    Contributed by John Carr (jfc@mit.edu).
 
 This file is part of GCC.
@@ -787,7 +788,8 @@ find_base_value (src)
        {
          /* If we're inside init_alias_analysis, use new_reg_base_value
             to reduce the number of relaxation iterations.  */
-         if (new_reg_base_value && new_reg_base_value[regno])
+         if (new_reg_base_value && new_reg_base_value[regno]
+             && REG_N_SETS (regno) == 1)
            return new_reg_base_value[regno];
 
          if (reg_base_value[regno])