* var-tracking.c (unshare_variable): Force initialized to
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Jun 2009 14:32:59 +0000 (14:32 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 23 Jun 2009 14:32:59 +0000 (14:32 +0000)
commit331cf53a9ad62e5adba7c41db4d0b025928b3679
treeab3aeb83121a88918bc7de4f030b190aa5e8dfae
parent5dc67ab13b518c785e3a5b6e1c0465fecd731988
* var-tracking.c (unshare_variable): Force initialized to
be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.
(set_variable_part): Likewise.
(struct variable_union_info): Remove pos_src field.
(vui_vec, vui_allocated): New variables.
(variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable
unconditionally.  Avoid XCVECNEW/free for every sorting, for dst_l
== 1 use a simpler sorting algorithm.  Compute pos field right
away, don't fill in pos_src.  For dst_l == 2 avoid qsort.
Avoid quadratic comparison if !flag_var_tracking_uninit.
(variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to
unshare_variable unconditionally.
(dataflow_set_different_2): Removed.
(dataflow_set_different): Don't traverse second hash table.
(compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED
unconditionally to var_reg_set or var_mem_set.
(emit_notes_in_bb): Likewise.
(delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to
unshare_variable.
(emit_note_insn_var_location): Don't set initialized to
VAR_INIT_STATUS_INITIALIZED early.
(vt_finalize): Free vui_vec if needed, clear vui_vec and
vui_allocated.
* rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148852 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/rtl.c
gcc/var-tracking.c