From fa1a0d022c30ed29de2e07828d5f28d5a9034636 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 25 Feb 2003 12:39:20 +0100 Subject: [PATCH] Makefile.in (lcm.o): Add dependency on function.h * Makefile.in (lcm.o): Add dependency on function.h * lcm.c (function.h): Include. * i386.c (machine_function, ix86_stack_locals, * ix86_save_varrargs_registers) : Move to ... * i386.h (machine_function, ix86_stack_locals, ix86_save_varrargs_registers): ... here; add optimize_mode_switching (ix86_optimize_mode_switching): New. * i386.md (fix patterns): Set ix86_optimize_mode_switching From-SVN: r63404 --- gcc/ChangeLog | 12 ++++++++++++ gcc/Makefile.in | 2 +- gcc/config/i386/i386.c | 12 ------------ gcc/config/i386/i386.h | 15 ++++++++++++++- gcc/config/i386/i386.md | 3 +++ gcc/lcm.c | 1 + gcc/toplev.c | 30 +++++++++++++++--------------- 7 files changed, 46 insertions(+), 29 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a2ab54f..66e7882 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +Tue Feb 25 12:35:34 CET 2003 Jan Hubicka + + * Makefile.in (lcm.o): Add dependency on function.h + * lcm.c (function.h): Include. + * i386.c (machine_function, ix86_stack_locals, + * ix86_save_varrargs_registers) : Move to + ... + * i386.h (machine_function, ix86_stack_locals, + ix86_save_varrargs_registers): ... here; add optimize_mode_switching + (ix86_optimize_mode_switching): New. + * i386.md (fix patterns): Set ix86_optimize_mode_switching + 2003-02-25 Nick Clifton * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo. Name diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 271f3e0..ceb594b 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1552,7 +1552,7 @@ resource.o : resource.c $(CONFIG_H) $(RTL_H) hard-reg-set.h $(SYSTEM_H) coretype $(INSN_ATTR_H) except.h $(PARAMS_H) $(TM_P_H) lcm.o : lcm.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) \ hard-reg-set.h flags.h real.h insn-config.h $(INSN_ATTR_H) $(RECOG_H) $(EXPR_H) \ - $(BASIC_BLOCK_H) $(TM_P_H) df.h + $(BASIC_BLOCK_H) $(TM_P_H) df.h function.h ssa.o : ssa.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) $(REGS_H) varray.h \ $(EXPR_H) hard-reg-set.h flags.h function.h real.h insn-config.h $(RECOG_H) \ $(BASIC_BLOCK_H) output.h ssa.h diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 89995c7..c464b6c 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -689,18 +689,6 @@ struct stack_local_entry GTY(()) struct stack_local_entry *next; }; - -struct machine_function GTY(()) -{ - struct stack_local_entry *stack_locals; - const char *some_ld_name; - int save_varrargs_registers; - int accesses_prev_frame; -}; - -#define ix86_stack_locals (cfun->machine->stack_locals) -#define ix86_save_varrargs_registers (cfun->machine->save_varrargs_registers) - /* Structure describing stack frame layout. Stack grows downward: diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h index c8be296..e5daa5d 100644 --- a/gcc/config/i386/i386.h +++ b/gcc/config/i386/i386.h @@ -3166,7 +3166,7 @@ enum fp_cw_mode {FP_CW_STORED, FP_CW_UNINITIALIZED, FP_CW_ANY}; /* Define this macro if the port needs extra instructions inserted for mode switching in an optimizing compilation. */ -#define OPTIMIZE_MODE_SWITCHING(ENTITY) 1 +#define OPTIMIZE_MODE_SWITCHING(ENTITY) ix86_optimize_mode_switching /* If you define `OPTIMIZE_MODE_SWITCHING', you have to define this as initializer for an array of integers. Each initializer element N @@ -3223,6 +3223,19 @@ enum fp_cw_mode {FP_CW_STORED, FP_CW_UNINITIALIZED, FP_CW_ANY}; #define DLL_IMPORT_EXPORT_PREFIX '#' #define FASTCALL_PREFIX '@' + +struct machine_function GTY(()) +{ + struct stack_local_entry *stack_locals; + const char *some_ld_name; + int save_varrargs_registers; + int accesses_prev_frame; + int optimize_mode_switching; +}; + +#define ix86_stack_locals (cfun->machine->stack_locals) +#define ix86_save_varrargs_registers (cfun->machine->save_varrargs_registers) +#define ix86_optimize_mode_switching (cfun->machine->optimize_mode_switching) /* Local variables: diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index bb2eb74..d5bc360 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -4441,6 +4441,7 @@ "&& 1" [(const_int 0)] { + ix86_optimize_mode_switching = 1; operands[2] = assign_386_stack_local (HImode, 1); operands[3] = assign_386_stack_local (HImode, 2); if (memory_operand (operands[0], VOIDmode)) @@ -4582,6 +4583,7 @@ "&& 1" [(const_int 0)] { + ix86_optimize_mode_switching = 1; operands[2] = assign_386_stack_local (HImode, 1); operands[3] = assign_386_stack_local (HImode, 2); if (memory_operand (operands[0], VOIDmode)) @@ -4699,6 +4701,7 @@ "" [(const_int 0)] { + ix86_optimize_mode_switching = 1; operands[2] = assign_386_stack_local (HImode, 1); operands[3] = assign_386_stack_local (HImode, 2); if (memory_operand (operands[0], VOIDmode)) diff --git a/gcc/lcm.c b/gcc/lcm.c index 8bbe893..c403485 100644 --- a/gcc/lcm.c +++ b/gcc/lcm.c @@ -63,6 +63,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA #include "basic-block.h" #include "output.h" #include "tm_p.h" +#include "function.h" /* We want target macros for the mode switching code to be able to refer to instruction attribute values. */ diff --git a/gcc/toplev.c b/gcc/toplev.c index 5e63794..8932409 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -3493,21 +3493,6 @@ rest_of_compilation (decl) timevar_pop (TV_RENAME_REGISTERS); } - if (flag_if_conversion2) - { - timevar_push (TV_IFCVT2); - open_dump_file (DFI_ce3, decl); - - if_convert (1); - - close_dump_file (DFI_ce3, print_rtl_with_bb, insns); - timevar_pop (TV_IFCVT2); - } -#ifdef STACK_REGS - if (optimize) - split_all_insns (1); -#endif - if (optimize > 0) { timevar_push (TV_REORDER_BLOCKS); @@ -3530,6 +3515,21 @@ rest_of_compilation (decl) timevar_pop (TV_REORDER_BLOCKS); } + if (flag_if_conversion2) + { + timevar_push (TV_IFCVT2); + open_dump_file (DFI_ce3, decl); + + if_convert (1); + + close_dump_file (DFI_ce3, print_rtl_with_bb, insns); + timevar_pop (TV_IFCVT2); + } +#ifdef STACK_REGS + if (optimize) + split_all_insns (1); +#endif + #ifdef INSN_SCHEDULING if (optimize > 0 && flag_schedule_insns_after_reload) { -- 2.7.4