* flow.c (regno_uninitialized): Fixed regs are never uninitialized.
authorRichard Henderson <rth@cygnus.com>
Tue, 21 Jul 1998 08:54:29 +0000 (01:54 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Tue, 21 Jul 1998 08:54:29 +0000 (01:54 -0700)
From-SVN: r21321

gcc/ChangeLog
gcc/flow.c

index 7452e50..68e284c 100644 (file)
@@ -1,3 +1,7 @@
+Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
+
 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
 
        * gcc.c (do_spec): Call "error" not "warning".
index 43ea11d..0e3b044 100644 (file)
@@ -2030,10 +2030,10 @@ libcall_dead_p (x, needed, note, insn)
   return 1;
 }
 
-/* Return 1 if register REGNO was used before it was set.
-   In other words, if it is live at function entry.
-   Don't count global register variables or variables in registers
-   that can be used for function arg passing, though.  */
+/* Return 1 if register REGNO was used before it was set, i.e. if it is
+   live at function entry.  Don't count global register variables, variables
+   in registers that can be used for function arg passing, or variables in
+   fixed hard registers.  */
 
 int
 regno_uninitialized (regno)
@@ -2041,7 +2041,9 @@ regno_uninitialized (regno)
 {
   if (n_basic_blocks == 0
       || (regno < FIRST_PSEUDO_REGISTER
-         && (global_regs[regno] || FUNCTION_ARG_REGNO_P (regno))))
+         && (global_regs[regno]
+             || fixed_regs[regno]
+             || FUNCTION_ARG_REGNO_P (regno))))
     return 0;
 
   return REGNO_REG_SET_P (basic_block_live_at_start[0], regno);