summaryrefslogtreecommitdiff
path: root/gcc/insn-notes.def
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-07 23:42:41 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2011-07-07 23:42:41 +0000
commit46346a5290f78911b8ae50503d700d0a6e3db9c8 (patch)
treeb847cd3bf525fe133a6b119fd23ec62761a5bce8 /gcc/insn-notes.def
parentdcdf448e3aa4f64d0ed7210c00c35eab34f7c404 (diff)
downloadgcc-46346a5290f78911b8ae50503d700d0a6e3db9c8.tar.gz
dwarf2out: Move insn scanning out of final.c.
This patch is essentially Bernd's 005-scanfirst patch, updated for the introduction of the dwarf2cfi.c file. We introduce NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL to hold the dwarf2 info during the bulk of final. The actual construction of these notes still happens during final, right at the very beginning of the pass, via the dwarf2out_frame_debug_init hook. * dwarf2cfi.c (cfi_insn): New. (dwarf2out_cfi_label): Don't emit cfi label here. (add_fde_cfi): Create a NOTE_INSN_CFI. (dwarf2out_frame_debug): Setup cfi_insn. (dwarf2out_frame_debug_init): Loop over insns creating CFI notes. (dwarf2out_cfi_begin_epilogue): Make static. (dwarf2out_frame_debug_restore_state): Make static. * dwarf2out.c (output_cfi_directive): Make static. (dwarf2out_emit_cfi): New. * dwarf2out.h: Update. * final.c (final): Remove CFI notes. (final_scan_insn): Don't call dwarf2out_cfi_begin_epilogue, dwarf2out_frame_debug_restore_state, dwarf2out_frame_debug. Handle NOTE_INSN_CFI and NOTE_INSN_CFI_LABEL. * insn-notes.def (NOTE_INSN_CFI): New. (NOTE_INSN_CFI_LABEL): New. * rtl.h (union rtunion_def): Add rt_cfi member. (XCFI, XCCFI, NOTE_CFI, NOTE_LABEL_NUMBER): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@176016 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/insn-notes.def')
-rw-r--r--gcc/insn-notes.def8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/insn-notes.def b/gcc/insn-notes.def
index 6cdbabde09d..859cdacab59 100644
--- a/gcc/insn-notes.def
+++ b/gcc/insn-notes.def
@@ -77,4 +77,12 @@ INSN_NOTE (SWITCH_TEXT_SECTIONS)
when an epilogue appears in the middle of a function. */
INSN_NOTE (CFA_RESTORE_STATE)
+/* When emitting dwarf2 frame information, contains a directive that
+ should be emitted. */
+INSN_NOTE (CFI)
+
+/* When emitting dwarf2 frame information, contains the number of a debug
+ label that should be emitted. */
+INSN_NOTE (CFI_LABEL)
+
#undef INSN_NOTE