This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
optimize_size for PDP11 target
- To: egcs-patches at cygnus dot com
- Subject: optimize_size for PDP11 target
- From: "Joseph S. Myers" <jsm28 at cam dot ac dot uk>
- Date: Thu, 3 Dec 1998 10:05:00 +0000 (GMT)
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