From 082a099ce4d0c306c9af311189e9ae1f8c4cba68 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 21 May 2004 01:03:20 +0000 Subject: [PATCH] system.h: Poison NO_RECURSIVE_FUNCTION_CSE. * system.h: Poison NO_RECURSIVE_FUNCTION_CSE. * calls.c (prepare_call_address): Don't test NO_RECURSIVE_FUNCTION_CSE. * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define. * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment. * doc/tm.texi (Costs): Remove documentation for NO_RECURSIVE_FUNCTION_CSE. From-SVN: r82084 --- gcc/calls.c | 5 +---- gcc/config/arc/arc.h | 6 ------ gcc/config/arm/arm.h | 3 --- gcc/config/avr/avr.h | 2 -- gcc/config/frv/frv.h | 4 ---- gcc/config/i386/i386.h | 6 ------ gcc/config/ip2k/ip2k.h | 1 - gcc/config/iq2000/iq2000.h | 2 -- gcc/config/m32r/m32r.h | 5 ----- gcc/config/m68k/m68k.h | 3 --- gcc/config/mcore/mcore.h | 3 --- gcc/config/mips/mips.h | 5 ----- gcc/config/sh/sh.h | 3 --- gcc/config/stormy16/stormy16.h | 2 -- gcc/config/xtensa/xtensa.h | 4 ---- gcc/doc/tm.texi | 6 ------ gcc/system.h | 3 ++- 17 files changed, 3 insertions(+), 60 deletions(-) diff --git a/gcc/calls.c b/gcc/calls.c index 35021ea137f..419f45881a1 100644 --- a/gcc/calls.c +++ b/gcc/calls.c @@ -297,10 +297,7 @@ prepare_call_address (rtx funexp, rtx static_chain_value, { #ifndef NO_FUNCTION_CSE if (optimize && ! flag_no_function_cse) -#ifdef NO_RECURSIVE_FUNCTION_CSE - if (fndecl != current_function_decl) -#endif - funexp = force_reg (Pmode, funexp); + funexp = force_reg (Pmode, funexp); #endif } diff --git a/gcc/config/arc/arc.h b/gcc/config/arc/arc.h index 18b8f6f9c29..f25e5d369d3 100644 --- a/gcc/config/arc/arc.h +++ b/gcc/config/arc/arc.h @@ -951,12 +951,6 @@ arc_select_cc_mode (OP, X, Y) function address than to call an address kept in a register. */ /* On the ARC, calling through registers is slow. */ #define NO_FUNCTION_CSE - -/* Define this macro if it is as good or better for a function to call - itself with an explicit address than to call an address kept in a - register. */ -/* On the ARC, calling through registers is slow. */ -#define NO_RECURSIVE_FUNCTION_CSE /* Section selection. */ /* WARNING: These section names also appear in dwarfout.c. */ diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 8241b2cb95e..9981ff03f56 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -2191,9 +2191,6 @@ do { \ #define DEFAULT_SIGNED_CHAR 0 #endif -/* Don't cse the address of the function being compiled. */ -#define NO_RECURSIVE_FUNCTION_CSE 1 - /* Max number of bytes we can move from memory to memory in one reasonably fast instruction. */ #define MOVE_MAX 4 diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index a78b42be449..6361fbd9034 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -509,8 +509,6 @@ do { \ #define NO_FUNCTION_CSE -#define NO_RECURSIVE_FUNCTION_CSE - #define TEXT_SECTION_ASM_OP "\t.text" #define DATA_SECTION_ASM_OP "\t.data" diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h index 9c62e36ed40..2b53bb8cf09 100644 --- a/gcc/config/frv/frv.h +++ b/gcc/config/frv/frv.h @@ -2536,10 +2536,6 @@ __asm__("\n" \ address than to call an address kept in a register. */ #define NO_FUNCTION_CSE -/* Define this macro if it is as good or better for a function to call itself - with an explicit address than to call an address kept in a register. */ -#define NO_RECURSIVE_FUNCTION_CSE - /* Dividing the output into sections. */ diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index 846b6e9dbae..2cc64d182a7 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -2646,12 +2646,6 @@ do { \ faster than one with a register address. */ #define NO_FUNCTION_CSE - -/* Define this macro if it is as good or better for a function to call - itself with an explicit address than to call an address kept in a - register. */ - -#define NO_RECURSIVE_FUNCTION_CSE /* Given a comparison code (EQ, NE, etc.) and the first operand of a COMPARE, return the mode to be used for the comparison. diff --git a/gcc/config/ip2k/ip2k.h b/gcc/config/ip2k/ip2k.h index a069bf21d18..d78ae7779b1 100644 --- a/gcc/config/ip2k/ip2k.h +++ b/gcc/config/ip2k/ip2k.h @@ -598,7 +598,6 @@ do { \ #define SLOW_BYTE_ACCESS 0 #define NO_FUNCTION_CSE -#define NO_RECURSIVE_FUNCTION_CSE #define TEXT_SECTION_ASM_OP ".text" #define DATA_SECTION_ASM_OP ".data" diff --git a/gcc/config/iq2000/iq2000.h b/gcc/config/iq2000/iq2000.h index 2574dbc8ebb..086db3ba834 100644 --- a/gcc/config/iq2000/iq2000.h +++ b/gcc/config/iq2000/iq2000.h @@ -699,8 +699,6 @@ typedef struct iq2000_args #define NO_FUNCTION_CSE 1 -#define NO_RECURSIVE_FUNCTION_CSE 1 - #define ADJUST_COST(INSN,LINK,DEP_INSN,COST) \ if (REG_NOTE_KIND (LINK) != 0) \ (COST) = 0; /* Anti or output dependence. */ diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h index add59b3c036..82b265b1065 100644 --- a/gcc/config/m32r/m32r.h +++ b/gcc/config/m32r/m32r.h @@ -1459,11 +1459,6 @@ L2: .word STATIC /* Define this macro if it is as good or better to call a constant function address than to call an address kept in a register. */ #define NO_FUNCTION_CSE - -/* Define this macro if it is as good or better for a function to call - itself with an explicit address than to call an address kept in a - register. */ -#define NO_RECURSIVE_FUNCTION_CSE /* Section selection. */ diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h index 83ff83e3b2e..522f0dc5e4f 100644 --- a/gcc/config/m68k/m68k.h +++ b/gcc/config/m68k/m68k.h @@ -1364,9 +1364,6 @@ __transfer_from_trampoline () \ /* Define this as 1 if `char' should by default be signed; else as 0. */ #define DEFAULT_SIGNED_CHAR 1 -/* Don't cse the address of the function being compiled. */ -#define NO_RECURSIVE_FUNCTION_CSE - /* Max number of bytes we can move from memory to memory in one reasonably fast instruction. */ #define MOVE_MAX 4 diff --git a/gcc/config/mcore/mcore.h b/gcc/config/mcore/mcore.h index 95805d17f4e..ccae6d945dd 100644 --- a/gcc/config/mcore/mcore.h +++ b/gcc/config/mcore/mcore.h @@ -909,9 +909,6 @@ extern const enum reg_class reg_class_from_letter[]; /* The type of size_t unsigned int. */ #define SIZE_TYPE "unsigned int" -/* Don't cse the address of the function being compiled. */ -#define NO_RECURSIVE_FUNCTION_CSE 1 - /* Max number of bytes we can move from memory to memory in one reasonably fast instruction. */ #define MOVE_MAX 4 diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index d426bc4eddc..e22e1699f75 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -1743,11 +1743,6 @@ extern char mips_hard_regno_mode_ok[][FIRST_PSEUDO_REGISTER]; function address than to call an address kept in a register. */ #define NO_FUNCTION_CSE 1 -/* Define this macro if it is as good or better for a function to - call itself with an explicit address than to call an address - kept in a register. */ -#define NO_RECURSIVE_FUNCTION_CSE 1 - /* The ABI-defined global pointer. Sometimes we use a different register in leaf functions: see PIC_OFFSET_TABLE_REGNUM. */ #define GLOBAL_POINTER_REGNUM (GP_REG_FIRST + 28) diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 32cbb2c2438..fb8a16522cb 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -2645,9 +2645,6 @@ struct sh_args { #define SH_ELF_WCHAR_TYPE "long int" -/* Don't cse the address of the function being compiled. */ -/*#define NO_RECURSIVE_FUNCTION_CSE 1*/ - /* Max number of bytes we can move from memory to memory in one reasonably fast instruction. */ #define MOVE_MAX (TARGET_SHMEDIA ? 8 : 4) diff --git a/gcc/config/stormy16/stormy16.h b/gcc/config/stormy16/stormy16.h index be69dcb3304..051914b31d2 100644 --- a/gcc/config/stormy16/stormy16.h +++ b/gcc/config/stormy16/stormy16.h @@ -618,8 +618,6 @@ do { \ #define NO_FUNCTION_CSE -#define NO_RECURSIVE_FUNCTION_CSE - /* Dividing the output into sections. */ diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h index d04560b8c7c..9eb017507a7 100644 --- a/gcc/config/xtensa/xtensa.h +++ b/gcc/config/xtensa/xtensa.h @@ -416,10 +416,6 @@ extern char xtensa_hard_regno_mode_ok[][FIRST_PSEUDO_REGISTER]; call an address kept in a register. */ #define NO_FUNCTION_CSE 1 -/* It is as good or better for a function to call itself with an - explicit address than to call an address kept in a register. */ -#define NO_RECURSIVE_FUNCTION_CSE 1 - /* Xtensa processors have "register windows". GCC does not currently take advantage of the possibility for variable-sized windows; instead, we use a fixed window size of 8. */ diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 67f4b7608a4..aee7ba87b7d 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -5429,12 +5429,6 @@ Define this macro if it is as good or better to call a constant function address than to call an address kept in a register. @end defmac -@defmac NO_RECURSIVE_FUNCTION_CSE -Define this macro if it is as good or better for a function to call -itself with an explicit address than to call an address kept in a -register. -@end defmac - @defmac RANGE_TEST_NON_SHORT_CIRCUIT Define this macro if a non-short-circuit operation produced by @samp{fold_range_test ()} is optimal. This macro defaults to true if diff --git a/gcc/system.h b/gcc/system.h index 56aeb25fa0b..b3d9974599d 100644 --- a/gcc/system.h +++ b/gcc/system.h @@ -642,7 +642,8 @@ typedef char _Bool; FINAL_REG_PARM_STACK_SPACE MAYBE_REG_PARM_STACK_SPACE \ TRADITIONAL_PIPELINE_INTERFACE DFA_PIPELINE_INTERFACE \ DBX_OUTPUT_STANDARD_TYPES BUILTIN_SETJMP_FRAME_VALUE \ - SUNOS4_SHARED_LIBRARIES PROMOTE_FOR_CALL_ONLY + SUNOS4_SHARED_LIBRARIES PROMOTE_FOR_CALL_ONLY \ + NO_RECURSIVE_FUNCTION_CSE /* Hooks that are no longer used. */ #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ -- 2.30.2