OSDN Git Service

Warning fixes, resulting in the addition of a new target macro:
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Mar 1998 12:32:24 +0000 (12:32 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Mar 1998 12:32:24 +0000 (12:32 +0000)
        * tm.texi (DEFAULT_RTX_COSTS): Document new macro.
        * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS.
        * cse.c (rtx_cost): Provide a default case in an enumeration
        switch, and call DEFAULT_RTX_COSTS if it's defined.

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

gcc/ChangeLog
gcc/config/arm/arm.h
gcc/cse.c
gcc/tm.texi

index 853a15c..9b08cfc 100644 (file)
@@ -1,3 +1,14 @@
+Thu Mar 12 15:13:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+                          Richard Earnshaw <rearnsha@arm.com>
+                          Nick Clifton  <nickc@cygnus.com>
+       
+        * tm.texi (DEFAULT_RTX_COSTS): Document new macro.
+       
+        * arm.h (DEFAULT_RTX_COSTS): Define instead of RTX_COSTS.
+       
+        * cse.c (rtx_cost): Provide a default case in an enumeration
+        switch, and call DEFAULT_RTX_COSTS if it's defined.
+       
 Thu Mar 12 10:02:38 1998  Manfred Hollstein  <manfred@s-direktnet.de>
 
        * basic-block.h (compute_preds_succs): Change return type in
index 59d3ac3..7c28c64 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions of target machine for GNU compiler, for Acorn RISC Machine.
-   Copyright (C) 1991, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1991, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
    Contributed by Pieter `Tiggr' Schoenmakers (rcpieter@win.tue.nl)
    and Martin Simmons (@harleqn.co.uk).
    More major hacks by Richard Earnshaw (rwe11@cl.cam.ac.uk)
@@ -1620,8 +1620,7 @@ extern struct rtx_def *legitimize_pic_address ();
   ((X) == frame_pointer_rtx || (X) == stack_pointer_rtx        \
    || (X) == arg_pointer_rtx)
 
-#define RTX_COSTS(X,CODE,OUTER_CODE)           \
-  default:                                     \
+#define DEFAULT_RTX_COSTS(X,CODE,OUTER_CODE)           \
    return arm_rtx_costs (X, CODE, OUTER_CODE);
 
 /* Moves to and from memory are quite expensive */
index cf53240..b525dcc 100644 (file)
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -751,6 +751,12 @@ rtx_cost (x, outer_code)
       RTX_COSTS (x, code, outer_code);
 #endif 
       CONST_COSTS (x, code, outer_code);
+
+    default:
+#ifdef DEFAULT_RTX_COSTS
+      DEFAULT_RTX_COSTS(x, code, outer_code);
+#endif
+      break;
     }
 
   /* Sum the costs of the sub-rtx's, plus cost of this operation,
index e0e31fd..00311bf 100644 (file)
@@ -4436,6 +4436,21 @@ instructions.  @var{outer_code} is the code of the expression in which
 This macro is optional; do not define it if the default cost assumptions
 are adequate for the target machine.
 
+@findex DEFAULT_RTX_COSTS
+@item DEFAULT_RTX_COSTS (@var{x}, @var{code}, @var{outer_code})
+This macro, if defined, is called for any case not handled by the
+@code{RTX_COSTS} or @code{CONST_COSTS} macros.  This eliminates the need
+to put case labels into the macro, but the code, or any functions it
+calls, must assume that the RTL in @var{x} could be of any type that has
+not already been handled.  The arguments are the same as for
+@code{RTX_COSTS}, and the macro should execute a return statement giving
+the cost of any RTL expressions that it can handle.  The default cost
+calculation is used for any RTL for which this macro does not return a
+value.
+
+This macro is optional; do not define it if the default cost assumptions
+are adequate for the target machine.  
+
 @findex ADDRESS_COST
 @item ADDRESS_COST (@var{address})
 An expression giving the cost of an addressing mode that contains