This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Change the default of TARGET_STRUCT_VALUE_RTX.


Hi,

Attached is a patch to change the default of TARGET_STRUCT_VALUE_RTX.

Currently, the default of TARGET_STRUCT_VALUE_RTX is to call abort(),
which is not very useful, and indeed no port uses the default.

The patch creates a resonable default value for
TARGET_STRUCT_VALUE_RTX, which is to put the pointer to a structure as
the first invisible argument.

Bootstrapped on i686-pc-linux-gnu.  OK to apply?

Kazu Hirata

2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>

	* target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
	hook_rtx_tree_int_null.
	* targhooks.c (default_struct_value_rtx): Remove.
	* targhooks.h: Remove the prototype for
	default_struct_value_rtx.
	* config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
	config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
	config/ip2k/ip2k.c, config/iq2000/iq2000.c,
	config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
	config/mn10300/mn10300.c, config/pdp11/pdp11.c,
	config/rs6000/rs6000.c, config/s390/s390.c,
	config/stormy16/stormy16.c, config/v850/v850.c,
	config/vax/vax.c, config/xtensa/xtensa.c
	(TARGET_STRUCT_VALUE_RTX): Remove.

Index: target-def.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/target-def.h,v
retrieving revision 1.67
diff -u -r1.67 target-def.h
--- target-def.h	8 Feb 2004 02:13:28 -0000	1.67
+++ target-def.h	8 Feb 2004 15:28:47 -0000
@@ -329,7 +329,7 @@
 #define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_false
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_false
 
-#define TARGET_STRUCT_VALUE_RTX default_struct_value_rtx
+#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #define TARGET_RETURN_IN_MEMORY default_return_in_memory
 #define TARGET_RETURN_IN_MSB hook_bool_tree_false
 
Index: targhooks.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/targhooks.c,v
retrieving revision 2.17
diff -u -r2.17 targhooks.c
--- targhooks.c	8 Feb 2004 02:13:29 -0000	2.17
+++ targhooks.c	8 Feb 2004 15:28:47 -0000
@@ -78,13 +78,6 @@
   return VOIDmode;
 }
 
-rtx
-default_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED,
-			  int incoming ATTRIBUTE_UNUSED)
-{
-  abort ();
-}
-
 bool
 default_return_in_memory (tree type,
 			  tree fntype ATTRIBUTE_UNUSED)
Index: targhooks.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/targhooks.h,v
retrieving revision 2.9
diff -u -r2.9 targhooks.h
--- targhooks.h	8 Feb 2004 02:13:29 -0000	2.9
+++ targhooks.h	8 Feb 2004 15:28:47 -0000
@@ -23,7 +23,6 @@
 extern enum machine_mode default_cc_modes_compatible (enum machine_mode,
 						      enum machine_mode);
 
-extern rtx default_struct_value_rtx (tree, int);
 extern bool default_return_in_memory (tree, tree);
 
 extern rtx default_expand_builtin_saveregs (void);
Index: config/alpha/alpha.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/alpha/alpha.c,v
retrieving revision 1.351
diff -u -r1.351 alpha.c
--- config/alpha/alpha.c	4 Feb 2004 20:26:58 -0000	1.351
+++ config/alpha/alpha.c	8 Feb 2004 15:28:52 -0000
@@ -10221,8 +10221,6 @@
 #define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_false
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY alpha_return_in_memory
 #undef TARGET_SETUP_INCOMING_VARARGS
Index: config/arc/arc.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/arc/arc.c,v
retrieving revision 1.52
diff -u -r1.52 arc.c
--- config/arc/arc.c	6 Feb 2004 05:55:03 -0000	1.52
+++ config/arc/arc.c	8 Feb 2004 15:28:53 -0000
@@ -136,8 +136,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY arc_return_in_memory
 
Index: config/avr/avr.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/avr/avr.c,v
retrieving revision 1.115
diff -u -r1.115 avr.c
--- config/avr/avr.c	6 Feb 2004 05:55:05 -0000	1.115
+++ config/avr/avr.c	8 Feb 2004 15:28:55 -0000
@@ -244,8 +244,6 @@
 #undef TARGET_MACHINE_DEPENDENT_REORG
 #define TARGET_MACHINE_DEPENDENT_REORG avr_reorg
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY avr_return_in_memory
 
Index: config/fr30/fr30.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/fr30/fr30.c,v
retrieving revision 1.39
diff -u -r1.39 fr30.c
--- config/fr30/fr30.c	6 Feb 2004 05:48:34 -0000	1.39
+++ config/fr30/fr30.c	8 Feb 2004 15:28:55 -0000
@@ -154,9 +154,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
-
 #undef TARGET_SETUP_INCOMING_VARARGS
 #define TARGET_SETUP_INCOMING_VARARGS fr30_setup_incoming_varargs
 
Index: config/h8300/h8300.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/h8300/h8300.c,v
retrieving revision 1.271
diff -u -r1.271 h8300.c
--- config/h8300/h8300.c	4 Feb 2004 20:00:55 -0000	1.271
+++ config/h8300/h8300.c	8 Feb 2004 15:28:57 -0000
@@ -4680,8 +4680,6 @@
 #undef TARGET_INIT_LIBFUNCS
 #define TARGET_INIT_LIBFUNCS h8300_init_libfuncs
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY h8300_return_in_memory
 
Index: config/i386/i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.645
diff -u -r1.645 i386.c
--- config/i386/i386.c	4 Feb 2004 20:27:02 -0000	1.645
+++ config/i386/i386.c	8 Feb 2004 15:29:03 -0000
@@ -1028,9 +1028,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
-
 #undef TARGET_SETUP_INCOMING_VARARGS
 #define TARGET_SETUP_INCOMING_VARARGS ix86_setup_incoming_varargs
 
Index: config/ip2k/ip2k.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ip2k/ip2k.c,v
retrieving revision 1.34
diff -u -r1.34 ip2k.c
--- config/ip2k/ip2k.c	6 Feb 2004 05:55:06 -0000	1.34
+++ config/ip2k/ip2k.c	8 Feb 2004 15:29:05 -0000
@@ -115,8 +115,6 @@
 #undef TARGET_INIT_LIBFUNCS
 #define TARGET_INIT_LIBFUNCS ip2k_init_libfuncs
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY ip2k_return_in_memory
 
Index: config/iq2000/iq2000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/iq2000/iq2000.c,v
retrieving revision 1.13
diff -u -r1.13 iq2000.c
--- config/iq2000/iq2000.c	6 Feb 2004 06:18:30 -0000	1.13
+++ config/iq2000/iq2000.c	8 Feb 2004 15:29:07 -0000
@@ -192,8 +192,6 @@
 #undef  TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES	hook_bool_tree_true
 
-#undef  TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX		hook_rtx_tree_int_null
 #undef  TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY		iq2000_return_in_memory
 
Index: config/m32r/m32r.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m32r/m32r.c,v
retrieving revision 1.87
diff -u -r1.87 m32r.c
--- config/m32r/m32r.c	4 Feb 2004 20:27:08 -0000	1.87
+++ config/m32r/m32r.c	8 Feb 2004 15:29:08 -0000
@@ -150,8 +150,6 @@
 #undef  TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef  TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef  TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY m32r_return_in_memory
 
Index: config/mcore/mcore.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mcore/mcore.c,v
retrieving revision 1.62
diff -u -r1.62 mcore.c
--- config/mcore/mcore.c	6 Feb 2004 05:55:07 -0000	1.62
+++ config/mcore/mcore.c	8 Feb 2004 15:29:10 -0000
@@ -190,8 +190,6 @@
 #undef  TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES	hook_bool_tree_true
 
-#undef  TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX		hook_rtx_tree_int_null
 #undef  TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY		mcore_return_in_memory
 
Index: config/mips/mips.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mips/mips.c,v
retrieving revision 1.377
diff -u -r1.377 mips.c
--- config/mips/mips.c	4 Feb 2004 20:01:00 -0000	1.377
+++ config/mips/mips.c	8 Feb 2004 15:29:14 -0000
@@ -807,8 +807,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY mips_return_in_memory
 #undef TARGET_RETURN_IN_MSB
Index: config/mn10300/mn10300.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/mn10300/mn10300.c,v
retrieving revision 1.65
diff -u -r1.65 mn10300.c
--- config/mn10300/mn10300.c	3 Feb 2004 06:43:52 -0000	1.65
+++ config/mn10300/mn10300.c	8 Feb 2004 15:29:15 -0000
@@ -93,8 +93,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY mn10300_return_in_memory
 
Index: config/pdp11/pdp11.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/pdp11/pdp11.c,v
retrieving revision 1.38
diff -u -r1.38 pdp11.c
--- config/pdp11/pdp11.c	4 Feb 2004 20:27:09 -0000	1.38
+++ config/pdp11/pdp11.c	8 Feb 2004 15:29:16 -0000
@@ -169,8 +169,6 @@
 #undef TARGET_RTX_COSTS
 #define TARGET_RTX_COSTS pdp11_rtx_costs
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY pdp11_return_in_memory
 
Index: config/rs6000/rs6000.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/rs6000.c,v
retrieving revision 1.593
diff -u -r1.593 rs6000.c
--- config/rs6000/rs6000.c	7 Feb 2004 03:06:46 -0000	1.593
+++ config/rs6000/rs6000.c	8 Feb 2004 15:29:22 -0000
@@ -595,10 +595,6 @@
 #undef TARGET_PROMOTE_FUNCTION_RETURN
 #define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true
 
-/* Structure return values are passed as an extra parameter.  */
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
-
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY rs6000_return_in_memory
 
Index: config/s390/s390.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/s390/s390.c,v
retrieving revision 1.133
diff -u -r1.133 s390.c
--- config/s390/s390.c	4 Feb 2004 23:46:29 -0000	1.133
+++ config/s390/s390.c	8 Feb 2004 15:29:25 -0000
@@ -154,9 +154,6 @@
 #undef TARGET_PROMOTE_FUNCTION_RETURN
 #define TARGET_PROMOTE_FUNCTION_RETURN hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
-
 struct gcc_target targetm = TARGET_INITIALIZER;
 
 extern int reload_completed;
Index: config/stormy16/stormy16.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/stormy16/stormy16.c,v
retrieving revision 1.58
diff -u -r1.58 stormy16.c
--- config/stormy16/stormy16.c	6 Feb 2004 05:55:07 -0000	1.58
+++ config/stormy16/stormy16.c	8 Feb 2004 15:29:26 -0000
@@ -2204,8 +2204,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY xstormy16_return_in_memory
 
Index: config/v850/v850.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/v850/v850.c,v
retrieving revision 1.85
diff -u -r1.85 v850.c
--- config/v850/v850.c	1 Feb 2004 21:21:44 -0000	1.85
+++ config/v850/v850.c	8 Feb 2004 15:29:27 -0000
@@ -122,8 +122,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY v850_return_in_memory
 
Index: config/vax/vax.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/vax/vax.c,v
retrieving revision 1.55
diff -u -r1.55 vax.c
--- config/vax/vax.c	4 Feb 2004 20:27:12 -0000	1.55
+++ config/vax/vax.c	8 Feb 2004 15:29:28 -0000
@@ -82,9 +82,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX vax_struct_value_rtx
-
 struct gcc_target targetm = TARGET_INITIALIZER;
 
 /* Set global variables as needed for the options enabled.  */
Index: config/xtensa/xtensa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/xtensa/xtensa.c,v
retrieving revision 1.49
diff -u -r1.49 xtensa.c
--- config/xtensa/xtensa.c	2 Feb 2004 06:31:08 -0000	1.49
+++ config/xtensa/xtensa.c	8 Feb 2004 15:29:29 -0000
@@ -246,8 +246,6 @@
 #undef TARGET_PROMOTE_PROTOTYPES
 #define TARGET_PROMOTE_PROTOTYPES hook_bool_tree_true
 
-#undef TARGET_STRUCT_VALUE_RTX
-#define TARGET_STRUCT_VALUE_RTX hook_rtx_tree_int_null
 #undef TARGET_RETURN_IN_MEMORY
 #define TARGET_RETURN_IN_MEMORY xtensa_return_in_memory
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]