diff options
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/config/sh/sh.c | 6 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1a88c7f..a16eabf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2004-08-18 Kaz Kojima <kkojima@gcc.gnu.org> + + * config/sh/sh.c (split_branches): Check the result of + next_active_insn. + (sh_output_mi_thunk): Call init_flow if basic_block_info is null. + Call rtl_register_cfg_hooks. + 2004-08-18 Richard Henderson <rth@redhat.com> * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P. diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 6b72e49..950b096 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -4598,7 +4598,8 @@ split_branches (rtx first) next = next_active_insn (insn); if ((GET_CODE (next) == JUMP_INSN - || GET_CODE (next = next_active_insn (next)) == JUMP_INSN) + || ((next = next_active_insn (next)) + && GET_CODE (next) == JUMP_INSN)) && GET_CODE (PATTERN (next)) == SET && recog_memoized (next) == CODE_FOR_jump_compact && ((INSN_ADDRESSES @@ -9726,6 +9727,9 @@ sh_output_mi_thunk (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, if (optimize > 0 && flag_schedule_insns_after_reload) { + if (! basic_block_info) + init_flow (); + rtl_register_cfg_hooks (); find_basic_blocks (insns, max_reg_num (), dump_file); life_analysis (dump_file, PROP_FINAL); |
