Patchwork Remove default implementation of the PREFERRED_RELOAD_CLASS macro from back ends

login
register
mail settings
Submitter Anatoly Sokolov
Date Oct. 15, 2010, 4:14 p.m.
Message ID <12810109427.20101015201408@post.ru>
Download mbox | patch
Permalink /patch/67979/
State New
Headers show

Comments

Anatoly Sokolov - Oct. 15, 2010, 4:14 p.m.
Hi.

  This patch remove default implementation of the PREFERRED_RELOAD_CLASS 
macro from back ends.

  Bootstrapped and regression tested onhppa2.0-unknown-linux-gnu.

  OK to install?

        * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/avr/avr-protos.h (preferred_reload_class): Remove.
        * config/avr/avr.c (preferred_reload_class): Remove.
        * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/pa/pa.c (emit_move_sequence): Update comment
        * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
        * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.

Anatoly.
Richard Henderson - Oct. 15, 2010, 4:54 p.m.
On 10/15/2010 09:14 AM, Anatoly Sokolov wrote:
>         * config/avr/avr.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/avr/avr-protos.h (preferred_reload_class): Remove.
>         * config/avr/avr.c (preferred_reload_class): Remove.
>         * config/pa/pa.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/pa/pa.c (emit_move_sequence): Update comment
>         * config/arc/arc.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/crx/crx.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/fr30/fr30.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/frv/frv.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/h8300/h8300.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/lm32/lm32.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/m32r/m32r.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/moxie/moxie.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/picochip/picochip.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/rx/rx.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/spu/spu.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/v850/v850.h (PREFERRED_RELOAD_CLASS): Remove.
>         * config/vax/vax.h (PREFERRED_RELOAD_CLASS): Remove.

Ok.


r~

Patch

Index: gcc/config/frv/frv.h
===================================================================
--- gcc/config/frv/frv.h        (revision 165326)
+++ gcc/config/frv/frv.h        (working copy)
@@ -1201,26 +1201,6 @@ 
    ? GPR_P (NUM)                                                        \
    : (reg_renumber [NUM] >= 0 && GPR_P (reg_renumber [NUM])))
 
-/* A C expression that places additional restrictions on the register class to
-   use when it is necessary to copy value X into a register in class CLASS.
-   The value is a register class; perhaps CLASS, or perhaps another, smaller
-   class.  On many machines, the following definition is safe:
-
-        #define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS
-
-   Sometimes returning a more restrictive class makes better code.  For
-   example, on the 68000, when X is an integer constant that is in range for a
-   `moveq' instruction, the value of this macro is always `DATA_REGS' as long
-   as CLASS includes the data registers.  Requiring a data register guarantees
-   that a `moveq' will be used.
-
-   If X is a `const_double', by returning `NO_REGS' you can force X into a
-   memory constant.  This is useful on certain machines where immediate
-   floating values cannot be loaded into certain kinds of registers.
-
-   This declaration must be present.  */
-#define PREFERRED_RELOAD_CLASS(X, CLASS) CLASS
-
 #define SECONDARY_INPUT_RELOAD_CLASS(CLASS, MODE, X) \
   frv_secondary_reload_class (CLASS, MODE, X)
 
Index: gcc/config/spu/spu.h
===================================================================
--- gcc/config/spu/spu.h        (revision 165326)
+++ gcc/config/spu/spu.h        (working copy)
@@ -225,8 +225,6 @@ 
 #define INT_REG_OK_FOR_BASE_P(X,STRICT) \
        ((!(STRICT) || REGNO_OK_FOR_BASE_P (REGNO (X))))
 
-#define PREFERRED_RELOAD_CLASS(X,CLASS)  (CLASS)
-
 #define CLASS_MAX_NREGS(CLASS, MODE)   \
        ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
 
Index: gcc/config/m32r/m32r.h
===================================================================
--- gcc/config/m32r/m32r.h      (revision 165326)
+++ gcc/config/m32r/m32r.h      (working copy)
@@ -653,12 +653,6 @@ 
 
 #define REGNO_OK_FOR_INDEX_P(REGNO) REGNO_OK_FOR_BASE_P(REGNO)
 
-/* Given an rtx X being reloaded into a reg required to be
-   in class CLASS, return the class of reg to actually use.
-   In general this is just CLASS; but on some machines
-   in some cases it is preferable to use a more restrictive class.  */
-#define PREFERRED_RELOAD_CLASS(X,CLASS) (CLASS)
-
 /* Return the maximum number of consecutive registers
    needed to represent mode MODE in a register of class CLASS.  */
 #define CLASS_MAX_NREGS(CLASS, MODE) \
Index: gcc/config/rx/rx.h
===================================================================
--- gcc/config/rx/rx.h  (revision 165326)
+++ gcc/config/rx/rx.h  (working copy)
@@ -270,8 +270,6 @@ 
 {  7,  10,  11,  12,  13,  14,  4,  3,  2,  1, 9, 8, 6, 5, 15  \
 }
 
-#define PREFERRED_RELOAD_CLASS(X,CLASS)                CLASS
-
 #define REGNO_IN_RANGE(REGNO, MIN, MAX)                \
   (IN_RANGE ((REGNO), (MIN), (MAX))            \
    || (reg_renumber != NULL                    \
Index: gcc/config/avr/avr-protos.h
===================================================================
--- gcc/config/avr/avr-protos.h	(revision 165326)
+++ gcc/config/avr/avr-protos.h	(working copy)
@@ -83,7 +83,6 @@ 
 extern void avr_output_addr_vec_elt (FILE *stream, int value);
 extern const char *avr_out_sbxx_branch (rtx insn, rtx operands[]);
 
-extern enum reg_class preferred_reload_class (rtx x, enum reg_class rclass);
 extern int extra_constraint_Q (rtx x);
 extern int adjust_insn_length (rtx insn, int len);
 extern rtx avr_libcall_value (enum machine_mode mode);
Index: gcc/config/avr/avr.c
===================================================================
--- gcc/config/avr/avr.c        (revision 165326)
+++ gcc/config/avr/avr.c        (working copy)
@@ -5840,16 +5840,6 @@ 
   return gen_rtx_REG (BLKmode, RET_REGISTER + 2 - offs);
 }
 
-/* Places additional restrictions on the register class to
-   use when it is necessary to copy value X into a register
-   in class CLASS.  */
-
-enum reg_class
-preferred_reload_class (rtx x ATTRIBUTE_UNUSED, enum reg_class rclass)
-{
-  return rclass;
-}
-
 int
 test_hard_reg_class (enum reg_class rclass, rtx x)
 {
Index: gcc/config/avr/avr.h
===================================================================
--- gcc/config/avr/avr.h        (revision 165326)
+++ gcc/config/avr/avr.h        (working copy)
@@ -329,8 +329,6 @@ 
 
 #define REGNO_OK_FOR_INDEX_P(NUM) 0
 
-#define PREFERRED_RELOAD_CLASS(X, CLASS) preferred_reload_class(X,CLASS)
-
 #define TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P hook_bool_mode_true
 
 #define CLASS_MAX_NREGS(CLASS, MODE)   class_max_nregs (CLASS, MODE)
Index: gcc/config/crx/crx.h
===================================================================
--- gcc/config/crx/crx.h        (revision 165326)
+++ gcc/config/crx/crx.h        (working copy)
@@ -229,8 +229,6 @@ 
 
 #define REGNO_OK_FOR_INDEX_P(REGNO)       REGNO_OK_FOR_BASE_P(REGNO)
 
-#define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS
-
 #define SECONDARY_RELOAD_CLASS(CLASS, MODE, X) \
   crx_secondary_reload_class (CLASS, MODE, X)
 
Index: gcc/config/fr30/fr30.h
===================================================================
--- gcc/config/fr30/fr30.h      (revision 165326)
+++ gcc/config/fr30/fr30.h      (working copy)
@@ -384,24 +384,6 @@ 
    will reload one or both registers only if neither labeling works.  */
 #define REGNO_OK_FOR_INDEX_P(NUM) 1
 
-/* A C expression that places additional restrictions on the register class to
-   use when it is necessary to copy value X into a register in class CLASS.
-   The value is a register class; perhaps CLASS, or perhaps another, smaller
-   class.  On many machines, the following definition is safe:
-
-        #define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS
-
-   Sometimes returning a more restrictive class makes better code.  For
-   example, on the 68000, when X is an integer constant that is in range for a
-   `moveq' instruction, the value of this macro is always `DATA_REGS' as long
-   as CLASS includes the data registers.  Requiring a data register guarantees
-   that a `moveq' will be used.
-
-   If X is a `const_double', by returning `NO_REGS' you can force X into a
-   memory constant.  This is useful on certain machines where immediate
-   floating values cannot be loaded into certain kinds of registers.  */
-#define PREFERRED_RELOAD_CLASS(X, CLASS) CLASS
-
 /* A C expression for the maximum number of consecutive registers of
    class CLASS needed to hold a value of mode MODE.
 
Index: gcc/config/lm32/lm32.h
===================================================================
--- gcc/config/lm32/lm32.h      (revision 165326)
+++ gcc/config/lm32/lm32.h      (working copy)
@@ -227,8 +227,6 @@ 
 
 #define REGNO_OK_FOR_INDEX_P(REGNO) 0
 
-#define PREFERRED_RELOAD_CLASS(X,CLASS) (CLASS)
-
 /*----------------------------------------*/
 /* Stack Layout and Calling Conventions.  */
 /*----------------------------------------*/
Index: gcc/config/moxie/moxie.h
===================================================================
--- gcc/config/moxie/moxie.h    (revision 165326)
+++ gcc/config/moxie/moxie.h    (working copy)
@@ -201,11 +201,6 @@ 
 #define CLASS_MAX_NREGS(CLASS, MODE) \
   ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
 
-/* A C expression that places additional restrictions on the register
-   class to use when it is necessary to copy value X into a register
-   in class CLASS.  */
-#define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS
-
 /* The Overall Framework of an Assembler File */
 
 #undef  ASM_SPEC
Index: gcc/config/picochip/picochip.h
===================================================================
--- gcc/config/picochip/picochip.h      (revision 165326)
+++ gcc/config/picochip/picochip.h      (working copy)
@@ -355,8 +355,6 @@ 
 
 #define REGNO_OK_FOR_INDEX_P(REGNO) 0
 
-#define PREFERRED_RELOAD_CLASS(X, CLASS) CLASS
-
 #define CLASS_MAX_NREGS(CLASS, MODE) picochip_class_max_nregs(CLASS, MODE)
 
 
Index: gcc/config/arc/arc.h
===================================================================
--- gcc/config/arc/arc.h        (revision 165326)
+++ gcc/config/arc/arc.h        (working copy)
@@ -376,13 +376,6 @@ 
 #define REGNO_OK_FOR_INDEX_P(REGNO) \
 ((REGNO) < 32 || (unsigned) reg_renumber[REGNO] < 32)
 
-/* Given an rtx X being reloaded into a reg required to be
-   in class CLASS, return the class of reg to actually use.
-   In general this is just CLASS; but on some machines
-   in some cases it is preferable to use a more restrictive class.  */
-#define PREFERRED_RELOAD_CLASS(X,CLASS) \
-(CLASS)
-
 /* Return the maximum number of consecutive registers
    needed to represent mode MODE in a register of class CLASS.  */
 #define CLASS_MAX_NREGS(CLASS, MODE) \
Index: gcc/config/pa/pa.c
===================================================================
--- gcc/config/pa/pa.c  (revision 165326)
+++ gcc/config/pa/pa.c  (working copy)
@@ -1665,7 +1665,7 @@ 
 
      Use scratch_reg to hold the address of the memory location.
 
-     The proper fix is to change PREFERRED_RELOAD_CLASS to return
+     The proper fix is to change TARGET_PREFERRED_RELOAD_CLASS to return
      NO_REGS when presented with a const_int and a register class
      containing only FP registers.  Doing so unfortunately creates
      more problems than it solves.   Fix this for 2.5.  */
Index: gcc/config/pa/pa.h
===================================================================
--- gcc/config/pa/pa.h  (revision 165326)
+++ gcc/config/pa/pa.h  (working copy)
@@ -491,12 +491,6 @@ 
 /* True if register is floating-point.  */
 #define FP_REGNO_P(N) ((N) >= FP_REG_FIRST && (N) <= FP_REG_LAST)
 
-/* Given an rtx X being reloaded into a reg required to be
-   in class CLASS, return the class of reg to actually use.
-   In general this is just CLASS; but on some machines
-   in some cases it is preferable to use a more restrictive class.  */
-#define PREFERRED_RELOAD_CLASS(X,CLASS) (CLASS)
-
 #define MAYBE_FP_REG_CLASS_P(CLASS) \
   reg_classes_intersect_p ((CLASS), FP_REGS)
 
Index: gcc/config/vax/vax.h
===================================================================
--- gcc/config/vax/vax.h        (revision 165326)
+++ gcc/config/vax/vax.h        (working copy)
@@ -258,13 +258,6 @@ 
 #define INDEX_REG_CLASS ALL_REGS
 #define BASE_REG_CLASS ALL_REGS
 
-/* Given an rtx X being reloaded into a reg required to be
-   in class CLASS, return the class of reg to actually use.
-   In general this is just CLASS; but on some machines
-   in some cases it is preferable to use a more restrictive class.  */
-
-#define PREFERRED_RELOAD_CLASS(X,CLASS)  (CLASS)
-
 /* Return the maximum number of consecutive registers
    needed to represent mode MODE in a register of class CLASS.  */
 /* On the VAX, this is always the size of MODE in words,
Index: gcc/config/h8300/h8300.h
===================================================================
--- gcc/config/h8300/h8300.h    (revision 165326)
+++ gcc/config/h8300/h8300.h    (working copy)
@@ -455,13 +455,6 @@ 
   ((C) == 'G' ? (VALUE) == CONST0_RTX (SFmode)	\
    : 0)
 
-/* Given an rtx X being reloaded into a reg required to be
-   in class CLASS, return the class of reg to actually use.
-   In general this is just CLASS; but on some machines
-   in some cases it is preferable to use a more restrictive class.  */
-
-#define PREFERRED_RELOAD_CLASS(X, CLASS)  (CLASS)
-
 /* Return the maximum number of consecutive registers
    needed to represent mode MODE in a register of class CLASS.  */
 
Index: gcc/config/v850/v850.h
===================================================================
--- gcc/config/v850/v850.h      (revision 165326)
+++ gcc/config/v850/v850.h      (working copy)
@@ -376,13 +376,6 @@ 
 
 #define REGNO_OK_FOR_INDEX_P(regno) 0
 
-/* Given an rtx X being reloaded into a reg required to be
-   in class CLASS, return the class of reg to actually use.
-   In general this is just CLASS; but on some machines
-   in some cases it is preferable to use a more restrictive class.  */
-
-#define PREFERRED_RELOAD_CLASS(X,CLASS)  (CLASS)
-
 /* Return the maximum number of consecutive registers
    needed to represent mode MODE in a register of class CLASS.  */