summaryrefslogtreecommitdiff
path: root/gcc/debug.h
diff options
context:
space:
mode:
authorneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2001-07-19 21:17:09 +0000
committerneil <neil@138bc75d-0d04-0410-961f-82ee72b054a4>2001-07-19 21:17:09 +0000
commitb29760a8e6a82c8ddbb584af71ccfdf5a051b96f (patch)
tree434ba7ff40dd5b0508e6609dc0b744e6680e3656 /gcc/debug.h
parent8e41f2ef594f05bbf40d6d7497a93b4b7cf9e3ca (diff)
downloadgcc-b29760a8e6a82c8ddbb584af71ccfdf5a051b96f.tar.gz
* Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h.
(final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h. (toplev.o): Don't depend on xcoffout.h. * c-decl.c: Include debug.h (duplicate_decls): Use debug hook. * dbxout.c (dbxout_source_file, dbxout_args): Make static. (dbx_debug_hooks, xcoff_debug_hooks): Update. (dbxout_types): Remove. * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove. * debug.c (do_nothing_debug_hooks): Update. (debug_true_tree, debug_nothing_rtx): New. * debug.h (struct rtx_def): New. (struct gcc_debug_hooks): New hooks ignore_block, outlining_inline_function and label. (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init, dwarf2out_frame_finish): New. * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function): Make static, update prototype. (dwarf2_debug_hooks): Update. * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function, dwarf2out_frame_init, dwarf2out_frame_finish): Remove. * dwarfout.c (dwarf_debug_hooks): Update. * emit-rtl.c: Include debug.h. (remove_unnecessary_notes): Use debug hook. * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h. (final_scan_insn): Use debug hook. * integrate.c (output_inline_function): Use debug hook. * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static. (sdb_debug_hooks): Update. * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove. * toplev.c: Don't include xcoffout.h. (note_outlining_of_inline_function, debug_ignore_block): Remove. * toplev.h (note_outlining_of_inline_function, debug_ignore_block): Remove. * tree.h (dwarf2out_do_frame): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44163 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/debug.h')
-rw-r--r--gcc/debug.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/debug.h b/gcc/debug.h
index 4a74bee83be..3626ed554e0 100644
--- a/gcc/debug.h
+++ b/gcc/debug.h
@@ -19,6 +19,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#define GCC_DEBUG_H
union tree_node;
+struct rtx_def;
/* This structure contains hooks for the debug information output
functions, accessed through the global instance debug_hooks set in
@@ -53,6 +54,13 @@ struct gcc_debug_hooks
/* Record the end of a block. Arguments as for begin_block. */
void (* end_block) PARAMS ((unsigned int line, unsigned int n));
+ /* Returns nonzero if it is appropriate not to emit any debugging
+ information for BLOCK, because it doesn't contain any
+ instructions. This may not be the case for blocks containing
+ nested functions, since we may actually call such a function even
+ though the BLOCK information is messed up. Defaults to true. */
+ bool (* ignore_block) PARAMS ((union tree_node *));
+
/* Record a source file location at (FILE, LINE). */
void (* source_line) PARAMS ((unsigned int line, const char *file));
@@ -87,6 +95,15 @@ struct gcc_debug_hooks
/* DECL is an inline function, whose body is present, but which is
not being output at this point. */
void (* deferred_inline_function) PARAMS ((union tree_node *decl));
+
+ /* DECL is an inline function which is about to be emitted out of
+ line. The hook is useful to, e.g., emit abstract debug info for
+ the inline before it gets mangled by optimization. */
+ void (* outlining_inline_function) PARAMS ((union tree_node *decl));
+
+ /* Called from final_scan_insn for any CODE_LABEL insn whose
+ LABEL_NAME is non-null. */
+ void (* label) PARAMS ((struct rtx_def *insn));
};
extern struct gcc_debug_hooks *debug_hooks;
@@ -104,6 +121,10 @@ extern void debug_nothing_int_int
PARAMS ((unsigned int, unsigned int));
extern void debug_nothing_tree
PARAMS ((union tree_node *));
+extern bool debug_true_tree
+ PARAMS ((union tree_node *));
+extern void debug_nothing_rtx
+ PARAMS ((struct rtx_def *));
/* Hooks for various debug formats. */
extern struct gcc_debug_hooks do_nothing_debug_hooks;
@@ -121,5 +142,13 @@ extern void dwarf2out_begin_prologue
PARAMS ((unsigned int, const char * file));
extern void dwarf2out_end_epilogue
PARAMS ((void));
+extern void dwarf2out_frame_init
+ PARAMS ((void));
+extern void dwarf2out_frame_finish
+ PARAMS ((void));
+/* Decide whether we want to emit frame unwind information for the current
+ translation unit. */
+extern int dwarf2out_do_frame
+ PARAMS ((void));
#endif /* !GCC_DEBUG_H */