OSDN Git Service

2002-04-18 David S. Miller <davem@redhat.com>
authordavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Apr 2002 23:37:15 +0000 (23:37 +0000)
committerdavem <davem@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Apr 2002 23:37:15 +0000 (23:37 +0000)
* config/sparc/sparc.h (BRANCH_COST): Define.

* fold-const.c (BRANCH_COST): Don't provide default here, expr.h
does it.

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

gcc/ChangeLog
gcc/config/sparc/sparc.h
gcc/fold-const.c

index 742f308..e3eb77b 100644 (file)
@@ -1,3 +1,10 @@
+2002-04-18  David S. Miller  <davem@redhat.com>
+
+       * config/sparc/sparc.h (BRANCH_COST): Define.
+
+       * fold-const.c (BRANCH_COST): Don't provide default here, expr.h
+       does it.
+
 2002-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
 
        * flow.c (update_life_info): Ignore return value of cleanup_cfg.
index fd15297..4552132 100644 (file)
@@ -2607,6 +2607,23 @@ do {                                                                    \
     || (CLASS1) == FPCC_REGS || (CLASS2) == FPCC_REGS)         \
    ? (sparc_cpu == PROCESSOR_ULTRASPARC ? 12 : 6) : 2)
 
+/* Provide the cost of a branch.  For pre-v9 processors we use
+   a value of 3 to take into account the potential annulling of
+   the delay slot (which ends up being a bubble in the pipeline slot)
+   plus a cycle to take into consideration the instruction cache
+   effects.
+
+   On v9 and later, which have branch prediction facilities, we set
+   it to the depth of the pipeline as that is the cost of a
+   mispredicted branch.
+
+   ??? Set to 9 when PROCESSOR_ULTRASPARC3 is added  */
+
+#define BRANCH_COST \
+       ((sparc_cpu == PROCESSOR_V9 \
+         || sparc_cpu == PROCESSOR_ULTRASPARC) \
+        ? 7 : 3)
+
 /* Provide the costs of a rtl expression.  This is in the body of a
    switch on CODE.  The purpose for the cost of MULT is to encourage
    `synth_mult' to find a synthetic multiply when reasonable.
index a1c33f9..9429a4d 100644 (file)
@@ -106,10 +106,6 @@ static tree fold_binary_op_with_conditional_arg
   PARAMS ((enum tree_code, tree, tree, tree, int));
 static bool fold_real_zero_addition_p  PARAMS ((tree, tree, int));
                                                         
-#ifndef BRANCH_COST
-#define BRANCH_COST 1
-#endif
-
 #if defined(HOST_EBCDIC)
 /* bit 8 is significant in EBCDIC */
 #define CHARMASK 0xff