summaryrefslogtreecommitdiffstats
path: root/libgfortran/generated/spread_i2.c
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-21 09:38:34 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2009-06-21 09:38:34 +0000
commita8f6ad2be39381e0f8c65864c492bc0118b5b1af (patch)
tree3dcc260f9a281cc3291370645240f32ea1085370 /libgfortran/generated/spread_i2.c
parent15efa0080e1896407a33d14e9eabb01e67710b9d (diff)
downloadppe42-gcc-a8f6ad2be39381e0f8c65864c492bc0118b5b1af.tar.gz
ppe42-gcc-a8f6ad2be39381e0f8c65864c492bc0118b5b1af.zip
* var-tracking.c (struct shared_hash_def, shared_hash): New types.
(dataflow_set): Change vars type from htab_t to shared_hash. (shared_hash_pool, empty_shared_hash): New variables. (vars_clear): Removed. (shared_hash_shared, shared_hash_htab, shared_hash_copy, shared_hash_find_slot_unshare, shared_hash_find_slot, shared_hash_find_slot_noinsert, shared_hash_find): New static inlines. (shared_hash_unshare, shared_hash_destroy): New functions. (unshare_variable): Unshare set->vars if shared, use shared_hash_htab. (vars_copy): Use htab_traverse_noresize instead of htab_traverse. (get_init_value, find_src_set_src, dump_dataflow_set, clobber_variable_part, emit_notes_for_differences): Use shared_hash_htab. (dataflow_set_init): Remove second argument, set vars to empty_shared_hash instead of creating a new htab. (dataflow_set_clear): Call shared_hash_destroy and set vars to empty_shared_hash instead of calling vars_clear. (dataflow_set_copy): Don't call vars_copy, instead just share the src htab with dst. (variable_union): Use shared_hash_*, use initially NO_INSERT lookup if set->vars is shared. Don't keep slot cleared before calling unshare_variable. Unshare set->vars if needed. Even ->refcount == 1 vars must be unshared if set->vars is shared and var needs to be modified. (variable_canonicalize): New function. (dataflow_set_union): If dst->vars is empty, just share src->vars with dst->vars and traverse with variable_canonicalize to canonicalize and unshare what is needed. (dataflow_set_different): If old_set and new_set use the same shared htab, they aren't different. If number of htab elements is different, htabs are different. Use shared_hash_*. (dataflow_set_destroy): Call shared_hash_destroy instead of htab_delete. (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass second argument to dataflow_set_init. (vt_initialize): Likewise. Initialize shared_hash_pool and empty_shared_hash, move bb in/out initialization afterwards. Use variable_htab_free instead of NULL as changed_variables del hook. (variable_was_changed): Change type of second argument to pointer to dataflow_set. When inserting var into changed_variables, bump refcount. Unshare set->vars if set is shared htab and slot needs to be cleared. (set_variable_part): Use shared_hash_*, use initially NO_INSERT lookup if set->vars is shared. Unshare set->vars if needed. Even ->refcount == 1 vars must be unshared if set->vars is shared and var needs to be modified. Adjust variable_was_changed caller. (delete_variable_part): Use shared_hash_*. Even ->refcount == 1 vars must be unshared if set->vars is shared and var needs to be modified. Adjust variable_was_changed caller. (emit_note_insn_var_location): Don't pool_free var. (emit_notes_for_differences_1): Initialize empty_var->refcount to 0 instead of 1. (vt_finalize): Call htab_delete on empty_shared_hash->htab and free_alloc_pool on shared_hash_pool. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148760 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/generated/spread_i2.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud