aboutsummaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorSteven Bosscher <stevenb.gcc@gmail.com>2006-03-20 21:22:55 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2006-03-20 21:22:55 +0000
commitede497cfbd518c7fafda85bc7b5e26899e5b0f14 (patch)
treecf6c3c48c169fb06b596b3ffc42eb5980f17563d /gcc/emit-rtl.c
parente13f1c1432140a43edd23a50c3916fa41fadd610 (diff)
downloadgcc-ede497cfbd518c7fafda85bc7b5e26899e5b0f14.zip
gcc-ede497cfbd518c7fafda85bc7b5e26899e5b0f14.tar.gz
gcc-ede497cfbd518c7fafda85bc7b5e26899e5b0f14.tar.bz2
function.h (struct function): Rename to x_stack_check_probe_note.
* function.h (struct function) <x_tail_recursion_reentry>: Rename to x_stack_check_probe_note. (tail_recursion_reentry): Rename to stack_check_probe_note. * function.c: Replace tail_recursion_reentry with stack_check_probe_note everywhere. (expand_function_start): Only emit a note for stack_check_probe_note with -fstack-protect. * stmt.c (expand_case): Don't emit NOTE_INSN_DELETED notes. * emit-rtl.c (remove_unnecessary_notes): Remove. (pass_remove_unnecessary_notes): Remove. * rtl.h (remove_unnecessary_notes): Remove prototype. * final.c (final_start_function): Don't call remove_unnecessary_notes. * tree-pass.h (pass_remove_unnecessary_notes): Remove. * passes.c (pass_remove_unnecessary_notes): Don't run it. From-SVN: r112229
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c74
1 files changed, 0 insertions, 74 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 06721c6..eabf88f 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -3677,80 +3677,6 @@ find_line_note (rtx insn)
return insn;
}
-/* Remove unnecessary notes from the instruction stream. */
-
-unsigned int
-remove_unnecessary_notes (void)
-{
- rtx eh_stack = NULL_RTX;
- rtx insn;
- rtx next;
- rtx tmp;
-
- /* We must not remove the first instruction in the function because
- the compiler depends on the first instruction being a note. */
- for (insn = NEXT_INSN (get_insns ()); insn; insn = next)
- {
- /* Remember what's next. */
- next = NEXT_INSN (insn);
-
- /* We're only interested in notes. */
- if (!NOTE_P (insn))
- continue;
-
- switch (NOTE_LINE_NUMBER (insn))
- {
- case NOTE_INSN_DELETED:
- remove_insn (insn);
- break;
-
- case NOTE_INSN_EH_REGION_BEG:
- eh_stack = alloc_INSN_LIST (insn, eh_stack);
- break;
-
- case NOTE_INSN_EH_REGION_END:
- /* Too many end notes. */
- gcc_assert (eh_stack);
- /* Mismatched nesting. */
- gcc_assert (NOTE_EH_HANDLER (XEXP (eh_stack, 0))
- == NOTE_EH_HANDLER (insn));
- tmp = eh_stack;
- eh_stack = XEXP (eh_stack, 1);
- free_INSN_LIST_node (tmp);
- break;
-
- case NOTE_INSN_BLOCK_BEG:
- case NOTE_INSN_BLOCK_END:
- /* BLOCK_END and BLOCK_BEG notes only exist in the `final' pass. */
- gcc_unreachable ();
-
- default:
- break;
- }
- }
-
- /* Too many EH_REGION_BEG notes. */
- gcc_assert (!eh_stack);
- return 0;
-}
-
-struct tree_opt_pass pass_remove_unnecessary_notes =
-{
- "eunotes", /* name */
- NULL, /* gate */
- remove_unnecessary_notes, /* execute */
- NULL, /* sub */
- NULL, /* next */
- 0, /* static_pass_number */
- 0, /* tv_id */
- 0, /* properties_required */
- 0, /* properties_provided */
- 0, /* properties_destroyed */
- 0, /* todo_flags_start */
- TODO_dump_func, /* todo_flags_finish */
- 0 /* letter */
-};
-
/* Emit insn(s) of given code and pattern
at a specified place within the doubly-linked list.