diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 2 | ||||
-rw-r--r-- | gcc/df-scan.c | 19 | ||||
-rw-r--r-- | gcc/gcse.c | 6 |
4 files changed, 13 insertions, 21 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c60991f..becb644 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-06-12 Seongbae Park <seongbae.park@gmail.com> + + * df-scan.c (df_get_exit-block_use_set): Always add the stack pointer + to the exit block use set. + * gcse.c (cpro_jump): Don't emit barrier in cfglayout mode. + * config/sparc/sparc.c (sparc_check_64): Check df != NULL. + 2007-06-12 Seongbae Park <seongbae.park@gmail.com> * opts.c (common_handle_option): Handle new option -fdbg-cnt-list. diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index afe2424..e8c539e 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -7674,7 +7674,7 @@ sparc_check_64 (rtx x, rtx insn) y = gen_rtx_REG (SImode, REGNO (x) + WORDS_BIG_ENDIAN); if (flag_expensive_optimizations - && DF_REG_DEF_COUNT (REGNO (y)) == 1) + && df && DF_REG_DEF_COUNT (REGNO (y)) == 1) set_once = 1; if (insn == 0) diff --git a/gcc/df-scan.c b/gcc/df-scan.c index 7b878fd..ff33aa3 100644 --- a/gcc/df-scan.c +++ b/gcc/df-scan.c @@ -1005,7 +1005,7 @@ df_insn_delete (basic_block bb, unsigned int uid) bitmap_set_bit (df->insns_to_delete, uid); } if (dump_file) - fprintf (dump_file, "defering deletion of insn with uid = %d.\n", uid); + fprintf (dump_file, "deferring deletion of insn with uid = %d.\n", uid); return; } @@ -1116,7 +1116,7 @@ df_insn_rescan (rtx insn) insn_info->mw_hardregs = df_null_mw_rec; } if (dump_file) - fprintf (dump_file, "defering rescan insn with uid = %d.\n", uid); + fprintf (dump_file, "deferring rescan insn with uid = %d.\n", uid); bitmap_clear_bit (df->insns_to_delete, uid); bitmap_clear_bit (df->insns_to_notes_rescan, uid); @@ -3682,18 +3682,9 @@ df_get_exit_block_use_set (bitmap exit_block_uses) unsigned int i; bitmap_clear (exit_block_uses); - - /* If exiting needs the right stack value, consider the stack - pointer live at the end of the function. */ - if ((HAVE_epilogue && epilogue_completed) - || !EXIT_IGNORE_STACK - || (!FRAME_POINTER_REQUIRED - && !current_function_calls_alloca - && flag_omit_frame_pointer) - || current_function_sp_is_unchanging) - { - bitmap_set_bit (exit_block_uses, STACK_POINTER_REGNUM); - } + + /* Stack pointer is always live at the exit. */ + bitmap_set_bit (exit_block_uses, STACK_POINTER_REGNUM); /* Mark the frame pointer if needed at the end of the function. If we end up eliminating it, it will be removed from the live @@ -2850,12 +2850,6 @@ cprop_jump (basic_block bb, rtx setcc, rtx jump, rtx from, rtx src) /* Remove REG_EQUAL note after simplification. */ if (note_src) remove_note (jump, note); - - /* If this has turned into an unconditional jump, - then put a barrier after it so that the unreachable - code will be deleted. */ - if (GET_CODE (SET_SRC (set)) == LABEL_REF) - emit_barrier_after (jump); } #ifdef HAVE_cc0 |