re PR debug/48220 (DW_OP_GNU_entry_value/DW_TAG_GNU_call_site_parameter vs register...
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 15 Jul 2011 17:09:56 +0000 (17:09 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 15 Jul 2011 17:09:56 +0000 (17:09 +0000)
commit12c5ffe5ef1929bab592f54d197ad7fd677c9905
tree50c59d144fb0377196004267e3d65142ab7825c9
parent021a9e7ef276ac9c00e72a5fd676f20b6d6b36c0
re PR debug/48220 (DW_OP_GNU_entry_value/DW_TAG_GNU_call_site_parameter vs register window)

PR target/48220
* doc/md.texi (Standard Names): Document window_save.
* cfgexpand.c (expand_debug_parm_decl): New function extracted from
expand_debug_expr and expand_debug_source_expr.  If the target has
a window_save instruction, adjust the ENTRY_VALUE_EXP.
(expand_debug_expr) <SSA_NAME>: Call expand_debug_parm_decl if the
SSA_NAME_VAR is a parameter.
(expand_debug_source_expr) <PARM_DECL>: Call expand_debug_parm_decl.
* var-tracking.c (parm_reg_t): New type and associated vector type.
(windowed_parm_regs): New variable.
(adjust_insn): If the target has a window_save instruction and this
is the instruction, make its effect on parameter registers explicit.
(next_non_note_insn_var_location): New function.
(emit_notes_in_bb): Use it instead of NEXT_INSN throughout.
(vt_add_function_parameter): If the target has a window_save insn,
adjust the incoming RTL and record that in windowed_parm_regs.
(vt_finalize): Free windowed_parm_regs.

From-SVN: r176318
gcc/ChangeLog
gcc/cfgexpand.c
gcc/doc/md.texi
gcc/var-tracking.c