OSDN Git Service

* alias.c (init_alias_analysis): Remove simplification loop
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Nov 2006 23:15:38 +0000 (23:15 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Nov 2006 23:15:38 +0000 (23:15 +0000)
        after propagating pointers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119262 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/alias.c

index fa65b98..896826d 100644 (file)
@@ -1,3 +1,8 @@
+2006-11-27  Steven Bosscher  <steven@gcc.gnu.org>
+
+       * alias.c (init_alias_analysis): Remove simplification loop
+       after propagating pointers.
+
 2006-11-27  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.c (x86_ext_80387_constants): Add m_K8, m_CORE2
index d027b79..a3634ac 100644 (file)
@@ -2586,38 +2586,6 @@ init_alias_analysis (void)
     if (reg_known_value[i] == 0)
       reg_known_value[i] = regno_reg_rtx[i + FIRST_PSEUDO_REGISTER];
 
-  /* Simplify the reg_base_value array so that no register refers to
-     another register, except to special registers indirectly through
-     ADDRESS expressions.
-
-     In theory this loop can take as long as O(registers^2), but unless
-     there are very long dependency chains it will run in close to linear
-     time.
-
-     This loop may not be needed any longer now that the main loop does
-     a better job at propagating alias information.  */
-  pass = 0;
-  do
-    {
-      changed = 0;
-      pass++;
-      for (ui = 0; ui < maxreg; ui++)
-       {
-         rtx base = VEC_index (rtx, reg_base_value, ui);
-         if (base && REG_P (base))
-           {
-             unsigned int base_regno = REGNO (base);
-             if (base_regno == ui)             /* register set from itself */
-               VEC_replace (rtx, reg_base_value, ui, 0);
-             else
-               VEC_replace (rtx, reg_base_value, ui,
-                            VEC_index (rtx, reg_base_value, base_regno));
-             changed = 1;
-           }
-       }
-    }
-  while (changed && pass < MAX_ALIAS_LOOP_PASSES);
-
   /* Clean up.  */
   free (new_reg_base_value);
   new_reg_base_value = 0;