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]

optimize_size for PDP11 target


This patch makes the PDP11 target use optimize_size to control space
optimizations rather than using target-specific options -mspace and
-mtime.

1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>

	* pdp11.h: Use optimize_size for space optimizations.
	* pdp11.c: Likewise.
	* pdp11.md: Likewise.

--- pdp11.h.orig	Mon Nov 30 19:40:54 1998
+++ pdp11.h	Thu Dec  3 09:39:15 1998
@@ -89,9 +89,6 @@
 /* this is just to play around and check what code gcc generates */ \
     { "branch-expensive", 256}, \
     { "branch-cheap", -256},	\
-/* optimize for space instead of time - just in a couple of places */ \
-    { "space", 512 },		\
-    { "time", -512 },		\
 /* split instruction and data memory? */ \
     { "split", 1024 },		\
     { "no-split", -1024 },	\
@@ -124,9 +121,6 @@
 #define TARGET_BRANCH_EXPENSIVE	(target_flags & 256)
 #define TARGET_BRANCH_CHEAP 	(!TARGET_BRANCH_EXPENSIVE)
 
-#define TARGET_SPACE 		(target_flags & 512)
-#define TARGET_TIME		(! TARGET_SPACE)
-
 #define TARGET_SPLIT		(target_flags & 1024)
 #define TARGET_NOSPLIT		(! TARGET_SPLIT)
 
@@ -1315,31 +1309,31 @@
    there is something wrong in MULT because MULT is not 
    as cheap as total = 2 even if we can shift!
 
-   if TARGET_SPACE make mult etc cheap, but not 1, so when 
+   if optimizing for size make mult etc cheap, but not 1, so when 
    in doubt the faster insn is chosen.
 */
 
 #define RTX_COSTS(X,CODE,OUTER_CODE) \
   case MULT:								\
-    if (TARGET_SPACE)							\
+    if (optimize_size)							\
       total = COSTS_N_INSNS(2);						\
     else								\
       total = COSTS_N_INSNS (11);					\
     break;								\
   case DIV:								\
-    if (TARGET_SPACE)							\
+    if (optimize_size)							\
       total = COSTS_N_INSNS(2);						\
     else								\
       total = COSTS_N_INSNS (25);					\
     break;								\
   case MOD:								\
-    if (TARGET_SPACE)							\
+    if (optimize_size)							\
       total = COSTS_N_INSNS(2);						\
     else								\
       total = COSTS_N_INSNS (26);					\
     break;								\
   case ABS:								\
-    /* equivalent to length, so same for TARGET_SPACE */		\
+    /* equivalent to length, so same for optimize_size */		\
     total = COSTS_N_INSNS (3);						\
     break;								\
   case ZERO_EXTEND:							\
@@ -1358,7 +1352,7 @@
   case ASHIFT:								\
   case LSHIFTRT:							\
   case ASHIFTRT:							\
-    if (TARGET_SPACE)							\
+    if (optimize_size)							\
       total = COSTS_N_INSNS(1);						\
     else if (GET_MODE(X) ==  QImode)					\
     {									\
--- pdp11.c.orig	Wed Apr  1 05:20:02 1998
+++ pdp11.c	Thu Dec  3 09:36:29 1998
@@ -1115,7 +1115,7 @@
     char buf[200];
     
     if (GET_CODE(operands[2]) == CONST_INT
-	&& TARGET_TIME)
+	&& ! optimize_size)
     {
 	if (INTVAL(operands[2]) < 16
 	    && INTVAL(operands[3]) == 1)
@@ -1257,7 +1257,7 @@
 	     bgt x
 	*/
 
-	if (TARGET_SPACE)
+	if (optimize_size)
 	    goto generate_compact_code;
 	
 	output_asm_insn("asr %4", operands);
@@ -1308,7 +1308,7 @@
 	*/
 
 
-	if (TARGET_SPACE)
+	if (optimize_size)
 	    goto generate_compact_code;
 	
 	output_asm_insn("asr %4", operands);
--- pdp11.md.orig	Wed Dec  2 23:00:04 1998
+++ pdp11.md	Thu Dec  3 09:35:24 1998
@@ -1432,7 +1432,7 @@
   [(set (match_operand:HI 0 "general_operand" "=r")
 	(ashift:HI (match_operand:HI 1 "general_operand" "0")
 		   (match_operand:HI 2 "expand_shift_operand" "O")))]
-  "TARGET_TIME"
+  "! optimize_size"
   "*
 {
   register int i;


-- 
Joseph S. Myers
jsm28@cam.ac.uk



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