aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/sparc/sparc.c2
-rw-r--r--gcc/df-scan.c19
-rw-r--r--gcc/gcse.c6
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
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 9d800b2..8517e38 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -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