diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 41ee1394edf301a1e62b62b6588890906b14df56..6dcc99edf2d3f4e9c747c7adf199784fc7cf9a98 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-07-26 J"orn Rennecke <joern.rennecke@superh.com> + + * Makefile.in (ifcvt.o): Depend on target.h + * ifcvt.c (target.h): Include. + (if_convert): Don't call mark_loop_exit_edges if we can't + modify jumps. + 2003-07-26 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> * doc/install.texi (Testing): Adjust required versions of DejaGnu. diff --git a/gcc/Makefile.in b/gcc/Makefile.in index e3e676cde45fc0fc37c4764159184424c544f9a9..545e5a45169de5759ecce3de5526c50d7aaaef60 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -1791,7 +1791,7 @@ regrename.o : regrename.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ insn-config.h $(BASIC_BLOCK_H) $(REGS_H) hard-reg-set.h output.h $(RECOG_H) function.h \ resource.h $(OBSTACK_H) flags.h $(TM_P_H) ifcvt.o : ifcvt.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ - $(REGS_H) toplev.h flags.h insn-config.h function.h $(RECOG_H) \ + $(REGS_H) toplev.h flags.h insn-config.h function.h $(RECOG_H) target.h \ $(BASIC_BLOCK_H) $(EXPR_H) output.h except.h $(TM_P_H) real.h $(OPTABS_H) \ cfgloop.h params.o : params.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(PARAMS_H) toplev.h diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index bb783fbf57f175eef00e8cb25fe432b18b8c99d5..eec1f369cd32dc9603a933f9b68ad10ec28f4542 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -39,6 +39,7 @@ #include "toplev.h" #include "tm_p.h" #include "cfgloop.h" +#include "target.h" #ifndef HAVE_conditional_execution @@ -3112,7 +3113,8 @@ if_convert (int x_life_data_ok) num_removed_blocks = 0; life_data_ok = (x_life_data_ok != 0); - mark_loop_exit_edges (); + if (! (* targetm.cannot_modify_jumps_p) ()) + mark_loop_exit_edges (); /* Free up basic_block_for_insn so that we don't have to keep it up to date, either here or in merge_blocks. */