From 4caff360ac1a8b3c4e7e0433d982e85613e6bac1 Mon Sep 17 00:00:00 2001 From: Stephane Carrez Date: Fri, 28 Jun 2002 22:49:36 +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: r55079 --- 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 0f38b0f8c5a6..1f8fbd58ec75 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -5,6 +5,14 @@ (do_define): ...here. (lex_macro_node): No longer a need to check for comments here. +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 ee5bd6a78449..20bc83e152e6 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 4fb054d348e0..be7b24b084af 100644 --- a/gcc/config/m68hc11/m68hc11.c +++ b/gcc/config/m68hc11/m68hc11.c @@ -288,6 +288,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 42950e79c3ce..467862f3655f 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