Josef Zlomek <zlomekj@suse.cz> * Makefile.in (var-tracking.o): New. * common.opt (fvar-tracking): New. * flags.h (flag_var_tracking): New. * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added. * opts.c (common_handle_option): Add OPT_fvar_tracking. * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added. * rtl.c (note_insn_name): Likewise. * rtl.def (VAR_LOCATION): New. * rtl.h (NOTE_VAR_LOCATION): New. (NOTE_VAR_LOCATION_DECL): New. (NOTE_VAR_LOCATION_LOC): New. (enum insn_note): NOTE_INSN_VAR_LOCATION was added. (variable_tracking_main): New exported function. * timevar.def (TV_VAR_TRACKING): New. * toplev.c (enum dump_file_index): Added DFI_vartrack. (dump_file): "vartrack" was added (-dV). (flag_var_tracking): New. (f_options): "var-tracking" was added. (rest_of_handle_variable_tracking): New function. (rest_of_compilation): Run variable tracking. (process_options): If user has not specified flag_var_tracking set it according to optimize, debug_info_level and debug_hooks. * tree.h (frame_base_decl): New. * var-tracking.c: New file. * config/ia64/ia64.c (ia64_flag_var_tracking): New variable. (ia64_override_options): Set flags to run variable tracking in machine dependent reorg instead of toplev.c. (ia64_reorg): Run variable tracking if wanted. * doc/invoke.texi: Mention variable tracking in -dV, add and -fvar-tracking. * doc/passes.texi: Added variable tracking pass. Daniel Berlin <dberlin@dberlin.org> * debug.h (struct gcc_debug_hooks): Added var_location debug hook. * dbxout.c (dbx_debug_hooks): Likewise. (xcoff_debug): Likewise. * debug.c (do_nothing_debug_hooks): Likewise. * dwarf2out.c (dwarf2_debug_hooks): Likewise. * dwarfout.c (dwarf_debug_hooks): Likewise. * sdbout.c (sdb_debug_hooks): Likewise. * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. * final.c (final_scan_insn): Call var_location debug hook for each NOTE_INSN_VAR_LOCATION. Co-Authored-By: Daniel Berlin <dberlin@dberlin.org> From-SVN: r77418
103 lines
2.7 KiB
C
103 lines
2.7 KiB
C
/* Do-nothing debug hooks for GCC.
|
|
Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
|
|
|
|
This program is free software; you can redistribute it and/or modify it
|
|
under the terms of the GNU General Public License as published by the
|
|
Free Software Foundation; either version 2, or (at your option) any
|
|
later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|
|
|
#include "config.h"
|
|
#include "system.h"
|
|
#include "coretypes.h"
|
|
#include "tm.h"
|
|
#include "debug.h"
|
|
|
|
/* The do-nothing debug hooks. */
|
|
const struct gcc_debug_hooks do_nothing_debug_hooks =
|
|
{
|
|
debug_nothing_charstar,
|
|
debug_nothing_charstar,
|
|
debug_nothing_int_charstar,
|
|
debug_nothing_int_charstar,
|
|
debug_nothing_int_charstar,
|
|
debug_nothing_int,
|
|
debug_nothing_int_int, /* begin_block */
|
|
debug_nothing_int_int, /* end_block */
|
|
debug_true_tree, /* ignore_block */
|
|
debug_nothing_int_charstar, /* source_line */
|
|
debug_nothing_int_charstar, /* begin_prologue */
|
|
debug_nothing_int_charstar, /* end_prologue */
|
|
debug_nothing_int_charstar, /* end_epilogue */
|
|
debug_nothing_tree, /* begin_function */
|
|
debug_nothing_int, /* end_function */
|
|
debug_nothing_tree, /* function_decl */
|
|
debug_nothing_tree, /* global_decl */
|
|
debug_nothing_tree_tree, /* imported_module_or_decl */
|
|
debug_nothing_tree, /* deferred_inline_function */
|
|
debug_nothing_tree, /* outlining_inline_function */
|
|
debug_nothing_rtx, /* label */
|
|
debug_nothing_int, /* handle_pch */
|
|
debug_nothing_rtx /* var_location */
|
|
};
|
|
|
|
/* This file contains implementations of each debug hook that do
|
|
nothing. */
|
|
|
|
void
|
|
debug_nothing_void (void)
|
|
{
|
|
}
|
|
|
|
void
|
|
debug_nothing_tree (tree decl ATTRIBUTE_UNUSED)
|
|
{
|
|
}
|
|
|
|
void
|
|
debug_nothing_tree_tree (tree t1 ATTRIBUTE_UNUSED,
|
|
tree t2 ATTRIBUTE_UNUSED)
|
|
{
|
|
}
|
|
|
|
bool
|
|
debug_true_tree (tree block ATTRIBUTE_UNUSED)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
void
|
|
debug_nothing_rtx (rtx insn ATTRIBUTE_UNUSED)
|
|
{
|
|
}
|
|
|
|
void
|
|
debug_nothing_charstar (const char *main_filename ATTRIBUTE_UNUSED)
|
|
{
|
|
}
|
|
|
|
void
|
|
debug_nothing_int_charstar (unsigned int line ATTRIBUTE_UNUSED,
|
|
const char *text ATTRIBUTE_UNUSED)
|
|
{
|
|
}
|
|
|
|
void
|
|
debug_nothing_int (unsigned int line ATTRIBUTE_UNUSED)
|
|
{
|
|
}
|
|
|
|
void
|
|
debug_nothing_int_int (unsigned int line ATTRIBUTE_UNUSED,
|
|
unsigned int n ATTRIBUTE_UNUSED)
|
|
{
|
|
}
|