From: Stephane Carrez Date: Fri, 28 Jun 2002 20:49:36 +0000 (+0200) Subject: m68hc11.h (OPTIMIZATION_OPTIONS): Define. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4caff360ac1a8b3c4e7e0433d982e85613e6bac1;p=platform%2Fupstream%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f38b0f..1f8fbd5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -7,6 +7,14 @@ 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. (m68hc11_make_autoinc_notes): New function. (m68hc11_split_move): Be very cautious when spliting a move with diff --git a/gcc/config/m68hc11/m68hc11-protos.h b/gcc/config/m68hc11/m68hc11-protos.h index ee5bd6a..20bc83e 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 4fb054d3..be7b24b 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 42950e7..467862f 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 {