var-tracking.c (enum micro_operation_type): Add MO_COPY.
authorAlexandre Oliva <aoliva@redhat.com>
Wed, 9 Aug 2006 06:46:22 +0000 (06:46 +0000)
committerAlexandre Oliva <aoliva@gcc.gnu.org>
Wed, 9 Aug 2006 06:46:22 +0000 (06:46 +0000)
commitca7872007455ca2656f14de0feab6f1b95fa4acb
treedd5e27500927e9429cbe93fc977c40e9e7bbfe34
parent88f2d703c749f50a6bc01aab3bf04b508400ddc5
var-tracking.c (enum micro_operation_type): Add MO_COPY.

* var-tracking.c (enum micro_operation_type): Add MO_COPY.
(var_debug_decl): New function.
(var_reg_set): Follow debug decl link.  Add location even if
reg is already known to hold some other variable.
(var_mem_set): Follow debug decl link.
(var_reg_delete_and_set, var_mem_delete_and_set): Follow debug
decl link.  Delete other known locations of the variable part
if requested.
(var_reg_delete, var_mem_delete): Delete other known locations
of the variable part if requested.
(same_variable_part_p): New function.
(add_stores): Select MO_COPY when appropriate.
(vt_initialize): Handle it.
(compute_bb_dataflow, emit_notes_in_bb): Likewise.  Delete
known locations for MO_SET and MO_CLOBBER.
(find_variable_location_part): New function.
(set_variable_part, delete_variable_part): Use it.
(clobber_variable_part): New function.
* dwarf2out.c (dwarf2out_var_location): Do not follow debug
decl link.

From-SVN: r116031
gcc/ChangeLog
gcc/dwarf2out.c
gcc/var-tracking.c