re PR rtl-optimization/3700 (ISSUE_RATE not defined for mips target)
authorEric Christopher <echristo@redhat.com>
Sat, 27 Apr 2002 02:33:37 +0000 (02:33 +0000)
committerEric Christopher <echristo@gcc.gnu.org>
Sat, 27 Apr 2002 02:33:37 +0000 (02:33 +0000)
2002-04-26  Eric Christopher  <echristo@redhat.com>

PR optimization/3700
* config/mips/mips.c (mips_issue_rate): Define.  New function.
(TARGET_SCHED_ISSUE_RATE): Use.

From-SVN: r52825

gcc/ChangeLog
gcc/config/mips/mips.c

index 70c3795e9e425affd0e923e2d401f0878e0a128b..a9ddd4901a83886ce50b213e0a4c9302bf8f312a 100644 (file)
@@ -1,3 +1,9 @@
+2002-04-26  Eric Christopher  <echristo@redhat.com>
+
+       PR optimization/3700
+       * config/mips/mips.c (mips_issue_rate): Define.  New function.
+       (TARGET_SCHED_ISSUE_RATE): Use.
+
 2002-04-25  David S. Miller  <davem@redhat.com>
 
        PR target/6422
        of the corresponding functions.
        * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
        New prototypes.
-       
+
 2002-04-25  Matt Hiller  <hiller@redhat.com>
 
        * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
        for coprocessor registers.
        (ADDITIONAL_REGISTER_NAMES): Include
        ALL_COP_ADDITIONAL_REGISTER_NAMES.
-       
+
        (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
        COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
        COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
        * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
        * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
        isn't mips.
-       
+
        * doc/tm.texi: Document feature.
 
 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
index a02dc6a42a063c6862e807cd8b13c7becf85349e..401cbbd4d6d79b10832b4de046ab6c4c0b6d61d3 100644 (file)
@@ -143,6 +143,7 @@ static hashval_t iris_section_align_entry_hash      PARAMS ((const PTR));
 static int iris6_section_align_1               PARAMS ((void **, void *));
 #endif
 static int mips_adjust_cost                    PARAMS ((rtx, rtx, rtx, int));
+static int mips_issue_rate                     PARAMS ((void));
 
 static void mips_init_machine_status           PARAMS ((struct function *));
 static void mips_free_machine_status           PARAMS ((struct function *));
@@ -572,6 +573,9 @@ enum reg_class mips_char_to_class[256] =
 #undef TARGET_SCHED_ADJUST_COST
 #define TARGET_SCHED_ADJUST_COST mips_adjust_cost
 
+#undef TARGET_SCHED_ISSUE_RATE
+#define TARGET_SCHED_ISSUE_RATE mips_issue_rate
+
 struct gcc_target targetm = TARGET_INITIALIZER;
 \f
 /* Return truth value of whether OP can be used as an operands
@@ -1976,7 +1980,7 @@ embedded_pic_fnaddr_reg ()
     }
 
   return cfun->machine->embedded_pic_fnaddr_rtx;
-}  
+}
 
 /* Return RTL for the offset from the current function to the argument.
    X is the symbol whose offset from the current function we want.  */
@@ -10324,7 +10328,24 @@ mips_return_in_memory (type)
            || (int_size_in_bytes (type) == -1));
 }
 
+static int
+mips_issue_rate ()
+{
+  int rate;
+
+  switch (mips_tune)
+    {
+    case PROCESSOR_R3000:
+      rate = 1;
+      break;
+
+    default:
+      rate = 1;
+      break;
+    }
 
+  return rate;
+}
 
 \f
 #ifdef TARGET_IRIX6