From 7d3c6cd8f4ea00b984ce11cc8aad3282da1b6408 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 5 Jul 2011 10:08:58 -0700 Subject: [PATCH] ia64: Remove dead code in process_epilogue. * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove. (IA64_CHANGE_CFA_IN_EPILOGUE): Remove. (process_epilogue): Don't call dwarf2out_def_cfa. From-SVN: r175874 --- gcc/ChangeLog | 4 ++++ gcc/config/ia64/ia64.c | 35 ++--------------------------------- 2 files changed, 6 insertions(+), 33 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 87515ba..079b95a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2011-07-05 Richard Henderson + * config/ia64/ia64.c (ia64_emit_deleted_label_after_insn): Remove. + (IA64_CHANGE_CFA_IN_EPILOGUE): Remove. + (process_epilogue): Don't call dwarf2out_def_cfa. + * config/ia64/ia64.c (ia64_expand_prologue): Use pc_rtx to indicate the return address save. (process_cfa_register): Likewise. diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index b37919c..bdabe82 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -9620,29 +9620,6 @@ static bool need_copy_state; # define MAX_ARTIFICIAL_LABEL_BYTES 30 #endif -/* Emit a debugging label after a call-frame-related insn. We'd - rather output the label right away, but we'd have to output it - after, not before, the instruction, and the instruction has not - been output yet. So we emit the label after the insn, delete it to - avoid introducing basic blocks, and mark it as preserved, such that - it is still output, given that it is referenced in debug info. */ - -static const char * -ia64_emit_deleted_label_after_insn (rtx insn) -{ - char label[MAX_ARTIFICIAL_LABEL_BYTES]; - rtx lb = gen_label_rtx (); - rtx label_insn = emit_label_after (lb, insn); - - LABEL_PRESERVE_P (lb) = 1; - - delete_insn (label_insn); - - ASM_GENERATE_INTERNAL_LABEL (label, "L", CODE_LABEL_NUMBER (label_insn)); - - return xstrdup (label); -} - /* All we need to do here is avoid a crash in the generic dwarf2 processing. The real CFA definition is set up above. */ @@ -9654,16 +9631,11 @@ ia64_dwarf_handle_frame_unspec (const char * ARG_UNUSED (label), gcc_assert (index == UNSPECV_ALLOC); } -/* The generic dwarf2 frame debug info generator does not define a - separate region for the very end of the epilogue, so refrain from - doing so in the IA64-specific code as well. */ - -#define IA64_CHANGE_CFA_IN_EPILOGUE 0 - /* The function emits unwind directives for the start of an epilogue. */ static void -process_epilogue (FILE *asm_out_file, rtx insn, bool unwind, bool frame) +process_epilogue (FILE *asm_out_file, rtx insn ATTRIBUTE_UNUSED, + bool unwind, bool frame ATTRIBUTE_UNUSED) { /* If this isn't the last block of the function, then we need to label the current state, and copy it back in at the start of the next block. */ @@ -9678,9 +9650,6 @@ process_epilogue (FILE *asm_out_file, rtx insn, bool unwind, bool frame) if (unwind) fprintf (asm_out_file, "\t.restore sp\n"); - if (IA64_CHANGE_CFA_IN_EPILOGUE && frame) - dwarf2out_def_cfa (ia64_emit_deleted_label_after_insn (insn), - STACK_POINTER_REGNUM, INCOMING_FRAME_SP_OFFSET); } /* This function processes a SET pattern for REG_CFA_ADJUST_CFA. */ -- 2.7.4