From c34ca51032a64f62aa4e97c66d1534874f54a56a Mon Sep 17 00:00:00 2001 From: Stephane Carrez Date: Fri, 28 Jun 2002 22:55:10 +0200 Subject: [PATCH] m68hc11.h (OPTIMIZATION_OPTIONS): Define. * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define. * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options): Declare. * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New, do not reorder basic blocks at the end when optimizing for size. From-SVN: r55080 --- gcc/ChangeLog | 8 ++++++++ gcc/config/m68hc11/m68hc11-protos.h | 3 ++- gcc/config/m68hc11/m68hc11.c | 15 +++++++++++++++ gcc/config/m68hc11/m68hc11.h | 6 +++++- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a086326d7ccf..d44083de90f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2002-06-28 Stephane Carrez + + * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define. + * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options): + Declare. + * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New, + do not reorder basic blocks at the end when optimizing for size. + 2002-06-28 Stephane Carrez * config/m68hc11/m68hc11.c (autoinc_mode): New function. diff --git a/gcc/config/m68hc11/m68hc11-protos.h b/gcc/config/m68hc11/m68hc11-protos.h index 7e1bee35f38f..a9b984f127a0 100644 --- a/gcc/config/m68hc11/m68hc11-protos.h +++ b/gcc/config/m68hc11/m68hc11-protos.h @@ -1,6 +1,6 @@ /* Prototypes for exported functions defined in m68hc11.c Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - Contributed by Stephane Carrez (stcarrez@worldnet.fr) + Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. @@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */ extern int m68hc11_override_options PARAMS((void)); +extern int m68hc11_optimization_options PARAMS((int,int)); extern void m68hc11_conditional_register_usage PARAMS((void)); extern int hard_regno_mode_ok PARAMS((int, enum machine_mode)); diff --git a/gcc/config/m68hc11/m68hc11.c b/gcc/config/m68hc11/m68hc11.c index 1094aa74872b..87cc7c40e38e 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -286,6 +286,21 @@ m68hc11_override_options () } +int +m68hc11_optimization_options (level, size) + int level ATTRIBUTE_UNUSED; + int size; +{ + /* When optimizing for size, do not reorder basic blocks because + it duplicates some insns for speed and this results in larder code. + This reordering can still be enabled but explicitly. */ + if (size) + { + flag_reorder_blocks = 0; + } + return 0; +} + void m68hc11_conditional_register_usage () { diff --git a/gcc/config/m68hc11/m68hc11.h b/gcc/config/m68hc11/m68hc11.h index e40e115d609a..b50c1f828d1a 100644 --- a/gcc/config/m68hc11/m68hc11.h +++ b/gcc/config/m68hc11/m68hc11.h @@ -1,7 +1,7 @@ /* Definitions of target machine for GNU compiler. Motorola 68HC11 and 68HC12. Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. - Contributed by Stephane Carrez (stcarrez@worldnet.fr) + Contributed by Stephane Carrez (stcarrez@nerim.fr) This file is part of GNU CC. @@ -214,6 +214,10 @@ extern const char *m68hc11_soft_reg_count; #define OVERRIDE_OPTIONS m68hc11_override_options (); +/* Define this to change the optimizations performed by default. */ +#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \ +m68hc11_optimization_options(LEVEL, SIZE) + /* Define cost parameters for a given processor variant. */ struct processor_costs { -- 2.47.2