var-tracking.c (unshare_variable): Force initialized to be VAR_INIT_STATUS_INITIALIZE...
authorJakub Jelinek <jakub@redhat.com>
Tue, 23 Jun 2009 14:32:59 +0000 (16:32 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Tue, 23 Jun 2009 14:32:59 +0000 (16:32 +0200)
commit7eb3f1f7cab7f8ffc75b8010f619a76fba2808c0
treeab3aeb83121a88918bc7de4f030b190aa5e8dfae
parent8593e0b6b9f793572b91f36ad4e3f5bae4ea80d5
var-tracking.c (unshare_variable): Force initialized to be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit.

* 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.

From-SVN: r148852
gcc/ChangeLog
gcc/rtl.c
gcc/var-tracking.c