Commit 4caff360 by Stephane Carrez Committed by Stephane Carrez

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
parent 1d63a28a
...@@ -7,6 +7,14 @@ ...@@ -7,6 +7,14 @@
2002-06-28 Stephane Carrez <stcarrez@nerim.fr> 2002-06-28 Stephane Carrez <stcarrez@nerim.fr>
* 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 <stcarrez@nerim.fr>
* config/m68hc11/m68hc11.c (autoinc_mode): New function. * config/m68hc11/m68hc11.c (autoinc_mode): New function.
(m68hc11_make_autoinc_notes): New function. (m68hc11_make_autoinc_notes): New function.
(m68hc11_split_move): Be very cautious when spliting a move with (m68hc11_split_move): Be very cautious when spliting a move with
......
/* Prototypes for exported functions defined in m68hc11.c /* Prototypes for exported functions defined in m68hc11.c
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 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. This file is part of GNU CC.
...@@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */ ...@@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA. */
extern int m68hc11_override_options PARAMS((void)); extern int m68hc11_override_options PARAMS((void));
extern int m68hc11_optimization_options PARAMS((int,int));
extern void m68hc11_conditional_register_usage PARAMS((void)); extern void m68hc11_conditional_register_usage PARAMS((void));
extern int hard_regno_mode_ok PARAMS((int, enum machine_mode)); extern int hard_regno_mode_ok PARAMS((int, enum machine_mode));
......
...@@ -288,6 +288,21 @@ m68hc11_override_options () ...@@ -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 void
m68hc11_conditional_register_usage () m68hc11_conditional_register_usage ()
{ {
......
/* Definitions of target machine for GNU compiler. /* Definitions of target machine for GNU compiler.
Motorola 68HC11 and 68HC12. Motorola 68HC11 and 68HC12.
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 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. This file is part of GNU CC.
...@@ -214,6 +214,10 @@ extern const char *m68hc11_soft_reg_count; ...@@ -214,6 +214,10 @@ extern const char *m68hc11_soft_reg_count;
#define OVERRIDE_OPTIONS m68hc11_override_options (); #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. */ /* Define cost parameters for a given processor variant. */
struct processor_costs { struct processor_costs {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment