1. 04 Apr, 2009 1 commit
  2. 03 Apr, 2009 1 commit
    • re PR middle-end/13146 (inheritance for nonoverlapping_component_refs_p) · 5006671f
      2009-04-03  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/13146
      	PR tree-optimization/23940
      	PR tree-optimization/33237
      	PR middle-end/33974
      	PR middle-end/34093
      	PR tree-optimization/36201
      	PR tree-optimization/36230
      	PR tree-optimization/38049
      	PR tree-optimization/38207
      	PR tree-optimization/38230
      	PR tree-optimization/38301
      	PR tree-optimization/38585
      	PR middle-end/38895
      	PR tree-optimization/38985
      	PR tree-optimization/39299
      	* tree-ssa-structalias.h: Remove.
      	* tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p.
      	(NULL_DEF_OPERAND_P): Make of type def_operand_p.
      	(struct vuse_element_d): Remove.
      	(struct vuse_vec_d): Likewise.
      	(VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC,
      	VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR,
      	SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR,
      	VUSE_ELEMENT_VAR): Likewise.
      	(struct voptype_d): Likewise.
      	(NUM_VOP_FREE_BUCKETS): Likewise.
      	(struct ssa_operands): Remove vop_free_buckets and mpt_table fields.
      	(struct stmt_operands_d): Remove.
      	(VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT,
      	VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP,
      	VDEF_NUM, VDEF_VECT): Likewise.
      	(copy_virtual_operands): Remove.
      	(operand_build_cmp): Likewise.
      	(create_ssa_artificial_load_stmt): Likewise.
      	(enum ssa_op_iter_type): Remove ssa_op_iter_vdef.
      	(struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm
      	vuse_index and mayuse_index members.  Pack and move done and iter_type
      	members to the front.
      	(SSA_OP_VMAYUSE): Remove.
      	(SSA_OP_VIRTUAL_USES): Adjust.
      	(FOR_EACH_SSA_VDEF_OPERAND): Remove.
      	(unlink_stmt_vdef): Declare.
      	(add_to_addressable_set): Remove.
      	* tree-vrp.c (stmt_interesting_for_vrp): Adjust.
      	(vrp_visit_stmt): Likewise.
      	* doc/tree-ssa.texi (Alias analysis): Update.
      	* doc/invoke.texi (max-aliased-vops): Remove docs.
      	(avg-aliased-vops): Likewise.
      	* tree-into-ssa.c (syms_to_rename): Remove.
      	(need_to_update_vops_p): Likewise.
      	(need_to_initialize_update_ssa_p): Rename to ...
      	(update_ssa_initialized_fn): ... this.  Track function we are
      	initialized for.
      	(symbol_marked_for_renaming): Simplify.
      	(add_new_name_mapping): Do not set need_to_update_vops_p.
      	(dump_currdefs): Use SYMS_TO_RENAME.
      	(rewrite_update_stmt): Always walk all uses/defs.
      	(dump_update_ssa): Adjust.
      	(init_update_ssa): Take function argument.  Track what we are
      	initialized for.
      	(delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn.
      	(create_new_def_for): Initialize for cfun, assert we are initialized
      	for cfun.
      	(mark_sym_for_renaming): Simplify.
      	(mark_set_for_renaming): Do not initialize update-ssa.
      	(need_ssa_update_p): Simplify.  Take function argument.
      	(name_mappings_registered_p): Assert we ask for the correct function.
      	(name_registered_for_update_p): Likewise.
      	(ssa_names_to_replace): Likewise.
      	(release_ssa_name_after_update_ssa): Likewise.
      	(update_ssa): Likewise.  Use SYMS_TO_RENAME.
      	(dump_decl_set): Do not print a newline.
      	(debug_decl_set): Do it here.
      	(dump_update_ssa): And here.
      	* tree-ssa-loop-im.c (move_computations): Adjust.
      	(movement_possibility): Likewise.
      	(determine_max_movement): Likewise.
      	(gather_mem_refs_stmt): Likewise.
      	* tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG
      	or NAME_MEMORY_TAG.
      	* tree-complex.c (update_all_vops): Remove.
      	(expand_complex_move): Adjust.
      	* tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE.
      	Simplify test for memory referencing statement.  Exclude
      	non-invariant ADDR_EXPRs.
      	* tree-pretty-print.c (dump_generic_node): Do not handle memory tags.
      	* tree-loop-distribution.c (generate_memset_zero): Adjust.
      	(rdg_flag_uses): Likewise.
      	* tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag
      	related code.
      	(tree_optimize_tail_calls_1): Also split the
      	edge from the entry block if we have degenerate PHI nodes in
      	the first basic block.
      	* tree.c (init_ttree): Remove memory-tag related code.
      	(tree_code_size): Likewise.
      	(tree_node_structure): Likewise.
      	(build7_stat): Re-write to be build6_stat.
      	* tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove.
      	(SSA_VAR_P): Adjust.
      	(struct tree_memory_tag): Remove.
      	(struct tree_memory_partition_tag): Likewise.
      	(union tree_node): Adjust.
      	(build7): Re-write to be build6.
      	* tree-pass.h (pass_reset_cc_flags): Remove.
      	(TODO_update_address_taken): New flag.
      	(pass_simple_dse): Remove.
      	* ipa-cp.c (ipcp_update_callgraph): Update SSA form.
      	* params.h (MAX_ALIASED_VOPS): Remove.
      	(AVG_ALIASED_VOPS): Likewise.
      	* omp-low.c (expand_omp_taskreg): Update SSA form.
      	* tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs
      	aliases the lhs in a copy stmt.
      	* tree-ssa-dse.c (struct address_walk_data): Remove.
      	(memory_ssa_name_same): Likewise.
      	(memory_address_same): Likewise.
      	(get_kill_of_stmt_lhs): Likewise.
      	(dse_possible_dead_store_p): Simplify, use the oracle.  Handle
      	unused stores.  Look through PHI nodes into post-dominated regions.
      	(dse_optimize_stmt): Simplify.  Properly remove stores.
      	(tree_ssa_dse): Compute dominators.
      	(execute_simple_dse): Remove.
      	(pass_simple_dse): Likewise.
      	* ipa-reference.c (scan_stmt_for_static_refs): Open-code
      	gimple_loaded_syms and gimple_stored_syms computation.
      	* toplev.c (dump_memory_report): Dump alias and pta stats.
      	* tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify.
      	(vn_reference_eq): Likewise.
      	(vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec,
      	copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt,
      	valueize_vuses): Remove.
      	(get_def_ref_stmt_vuses): Simplify.  Rename to ...
      	(get_def_ref_stmt_vuse): ... this.
      	(vn_reference_lookup_2): New function.
      	(vn_reference_lookup_pieces): Use walk_non_aliased_vuses for
      	walking equivalent vuses.  Simplify.
      	(vn_reference_lookup): Likewise.
      	(vn_reference_insert): Likewise.
      	(vn_reference_insert_pieces): Likewise.
      	(visit_reference_op_call): Simplify.
      	(visit_reference_op_load): Likewise.
      	(visit_reference_op_store): Likewise.
      	(init_scc_vn): Remove shared_lookup_vuses initialization.
      	(free_scc_vn): Remove shared_lookup_vuses freeing.
      	(sort_vuses, sort_vuses_heap): Remove.
      	(get_ref_from_reference_ops): Export.
      	* tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses
      	vector with single vuse pointer.
      	(vn_reference_lookup_pieces, vn_reference_lookup,
      	vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes.
      	(shared_vuses_from_stmt): Remove.
      	(get_ref_from_reference_ops): Declare.
      	* tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust.
      	* tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove
      	memory-tag related code.
      	* tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code.
      	(likely_value): Add comment, skip static-chain of call statements.
      	(surely_varying_stmt_p): Adjust.
      	(gimplify_and_update_call_from_tree): Likewise.
      	(execute_fold_all_builtins): Do not rebuild alias info.
      	(gimplify_and_update_call_from_tree): Properly update VOPs.
      	* tree-ssa-loop-ivopts.c (get_ref_tag): Remove.
      	(copy_ref_info): Remove memory-tag related code.
      	* tree-call-cdce.c (tree_call_cdce): Rename the VOP.
      	* ipa-pure-const.c (check_decl): Remove memory-tag related code.
      	(check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms
      	computation.
      	* tree-ssa-dom.c (gimple_p): Remove typedef.
      	(eliminate_redundant_computations): Adjust.
      	(record_equivalences_from_stmt): Likewise.
      	(avail_expr_hash): Likewise.
      	(avail_expr_eq): Likewise.
      	* tree-ssa-propagate.c (update_call_from_tree): Properly
      	update VOPs.
      	(stmt_makes_single_load): Likewise.
      	(stmt_makes_single_store): Likewise.
      	* tree-ssa-alias.c: Rewrite completely.
      	(debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats,
      	debug_mem_sym_stats, dump_mem_sym_stats_for_var,
      	debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt,
      	delete_mem_ref_stats, create_tag_raw, dump_points_to_info,
      	dump_may_aliases_for, debug_may_aliases_for, new_type_alias):
      	Remove public functions.
      	(pass_reset_cc_flags): Remove.
      	(pass_build_alias): Move ...
      	* tree-ssa-structalias.c (pass_build_alias): ... here.
      	* tree-ssa-alias.c (may_be_aliased): Move ...
      	* tree-flow-inline.h (may_be_aliased): ... here.
      	tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs,
      	count_uses_and_derefs): Move ...
      	* gimple.c: ... here.
      	* gimple.h (count_uses_and_derefs): Declare.
      	* tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p,
      	ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p,
      	same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p,
      	indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p,
      	ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p,
      	call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until,
      	get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs):
      	New functions.
      	* tree-dfa.c (refs_may_alias_p): Move ...
      	* tree-ssa-alias.c (refs_may_alias_p): ... here.  Extend.
      	* tree-ssa-alias.h: New file.
      	* tree-ssa-sink.c (is_hidden_global_store): Adjust.
      	(statement_sink_location): Likewise.
      	* opts.c (decode_options): Do not adjust max-aliased-vops or
      	avg-aliased-vops values.
      	* timevar.def (TV_TREE_MAY_ALIAS): Remove.
      	(TV_CALL_CLOBBER): Likewise.
      	(TV_FLOW_SENSITIVE): Likewise.
      	(TV_FLOW_INSENSITIVE): Likewise.
      	(TV_MEMORY_PARTITIONING): Likewise.
      	(TV_ALIAS_STMT_WALK): New timevar.
      	* tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust.
      	* tree-ssa-address.c (create_mem_ref_raw): Use build6.
      	(get_address_description): Remove memory-tag related code.
      	* tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust.
      	* treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove.
      	* tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs
      	and immediate uses in statements.  Document.
      	* gimple-pretty-print.c (dump_gimple_mem_ops): Adjust.
      	(dump_symbols): Remove.
      	(dump_gimple_mem_ops): Do not dump loaded or stored syms.
      	* alias.c (get_deref_alias_set): New function split out from ...
      	(get_alias_set): ... here.
      	* alias.h (get_deref_alias_set): Declare.
      	* tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused
      	type parameter.  Remove restrict pointer handling.  Create a
      	ref-all pointer in case type-based alias sets do not conflict.
      	(vect_analyze_data_refs): Remove SMT related code.
      	* tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert.
      	(vectorizable_load): Likewise.
      	* tree-data-ref.h (struct dr_alias): Remove symbol_tag field.
      	(DR_SYMBOL_TAG, DR_VOPS): Remove.
      	* tree-data-ref.c (dr_may_alias_p): Use the alias-oracle.
      	Ignore vops and SMTs.
      	(dr_analyze_alias): Likewise..
      	(free_data_ref): Likewise.
      	(create_data_ref): Likewise.
      	(analyze_all_data_dependences): Likewise.
      	(get_references_in_stmt): Adjust.
      	* tree-flow-inline.h (gimple_aliases_computed_p,
      	gimple_addressable_vars, gimple_call_clobbered_vars,
      	gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition,
      	factoring_name_p, mark_call_clobbered, clear_call_clobbered,
      	compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag,
      	gimple_mem_ref_stats): Remove.
      	(gimple_vop): New function.
      	(op_iter_next_use): Remove vuses and mayuses cases.
      	(op_iter_next_def): Remove vdefs case.
      	(op_iter_next_tree): Remove vuses, mayuses and vdefs cases.
      	(clear_and_done_ssa_iter): Do not set removed fields.
      	(op_iter_init): Likewise.  Skip vuse and/or vdef if requested.
      	Assert we are not iterating over vuses or vdefs if not also
      	iterating over uses or defs.
      	(op_iter_init_use): Likewise.
      	(op_iter_init_def): Likewise.
      	(op_iter_next_vdef): Remove.
      	(op_iter_next_mustdef): Likewise.
      	(op_iter_init_vdef): Likewise.
      	(compare_ssa_operands_equal): Likewise.
      	(link_use_stmts_after): Handle vuse operand.
      	(is_call_used): Use is_call_clobbered.
      	(is_call_clobbered): Global variables are always call clobbered,
      	query the call-clobbers bitmap.
      	(mark_call_clobbered): Ignore global variables.
      	(clear_call_clobbered): Likewise.
      	* tree-ssa-coalesce.c (create_outofssa_var_map): Adjust
      	virtual operands sanity check.
      	* tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG):
      	Remove.
      	(TARGET_MEM_REF): Remove TMR_TAG operand.
      	* tree-dfa.c (add_referenced_var): Initialize call-clobber state.
      	Remove call-clobber related code.
      	(remove_referenced_var): Likewise.  Do not clear mpt or symbol_mem_tag.
      	(dump_variable): Do not dump SMTs, memory stats, may-aliases or
      	partitions or escape reason.
      	(get_single_def_stmt, get_single_def_stmt_from_phi,
      	get_single_def_stmt_with_phi): Remove.
      	(dump_referenced_vars): Tidy.
      	(get_ref_base_and_extent): Allow bare decls.
      	(collect_dfa_stats): Adjust.
      	* graphite.c (rename_variables_in_stmt): Adjust.
      	(graphite_copy_stmts_from_block): Likewise.
      	(translate_clast): Likewise.
      	* tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap.
      	(EXPR_DIES): New.
      	(translate_vuse_through_block): Use the oracle.
      	(phi_translate_1): Adjust.
      	(value_dies_in_block_x): Use the oracle.  Cache the outcome
      	in EXPR_DIES.
      	(valid_in_sets): Check if the VUSE for
      	a REFERENCE is available.
      	(eliminate): Do not remove stmts during elimination,
      	instead queue and remove them afterwards.
      	(do_pre): Do not rebuild alias info.
      	(pass_pre): Run TODO_rebuild_alias before PRE.
      	* tree-ssa-live.c (remove_unused_locals): Remove memory-tag code.
      	* tree-sra.c (sra_walk_function): Use gimple_references_memory_p.
      	(mark_all_v_defs_stmt): Remove.
      	(mark_all_v_defs_seq): Adjust.
      	(sra_replace): Likewise.
      	(scalarize_use): Likewise.
      	(scalarize_copy): Likewise.
      	(scalarize_init): Likewise.
      	(scalarize_ldst): Likewise.
      	(todoflags): Remove.
      	(tree_sra): Do not rebuild alias info.
      	(tree_sra_early): Adjust.
      	(pass_sra): Run TODO_update_address_taken before SRA.
      	* tree-predcom.c (set_alias_info): Remove.
      	(prepare_initializers_chain): Do not call it.
      	(mark_virtual_ops_for_renaming): Adjust.
      	(mark_virtual_ops_for_renaming_list): Remove.
      	(initialize_root_vars): Adjust.
      	(initialize_root_vars_lm): Likewise.
      	(prepare_initializers_chain): Likewise.
      	* tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code.
      	(may_propagate_copy_into_stmt): Likewise.
      	(merge_alias_info): Do nothing for now.
      	(propagate_tree_value_into_stmt): Adjust.
      	(stmt_may_generate_copy): Likewise.
      	* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do
      	not mark symbols for renaming.
      	(forward_propagate_addr_expr): Match up push/pop_stmt_changes
      	with the same statement, make sure to update the new pointed-to one.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy
      	call statements, do not mark symbols for renaming.
      	(mark_operand_necessary): Dump something.
      	(ref_may_be_aliased): New function.
      	(mark_aliased_reaching_defs_necessary_1): New helper function.
      	(mark_aliased_reaching_defs_necessary): Likewise.
      	(mark_all_reaching_defs_necessary_1): Likewise.
      	(mark_all_reaching_defs_necessary): Likewise.
      	(propagate_necessity): Do not process virtual PHIs.  For
      	non-aliased loads mark all reaching definitions as necessary.
      	For aliased loads and stores mark the immediate dominating
      	aliased clobbers as necessary.
      	(visited): New global static.
      	(perform_tree_ssa_dce): Free visited bitmap after propagating
      	necessity.
      	(remove_dead_phis): Perform simple dead virtual PHI removal.
      	(remove_dead_stmt): Properly unlink virtual operands when
      	removing stores.
      	(eliminate_unnecessary_stmts): Schedule PHI removal after
      	stmt removal.
      	* tree-ssa-ter.c (is_replaceable_p): Adjust.
      	(process_replaceable): Likewise.
      	(find_replaceable_in_bb): Likewise.
      	* tree-ssa.c (verify_ssa_name): Verify all VOPs are
      	based on the single gimple vop.
      	(verify_flow_insensitive_alias_info): Remove.
      	(verify_flow_sensitive_alias_info): Likewise.
      	(verify_call_clobbering): Likewise.
      	(verify_memory_partitions): Likewise.
      	(verify_alias_info): Likewise.
      	(verify_ssa): Adjust..
      	(execute_update_addresses_taken): Export.  Update SSA
      	manually.  Optimize only when optimizing.  Use a local bitmap.
      	(pass_update_address_taken): Remove TODO_update_ssa, add
      	TODO_dump_func.
      	(pass_update_address_taken): Just use TODO_update_address_taken.
      	(init_tree_ssa): Do not initialize addressable_vars.
      	(verify_ssa): Verify new VUSE / VDEF properties.
      	Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT.
      	Do not call verify_alias_info.
      	(delete_tree_ssa): Clear the VUSE, VDEF operands.
      	Do not free the loaded and stored syms bitmaps.  Reset the escaped
      	and callused solutions.  Do not free addressable_vars.
      	Remove memory-tag related code.
      	(warn_uninitialized_var): Aliases are always available.
      	* tree-ssa-loop-prefetch.c (gather_memory_references): Adjust.
      	* lambda-code.c (can_put_in_inner_loop): Adjust.
      	(can_put_after_inner_loop): Likewise.
      	(perfect_nestify): Likewise.
      	* tree-vect-stmts.c (vect_stmt_relevant_p): Adjust.
      	(vect_gen_widened_results_half): Remove CALL_EXPR handling.
      	(vectorizable_conversion): Do not mark symbols for renaming.
      	* tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF.
      	(expand_call_inline): Unlink the calls virtual operands before
      	replacing it.
      	(tree_function_versioning): Do not call update_ssa if we are not
      	updating clones.  Simplify.
      	* tree-ssa-phiprop.c (phivn_valid_p): Adjust.
      	(propagate_with_phi): Likewise..
      	* tree-outof-ssa.c (create_temp): Remove memory tag and call
      	clobber code.  Assert we are not aliased or global.
      	* tree-flow.h: Include tree-ssa-alias.h
      	(enum escape_type): Remove.
      	(struct mem_sym_stats_d): Likewise.
      	(struct mem_ref_stats_d): Likewise.
      	(struct gimple_df): Add vop member.  Remove global_var,
      	call_clobbered_vars, call_used_vars, addressable_vars,
      	aliases_compted_p and mem_ref_stats members.  Add syms_to_rename,
      	escaped and callused members.
      	(struct ptr_info_def): Remove all members, add points-to solution
      	member pt.
      	(struct var_ann_d): Remove in_vuse_list, in_vdef_list,
      	call_clobbered, escape_mask, mpt and symbol_mem_tag members.
      	* Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h.
      	(tree-ssa-structalias.o): Remove tree-ssa-structalias.h.
      	(tree-ssa-alias.o): Likewise.
      	(toplev.o): Add tree-ssa-alias.h
      	(GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h.
      	* gimple.c (gimple_set_bb): Fix off-by-one error.
      	(is_gimple_reg): Do not handle memory tags.
      	(gimple_copy): Also copy virtual operands.
      	Delay updating the statement.  Do not reset loaded and stored syms.
      	(gimple_set_stored_syms): Remove.
      	(gimple_set_loaded_syms): Likewise.
      	(gimple_call_copy_skip_args): Copy the virtual operands
      	and mark the new statement modified.
      	* tree-ssa-structalias.c (may_alias_p): Remove.
      	(set_uids_in_ptset): Take the alias set to prune with as
      	parameter.  Fold in the alias test of may_alias_p.
      	(compute_points_to_sets): Compute whether a ptr is dereferenced
      	in a local sbitmap.
      	(process_constraint): Deal with &ANYTHING on the lhs, reject all
      	other ADDRESSOF constraints on the lhs.
      	(get_constraint_for_component_ref): Assert that we don't get
      	ADDRESSOF constraints from the base of the reference.
      	Properly generate UNKNOWN_OFFSET for DEREF if needed.
      	(struct variable_info): Remove collapsed_to member.
      	(get_varinfo_fc): Remove.
      	(new_var_info): Do not set collapsed_to.
      	(dump_constraint): Do not follow cycles.
      	(dump_constraint_graph): Likewise.
      	(build_pred_graph): Likewise.
      	(build_succ_graph): Likewise.
      	(rewrite_constraints): Likewise.
      	(do_simple_structure_copy): Remove.
      	(do_rhs_deref_structure_copy): Remove.
      	(do_lhs_deref_structure_copy): Remove.
      	(collapse_rest_of_var): Remove.
      	(do_structure_copy): Re-implement.
      	(pta_stats): New global variable.
      	(dump_pta_stats): New function.
      	(struct constraint_expr): Make offset signed.
      	(UNKNOWN_OFFSET): Define special value.
      	(dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN.
      	(solution_set_expand): New helper function split out from ...
      	(do_sd_constraint): ... here.
      	(solution_set_add): Handle UNKNOWN_OFFSET.  Handle negative offsets.
      	(do_ds_constraint): Likewise.
      	(do_sd_constraint): Likewise.  Do not special-case ESCAPED = *ESCAPED
      	and CALLUSED = *CALLUSED.
      	(set_union_with_increment): Make inc argument signed.
      	(type_safe): Remove.
      	(get_constraint_for_ptr_offset): Handle unknown and negative
      	constant offsets.
      	(first_vi_for_offset): Handle offsets before start.  Bail
      	out early for offsets beyond the variable extent.
      	(first_or_preceding_vi_for_offset): New function.
      	(init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint.
      	Together with ESCAPED = *ESCAPED this properly computes reachability.
      	(find_what_var_points_to): New function.
      	(find_what_p_points_to): Implement in terms of find_what_var_points_to.
      	(pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global,
      	pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1,
      	pt_solutions_intersect): New functions.
      	(compute_call_used_vars): Remove.
      	(compute_may_aliases): New main entry into PTA computation.
      	* gimple.h (gimple_p): New typedef.
      	(struct gimple_statement_base): Remove references_memory_p.
      	(struct gimple_statement_with_memory_ops_base): Remove
      	vdef_ops, vuse_ops, stores and loads members.  Add vdef and vuse
      	members.
      	(gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops,
      	gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms,
      	gimple_set_references_memory): Remove.
      	(gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef,
      	gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef):
      	New functions.
      	* tree-cfg.c (move_block_to_fn): Fix off-by-one error.
      	(verify_expr): Allow RESULT_DECL.
      	(gimple_duplicate_bb): Do not copy virtual operands.
      	(gimple_duplicate_sese_region): Adjust.
      	(gimple_duplicate_sese_tail): Likewise.
      	(mark_virtual_ops_in_region): Remove.
      	(move_sese_region_to_fn): Do not call it.
      	* passes.c (init_optimization_passes): Remove pass_reset_cc_flags
      	and pass_simple_dse.
      	(execute_function_todo): Handle TODO_update_address_taken,
      	call execute_update_addresses_taken for TODO_rebuild_alias.
      	(execute_todo): Adjust.
      	(execute_one_pass): Init dump files early.
      	* ipa-struct-reorg.c (finalize_var_creation): Do not mark vars
      	call-clobbered.
      	(create_general_new_stmt): Clear vops.
      	* tree-ssa-reassoc.c (get_rank): Adjust.
      	* tree-vect-slp.c (vect_create_mask_and_perm): Do not mark
      	symbols for renaming.
      	* params.def (PARAM_MAX_ALIASED_VOPS): Remove.
      	(PARAM_AVG_ALIASED_VOPS): Likewise.
      	* tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME.
      	(duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps.
      	* tree-ssa-operands.c: Simplify for new virtual operand
      	representation.
      	(operand_build_cmp, copy_virtual_operands,
      	create_ssa_artificial_load_stmt, add_to_addressable_set,
      	gimple_add_to_addresses_taken): Remove public functions.
      	(unlink_stmt_vdef): New function.
      
      	* gcc.dg/pr19633-1.c: Adjust.
      	* gcc.dg/torture/pta-callused-1.c: Likewise.
      	* gcc.dg/torture/pr39074-2.c: Likewise.
      	* gcc.dg/torture/pr39074.c: Likewise.
      	* gcc.dg/torture/pta-ptrarith-3.c: New testcase.
      	* gcc.dg/torture/pr30375.c: Adjust.
      	* gcc.dg/torture/pr33563.c: Likewise.
      	* gcc.dg/torture/pr33870.c: Likewise.
      	* gcc.dg/torture/pr33560.c: Likewise.
      	* gcc.dg/torture/pta-structcopy-1.c: New testcase.
      	* gcc.dg/torture/ssa-pta-fn-1.c: Likewise.
      	* gcc.dg/tree-ssa/alias-15.c: Remove.
      	* gcc.dg/tree-ssa/ssa-dce-4.c: New testcase.
      	* gcc.dg/tree-ssa/pr26421.c: Adjust.
      	* gcc.dg/tree-ssa/ssa-fre-10.c: XFAIL.
      	* gcc.dg/tree-ssa/ssa-dce-5.c: New testcase.
      	* gcc.dg/tree-ssa/pr23382.c: Adjust.
      	* gcc.dg/tree-ssa/ssa-fre-20.c: New testcase.
      	* gcc.dg/tree-ssa/alias-16.c: Adjust.
      	* gcc.dg/tree-ssa/ssa-fre-13.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
      	* gcc.dg/tree-ssa/alias-18.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-15.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-lim-3.c: Likewise.
      	* gcc.dg/tree-ssa/alias-19.c: Likewise.
      	* gcc.dg/tree-ssa/pta-ptrarith-1.c: New testcase.
      	* gcc.dg/tree-ssa/pr13146.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-23.c: Likewise.
      	* gcc.dg/tree-ssa/pta-ptrarith-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-18.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-24.c: New XFAILed testcase.
      	* gcc.dg/tree-ssa/ssa-fre-19.c: New testcase.
      	* gcc.dg/tree-ssa/alias-20.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-dse-12.c: Likewise.
      	* gcc.dg/tree-ssa/pr38895.c: Likewise.
      	* gcc.dg/uninit-B.c: XFAIL.
      	* gcc.dg/vect/no-vfa-vect-43.c: Adjust.
      	* gcc.dg/uninit-pr19430.c: XFAIL.
      	* g++.dg/tree-ssa/pr13146.C: New testcase.
      	* g++.dg/opt/pr36187.C: Adjust.
      	* g++.dg/torture/20090329-1.C: New testcase.
      
      From-SVN: r145494
      Richard Guenther committed
  3. 27 Mar, 2009 2 commits
    • gimplify.c (mark_addressable): Export. · 628c189e
      2009-03-27  Richard Guenther  <rguenther@suse.de>
      
      	* gimplify.c (mark_addressable): Export.
      	* tree-flow.h (mark_addressable): Declare.
      	* tree-ssa-loop-manip.c (create_iv): Mark the base addressable.
      	* tree-ssa.c (verify_phi_args): Verify that address taken
      	variables have TREE_ADDRESSABLE set.
      
      2009-03-27  Richard Guenther  <rguenther@suse.de>
      
      	* fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ...
      	(build_fold_addr_expr_with_type): ... this.  Remove in_fold handling.
      	Do not mark decls TREE_ADDRESSABLE.
      	(build_fold_addr_expr): Adjust.
      	(fold_addr_expr): Remove.
      	(fold_unary): Use build_fold_addr_expr.
      	(fold_comparison): Likewise.
      	(split_address_to_core_and_offset): Likewise.
      	* coverage.c (tree_coverage_counter_addr): Mark the array decl
      	TREE_ADDRESSABLE.
      	* gimplify.c (mark_addressable): Do not exclude RESULT_DECLs.
      	(gimplify_modify_expr_to_memcpy): Mark source and destination
      	addressable.
      	* omp-low.c (create_omp_child_function): Mark the object decl
      	TREE_ADDRESSABLE.
      	(lower_rec_input_clauses): Mark the var we take the address of
      	TREE_ADDRESSABLE.
      	(lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE.
      
      	fortran/
      	* trans-array.c (gfc_conv_descriptor_data_addr): Use
      	gfc_build_addr_expr instead of build_fold_addr_expr.
      	(gfc_trans_allocate_array_storage, gfc_trans_array_constructor_value,
      	gfc_trans_constant_array_constructor, gfc_conv_array_data,
      	gfc_conv_expr_descriptor, gfc_conv_array_parameter): Likewise.
      	* trans-expr.c (gfc_conv_missing_dummy, gfc_conv_variable,
      	gfc_conv_function_val, gfc_conv_operator_assign,
      	gfc_conv_subref_array_arg, gfc_conv_function_call,
      	gfc_conv_expr_reference, gfc_trans_scalar_assign): Likewise.
      	* trans-intrinsic.c (gfc_conv_intrinsic_exponent,
      	gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
      	gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax_char,
      	gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_spacing,
      	gfc_conv_intrinsic_rrspacing, gfc_conv_intrinsic_set_exponent,
      	gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
      	gfc_conv_intrinsic_si_kind, gfc_conv_intrinsic_trim): Likewise.
      	* trans-io.c (gfc_trans_io_runtime_check, set_parameter_ref,
      	gfc_convert_array_to_string, gfc_trans_open, gfc_trans_close,
      	build_filepos, gfc_trans_inquire, gfc_trans_wait,
      	nml_get_addr_expr, transfer_namelist_element, build_dt,
      	gfc_trans_dt_end, transfer_array_component, transfer_expr,
      	transfer_array_desc, gfc_trans_transfer): Likewise.
      	* trans-stmt.c (gfc_trans_allocate, gfc_trans_deallocate): Likewise.
      	* trans.c (gfc_build_addr_expr): Mark the base of the address
      	TREE_ADDRESSABLE.
      
      From-SVN: r145142
      Richard Guenther committed
    • Fix for PR39557 · e9d51dc6
      From-SVN: r145119
      Xinliang David Li committed
  4. 20 Feb, 2009 1 commit
  5. 28 Jan, 2009 1 commit
  6. 26 Jan, 2009 1 commit
  7. 30 Dec, 2008 1 commit
  8. 18 Dec, 2008 1 commit
  9. 05 Nov, 2008 1 commit
    • re PR middle-end/37742 (ICE in vectorizer with restrict pointer) · f7c0ffb4
      2008-11-05  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/37742
      	* tree-ssa.c (useless_type_conversion_p_1): Check different restrict
      	qualified pointer conversion before stripping qualifiers.
      	* gimplify.c (create_tmp_from_val): Use correctly qualified type.
      	* tree-flow.h (may_propagate_address_into_dereference): Declare.
      	* tree-ssa-ccp.c (may_propagate_address_into_dereference): New function.
      	(ccp_fold): Use it.
      	* tree-ssa-forwprop.c (rhs_to_tree): Remove useless conversions,
      	properly canonicalize binary ops.
      	(forward_propagate_addr_expr_1): Use
      	may_propagate_address_into_dereference.
      
      	cp/
      	* decl.c (start_preparsed_function): Use the correct type for
      	building the RESULT_DECL.
      
      	* gcc.c-torture/compile/pr37742.c: New testcase.
      	* g++.dg/pr37742.C: Likewise.
      	* gcc.dg/tree-ssa/forwprop-7.c: Check for two volatile loads.
      
      From-SVN: r141606
      Richard Guenther committed
  10. 16 Oct, 2008 1 commit
  11. 02 Oct, 2008 1 commit
  12. 19 Sep, 2008 1 commit
    • re PR tree-optimization/30930 (vector can cause to create an extra variable,… · f22b7039
      re PR tree-optimization/30930 (vector can cause to create an extra variable, DECL_GIMPLE_REG_P not recomputed)
      
      2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR tree-opt/30930
              * tree-ssa.c (execute_update_addresses_taken): Also update
              DECL_GIMPLE_REG_P for vector and complex types.
      
      
      2008-09-19  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR tree-opt/30930
              * gcc.dg/tree-ssa/vector-2.c: New test.
              * gcc.dg/tree-ssa/vector-3.c: New test.
      
      From-SVN: r140501
      Andrew Pinski committed
  13. 11 Sep, 2008 1 commit
  14. 20 Aug, 2008 2 commits
    • re PR middle-end/179 (-Wuninitialized missing warning with &var) · 87fe2bd0
      2008-08-21  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR middle-end/179
      	* tree-ssa.c (warn_uninit): Do not warn for variables that can be
      	initialized outside the current module.
      	(warn_uninitialized_var): Ignore left-hand side when walking the
      	trees. Ignore address expressions. Examine VUSE operands in gimple
      	statements with a variable declaration on the right-hand side.
      testsuite/
      	* gcc.dg/uninit-6.c (make_something): Remove XFAIL.
      	* gcc.dg/uninit-6-O0.c (make_something): Remove XFAIL.
      	* gcc.dg/uninit-B.c (baz): Remove XFAIL.
      	* gcc.dg/uninit-B-2.c: New.
      	* gcc.dg/uninit-B-O0-2.c: New.
      	* gcc.dg/uninit-pr19430-O0.c: New.
      	* gcc.dg/uninit-pr19430.c: New.
      	* gcc.dg/uninit-pr19430-2.c: New.
      
      From-SVN: r139347
      Manuel López-Ibáñez committed
    • diagnostic.c (inform): Add an explicit location_t parameter. · 1f5b3869
      2008-08-18  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	* diagnostic.c (inform): Add an explicit location_t parameter.
      	* toplev.h (inform): Update declaration.
      	* builtins.c: Update all calls to inform.
      	* c-common.c: Likewise.
      	* c-decl.c: Likewise.
      	* c-opts.c: Likewise.
      	* c-pch.c: Likewise.
      	* c-pragma.c: Likewise.
      	* c-typeck.c: Likewise.
      	* coverage.c: Likewise.
      	* opts.c: Likewise.
      	* toplev.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-ssa.c: Likewise.
      cp/	
      	* parser.c: Update all calls to inform.
      	* typeck.c: Likewise.
      	* init.c: Likewise.
      	* class.c: Likewise.
      	* call.c: Likewise.
      	* method.c: Likewise.
      	* friend.c: Likewise.
      	* typeck2.c: Likewise.
      	* pt.c: Likewise.
      	* name-lookup.c: Likewise.
      	* lex.c: Likewise.
      
      From-SVN: r139293
      Manuel López-Ibáñez committed
  15. 10 Aug, 2008 1 commit
  16. 08 Aug, 2008 1 commit
    • re PR other/36901 (pedwarn() + -pedantic-errors + -w (inhibit_warnings) should not emit errors) · 71205d17
      2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR 36901
      	* diagnostic.def (DK_PEDWARN, DK_PERMERROR): New.  
      	* diagnostic.c (pedantic_warning_kind, permissive_error_kind):
      	Moved from diagnostic.h
      	(diagnostic_report_diagnostic): Return bool. Handle DK_PEDWARN and
      	DK_PERMERROR.
      	(emit_diagnostic): New.
      	(warning0, pedwarn0): Delete.
      	(warning, warning_at, pedwarn, permerror): Return bool.  
      	* diagnostic.h (pedantic_warning_kind, permissive_error_kind):
      	Moved to diagnostic.c.
      	(struct diagnostic_context): Use correct type for
      	classify_diagnostic.
      	(diagnostic_report_diagnostic): Update declaration.
      	(emit_diagnostic): Declare.
      	* errors.c (warning): Return bool.  
      	* errors.h (warning): Update declaration.
      	* toplev.h (warning0, pedwarn0): Delete.
      	(warning, warning_at, pedwarn, permerror): Return bool.
      	* c-errors.c (pedwarn_c99, pedwarn_c90): Use DK_PEDWARN.
      	* c-decl.c (locate_old_decl): Delete 'diag' argument. Always use
      	inform. Update all calls.
      	(diagnose_mismatched_decls): Check return value of warning/pedwarn
      	before giving informative note.
      	(implicit_decl_warning): Likewise.  
      	* c-typeck.c (build_function_call): Likewise.  
      	* tree-sssa.c (warn_uninit): Likewise.  
      	* builtins.c (gimplify_va_arg_expr): Likewise.
      fortran/
      	* f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
      	'pedwarn0'.
      cp/
      	* cp-tree.h (struct diagnostic_context, struct diagnostic_info):
      	Delete forward declarations. Check that toplev.h has not been
      	included before this file. Include toplev.h and diagnostic.h.
      	* error.c (cp_cpp_error): Use DK_PEDWARN.
      	(cxx_incomplete_type_diagnostic): Update declaration.
      	(cxx_incomplete_type_error): Use DK_ERROR.
      	* typeck2.c (cxx_incomplete_type_diagnostic): Take a diagnostic_t
      	as argument. Use emit_diagnostic.
      	(cxx_incomplete_type_error): Use DK_ERROR.
      	(add_exception_specifier): Use diagnostic_t instead of custom
      	codes.  
      	* typeck.c (complete_type_or_else): Update call to
      	cxx_incomplete_type_diagnostic.
      	* init.c (build_delete): Likewise.  
      	* call.c (diagnostic_fn_t): Remove unused typedef.
      	(build_temp): Pass a pointer to diagnostic_t.
      	(convert_like_real): Use emit_diagnostic.
      	(joust): Check return value of warning before giving informative
      	note.  
      	* friend.c (do_friend): Check return value of warning
      	before giving informative note.
      	* parser.c (cp_parser_template_id): Likewise.
      
      testsuite/
      	* gcc.dg/pr36901-1.c: New.
      	* gcc.dg/pr36901-3.c: New.
      	* gcc.dg/pr36901-2.c: New.
      	* gcc.dg/pr36901-4.c: New.
      	* gcc.dg/pr36901-system.h: New.
      	* gcc.dg/pr36901.h: New.
      	* gcc.target/powerpc/altivec-macros.c: Update.
      	* gcc.target/i386/regparm.c: Update.
      	* gcc.dg/funcdef-var-1.c: Update.
      	* gcc.dg/parm-mismatch-1.c: Update.
      	* gcc.dg/attr-noinline.c: Update.
      	* gcc.dg/wtr-static-1.c: Update.
      	* gcc.dg/redecl-11.c: Update.
      	* gcc.dg/pr27953.c: Update.
      	* gcc.dg/proto-1.c: Update.
      	* gcc.dg/decl-3.c: Update.
      	* gcc.dg/redecl-13.c: Update.
      	* gcc.dg/pr15360-1.c: Update.
      	* gcc.dg/redecl-15.c: Update.
      	* gcc.dg/enum-compat-1.c: Update.
      	* gcc.dg/dll-3.c: Update.
      	* gcc.dg/array-5.c: Update.
      	* gcc.dg/Wredundant-decls-2.c: Update.
      	* gcc.dg/inline4.c: Update.
      	* gcc.dg/redecl-2.c: Update.
      	* gcc.dg/inline-14.c: Update.
      	* gcc.dg/tls/diag-3.c: Update.
      	* gcc.dg/funcdef-var-2.c: Update.
      	* gcc.dg/20041213-1.c: Update.
      	* gcc.dg/old-style-then-proto-1.c: Update.
      	* gcc.dg/decl-2.c: Update.
      	* gcc.dg/redecl-12.c: Update.
      	* gcc.dg/decl-4.c: Update.
      	* gcc.dg/Wshadow-1.c: Update.
      	* gcc.dg/transparent-union-2.c: Update.
      	* gcc.dg/visibility-7.c: Update.
      	* gcc.dg/dll-2.c: Update.
      	* gcc.dg/redecl-16.c: Update.
      	* gcc.dg/inline1.c: Update.
      	* gcc.dg/decl-8.c: Update.
      	* gcc.dg/nested-redef-1.c: Update.
      	* gcc.dg/inline3.c: Update.
      	* gcc.dg/redecl-1.c: Update.
      	* gcc.dg/inline5.c: Update.
      	* gcc.dg/pr35899.c: Update.
      	* gcc.dg/noncompile/label-lineno-1.c: Update.
      	* gcc.dg/noncompile/label-1.c: Update.
      	* gcc.dg/noncompile/20020220-1.c: Update.
      	* gcc.dg/noncompile/redecl-1.c: Update.
      	* gcc.dg/redecl-5.c: Update.
      	* gcc.dg/qual-return-3.c: Update.
      	* gcc.dg/label-decl-4.c: Update.
      
      From-SVN: r138893
      Manuel López-Ibáñez committed
  17. 05 Aug, 2008 1 commit
  18. 28 Jul, 2008 1 commit
    • backport: ChangeLog.tuples: ChangeLog from gimple-tuples-branch. · 726a989a
      2008-07-28  Richard Guenther  <rguenther@suse.de>
      
      	Merge from gimple-tuples-branch.
      
      	* ChangeLog.tuples: ChangeLog from gimple-tuples-branch.
      	* gimple.def: New file.
      	* gsstruct.def: Likewise.
      	* gimple-iterator.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* tree-gimple.c: Removed.  Merged into ...
      	* gimple.c: ... here.  New file.
      	* tree-gimple.h: Removed.  Merged into ...
      	* gimple.h: ... here.  New file.
      
      	* Makefile.in: Add dependencies on GIMPLE_H and tree-iterator.h.
      	* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
      	--enable-checking=gimple flag.
      	* config.in: Likewise.
      	* configure: Regenerated.
      
      	* tree-ssa-operands.h: Tuplified.
      	* tree-vrp.c: Likewise.
      	* tree-loop-linear.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-complex.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tracer.c: Likewise.
      	* gengtype.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* value-prof.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* value-prof.h: Likewise.
      	* tree.c: Likewise.
      	* tree.h: Likewise.
      	* tree-pass.h: Likewise.
      	* ipa-cp.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-scalar-evolution.h: Likewise.
      	* target.h: Likewise.
      	* lambda-mat.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* diagnostic.h: Likewise.
      	* builtins.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* cfghooks.c: Likewise.
      	* fold-const.c: Likewise.
      	* cfghooks.h: Likewise.
      	* omp-low.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* ipa-reference.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* toplev.c: Likewise.
      	* tree-gimple.c: Likewise.
      	* tree-gimple.h: Likewise.
      	* tree-chrec.c: Likewise.
      	* tree-chrec.h: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* cgraphunit.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-nomudflap.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* c-format.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* ipa-utils.c: Likewise.
      	* tree-ssa-propagate.h: Likewise.
      	* tree-ssa-alias.c: Likewise.
      	* gimple-low.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* c-semantics.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* expr.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* predict.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* matrix-reorg.c: Likewise.
      	* c-decl.c: Likewise.
      	* tree-eh.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* lambda-trans.c: Likewise.
      	* function.c: Likewise.
      	* langhooks.c: Likewise.
      	* ebitmap.h: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* function.h: Likewise.
      	* langhooks.h: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa-type-escape.h: Likewise.
      	* domwalk.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* profile.c: Likewise.
      	* domwalk.h: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-data-ref.h: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* c-typeck.c: Likewise.
      	* gimplify.c: Likewise.
      	* coretypes.h: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* calls.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree.def: Likewise.
      	* tree-dfa.c: Likewise.
      	* except.c: Likewise.
      	* except.h: Likewise.
      	* cfgexpand.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-predcom.c: Likewise.
      	* lambda.h: Likewise.
      	* tree-mudflap.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* print-tree.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* ggc-page.c: Likewise.
      	* c-omp.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* lambda-code.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-iterator.c: Likewise.
      	* tree-optimize.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* cfgloop.c: Likewise.
      	* system.h: Likewise.
      	* tree-profile.c: Likewise.
      	* cfgloop.h: Likewise.
      	* c-gimplify.c: Likewise.
      	* c-common.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-flow.h: Likewise.
      	* c-common.h: Likewise.
      	* basic-block.h: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-ssa-structalias.h: Likewise.
      	* tree-cfg.c: Likewise.
      	* passes.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* cfgrtl.c: Likewise.
      	* varpool.c: Likewise.
      	* stmt.c: Likewise.
      	* tree-ssanames.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* langhooks-def.h: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32c/m32c-protos.h: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/mips/mips.c: Likewise.
      
      From-SVN: r138207
      Richard Biener committed
  19. 21 Jul, 2008 1 commit
    • Makefile.in: Replace toplev.h with TOPLEV_H. · aa14403d
      2007-07-21  Rafael Avila de Espindola  <espindola@google.com>
      
      	* Makefile.in: Replace toplev.h with TOPLEV_H.
      	* c-decl.c (merge_decls): Don't set DECL_IN_SYSTEM_HEADER.
      	* c-lex.c (fe_file_change): Don't set in_system_header.
      	* c-parser.c (c_token): Remove in_system_header.
      	(c_lex_one_token): Don't set in_system_header.
      	(c_parser_set_source_position_from_token): Don't set in_system_header.
      	* diagnostic.c (diagnostic_report_diagnostic): Use location from
      	diagnostic_info.
      	(warning_at): New.
      	* diagnostic.h (diagnostic_report_warnings_p): Add LOC argument.
      	* flags.h (in_system_header): Remove.
      	* function.c (saved_in_system_header): Remove.
      	(push_cfun): Don't set in_system_header.
      	(pop_cfun): Don't set in_system_header.
      	(push_struct_function): Don't set in_system_header.
      	* input.h (expanded_location): Add sysp.
      	(in_system_header_at): New.
      	(in_system_header): New.
      	* toplev.c (in_system_header): Remove.
      	* toplev.h: Include input.h
      	(warning_at): New.
      	* tree-cfg.c (execute_warn_function_return): Call warning_at.
      	* tree-ssa.c (warn_uninit): Call warning_at.
      	(warn_uninitialized_var): Update calls to warn_uninit.
      	(warn_uninitialized_phi): Update calls to warn_uninit.
      	* tree.c (make_node_stat): Don't set DECL_IN_SYSTEM_HEADER.
      	(expand_location): Initialize xloc.sysp.
      	* tree.h (DECL_IN_SYSTEM_HEADER): Use in_system_header_at.
      	(tree_decl_with_vis): Remove in_system_header_flag.
      
      2007-07-21  Rafael Avila de Espindola  <espindola@google.com>
      
      	* parser.c (cp_token): Remove in_system_header.
      	(eof_token): Remove in_system_header.
      	(cp_lexer_get_preprocessor_token): Don't set in_system_header.
      	(cp_lexer_set_source_position_from_token): Don't set in_system_header.
      	(cp_parser_member_declaration):  Use in_system_header_at.
      	* pt.c (lookup_template_class): Don't set DECL_IN_SYSTEM_HEADER.
      	(pop_tinst_level): Don't set in_system_header.
      	(instantiate_class_template): Don't set in_system_header.
      	(instantiate_decl): Don't set in_system_header.
      	(instantiate_pending_templates): Don't set in_system_header.
      
      From-SVN: r138031
      Rafael Avila de Espindola committed
  20. 28 Jun, 2008 1 commit
    • tree-ssa-structalias.c (callused_id, [...]): Add. · 15c15196
      2008-06-28  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-structalias.c (callused_id, var_callused,
      	callused_tree): Add.
      	(handle_pure_call): New function.
      	(find_func_aliases): Call it.
      	(find_what_p_points_to): Handle the call-used set.
      	(clobber_what_escaped): Likewise.
      	(compute_call_used_vars): New function.
      	(init_base_vars): Init the call-used variable.
      	(do_sd_constraint): Do not propagate the solution from CALLUSED
      	but use CALLUSED as a placeholder.
      	(solve_graph): Likewise.
      	* tree-flow-inline.h (gimple_call_used_vars): New function.
      	* tree-flow.h (struct gimple_df): Add call_used_vars bitmap.
      	(compute_call_used_vars): Declare.
      	* tree-ssa-alias.c (set_initial_properties): Call
      	compute_call_used_vars.
      	(reset_alias_info): Clear call-used variables.
      	(add_call_clobber_ops): Assert we are not called for const/pure
      	functions.  Remove handling of them.
      	(add_call_read_ops): Handle pure functions by adding the
      	call-used set of variables as VUSEs.
      	* tree-ssa.c (init_tree_ssa): Allocate call-used bitmap.
      	(delete_tree_ssa): Free it.
      	* tree-dfa.c (remove_referenced_var): Clear the var from the
      	call-used bitmap.
      
      	* gcc.dg/tree-ssa/pr24287.c: Remove XFAIL.
      
      From-SVN: r137222
      Richard Guenther committed
  21. 20 Jun, 2008 1 commit
    • ggc.h (GGC_RESIZEVAR): New, reorder macros. · 3d9a9f94
      	* ggc.h (GGC_RESIZEVAR): New, reorder macros.
      	* tracer.c (tail_duplicate): Fix for -Wc++-compat.
      	* tree-affine.c (aff_combination_expand, free_name_expansion):
      	Likewise.
      	* tree-cfg.c (replace_by_duplicate_decl, replace_ssa_name,
      	move_stmt_r, new_label_mapper): Likewise.
      	* tree-complex.c (cvc_lookup): Likewise.
      	* tree-dfa.c (create_function_ann): Likewise.
      	* tree-dump.c (dump_register): Likewise.
      	* tree-if-conv.c (tree_if_conversion, add_to_predicate_list,
      	find_phi_replacement_condition): Likewise.
      	* tree-inline.c (copy_phis_for_bb, estimate_num_insns_1,
      	tree_function_versioning): Likewise.
      	* tree-into-ssa.c (cmp_dfsnum): Likewise.
      	* tree-iterator.c (tsi_link_before, tsi_link_after): Likewise.
      	* tree-nested.c (lookup_field_for_decl, lookup_tramp_for_decl,
      	get_nonlocal_debug_decl, convert_nonlocal_reference,
      	convert_nonlocal_omp_clauses, get_local_debug_decl,
      	convert_local_reference, convert_local_omp_clauses,
      	convert_nl_goto_reference, convert_nl_goto_receiver,
      	convert_tramp_reference, convert_call_expr): Likewise.
      	* tree-outof-ssa.c (contains_tree_r): Likewise.
      	* tree-parloops.c (reduction_phi, initialize_reductions,
      	eliminate_local_variables_1, add_field_for_reduction,
      	add_field_for_name, create_phi_for_local_result,
      	create_call_for_reduction_1, create_loads_for_reductions,
      	create_stores_for_reduction, create_loads_and_stores_for_name):
      	Likewise.
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      	* tree-predcom.c (order_drefs, execute_pred_commoning_cbck):
      	Likewise.
      	* tree-sra.c (sra_elt_hash, sra_elt_eq, lookup_element):
      	Likewise.
      	* tree-ssa-alias.c (get_mem_sym_stats_for): Likewise.
      	* tree-ssa-coalesce.c (compare_pairs): Likewise.
      	* tree-ssa-loop-im.c (mem_ref_in_stmt, memref_hash, memref_eq,
      	memref_free, gather_mem_refs_stmt, vtoe_hash, vtoe_eq, vtoe_free,
      	record_vop_access, get_vop_accesses, get_vop_stores): Likewise.
      	* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. 
      	* tree-ssa-sccvn.c (VN_INFO_GET, free_phi, free_reference,
      	vn_nary_op_insert): Likewise.
      	* tree-ssa.c (redirect_edge_var_map_add,
      	redirect_edge_var_map_clear, redirect_edge_var_map_dup): Likewise.
      	* tree-vectorizer.c (vectorize_loops): Likewise.
      	* tree.c (make_node_stat, copy_node_stat, build_int_cst_wide,
      	build_fixed, build_real, make_tree_binfo_stat, make_tree_vec_stat,
      	tree_cons_stat, build1_stat, build_variant_type_copy,
      	decl_init_priority_lookup, decl_fini_priority_lookup,
      	decl_priority_info, decl_restrict_base_lookup,
      	decl_restrict_base_insert, decl_debug_expr_lookup,
      	decl_debug_expr_insert, decl_value_expr_lookup,
      	decl_value_expr_insert, type_hash_eq, type_hash_lookup,
      	type_hash_add, get_file_function_name, tree_check_failed,
      	tree_not_check_failed, tree_range_check_failed,
      	omp_clause_range_check_failed, build_omp_clause,
      	build_vl_exp_stat): Likewise.
      	* value-prof.c (gimple_histogram_value,
      	gimple_duplicate_stmt_histograms): Likewise.
      	* var-tracking.c (attrs_list_insert, attrs_list_copy,
      	unshare_variable, variable_union_info_cmp_pos, variable_union,
      	dataflow_set_different_1, dataflow_set_different_2,
      	vt_find_locations, variable_was_changed, set_variable_part,
      	emit_notes_for_differences_1, emit_notes_for_differences_2):
      	Likewise.
      	* varasm.c (prefix_name, emutls_decl, section_entry_eq,
      	section_entry_hash, object_block_entry_eq,
      	object_block_entry_hash, create_block_symbol,
      	initialize_cold_section_name, default_function_rodata_section,
      	strip_reg_name, set_user_assembler_name, const_desc_eq,
      	build_constant_desc, output_constant_def, lookup_constant_def,
      	const_desc_rtx_hash, const_desc_rtx_eq, const_rtx_hash_1,
      	create_constant_pool, force_const_mem, compute_reloc_for_rtx_1,
      	default_internal_label): Likewise.
      	* varray.c (varray_init, varray_grow): Likewise.
      	* vec.c (vec_gc_o_reserve_1, vec_heap_o_reserve_1): Likewise.
      
      From-SVN: r136992
      Kaveh R. Ghazi committed
  22. 12 Jun, 2008 1 commit
    • re PR tree-optimization/36345 (TBAA-pruning of points-to sets ineffective) · b3778556
      2008-06-12  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/36345
      	* tree-flow.h (struct ptr_info_def): Align escape_mask,
      	add memory_tag_needed flag.
      	(may_alias_p): Declare.
      	* tree-ssa-alias.c (may_alias_p): Export.
      	(set_initial_properties): Use memory_tag_needed flag.
      	(update_reference_counts): Likewise.
      	(reset_alias_info): Reset memory_tag_needed flag.
      	(create_name_tags): Check memory_tag_needed flag.
      	(dump_points_to_info_for): Dump it.
      	* tree-ssa-structalias.c (struct variable_info): Remove
      	directly_dereferenced flag.
      	(new_var_info): Do not initialize it.
      	(process_constraint_1): Do not set it.
      	(update_alias_info): Set is_dereferenced flag.
      	(set_uids_in_ptset): Use may_alias_p.
      	(set_used_smts): Check memory_tag_needed flag.
      	(find_what_p_points_to): Likewise.  Pass is_dereferenced flag.
      	* tree-ssa-alias.c (verify_flow_sensitive_alias_info): Check
      	memory_tag_needed flag.
      	* tree-ssa-alias-warnings.c (dsa_named_for): Try to recover
      	from broken design.
      
      	* gcc.c-torture/execute/20020619-1.c: Remove broken part of
      	the testcase.
      
      From-SVN: r136695
      Richard Guenther committed
  23. 06 Jun, 2008 1 commit
    • cgraph.c: Fix typos in comments. · fa10beec
      gcc/
      	* cgraph.c: Fix typos in comments.
      	(cgraph_availability_names): Fix string typo.
      	* fold-const.c: Fix typos in comments.
      	(fold_binary): Fix typo in warning.
      	* genautomata.c: Fix typos in comments.
      	(check_presence_pattern_sets): Fix typo in local variable.
      	(output_description): Fix typo in output.
      	* ggc-zone.c (ggc_pch_finish): Fix typo in error message.
      	* hwint.h: Likewise.
      	* matrix-reorg.c (check_allocation_function): Likewise.
      	* omega.c (smooth_weird_equations): Likewise.
      	* auto-inc-dec.c: Fix typos in comments.
      	* bb-reorder.c: Likewise.
      	* builtins.c: Likewise.
      	* c-common.c: Likewise.
      	* c-cppbuiltin.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-pretty-print.c: Likewise.
      	* cfgcleanup.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfghooks.c: Likewise.
      	* cfglayout.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* coverage.c: Likewise.
      	* dbxout.c: Likewise.
      	* df-byte-scan.c: Likewise.
      	* df-core.c: Likewise.
      	* df-problems.c: Likewise.
      	* df-scan.c: Likewise.
      	* dfp.c: Likewise.
      	* dominance.c: Likewise.
      	* domwalk.c: Likewise.
      	* dse.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* et-forest.c: Likewise.
      	* function.c: Likewise.
      	* function.h: Likewise.
      	* gcc.c: Likewise.
      	* gcov-io.c: Likewise.
      	* gcov.c: Likewise.
      	* gcse.c: Likewise.
      	* genattrtab.c: Likewise.
      	* ggc-page.c: Likewise.
      	* gimplify.c: Likewise.
      	* gthr-lynx.h: Likewise.
      	* haifa-sched.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-struct-reorg.h: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* ipa.c: Likewise.
      	* loop-doloop.c: Likewise.
      	* mips-tfile.c: Likewise.
      	* mkmap-flat.awk: Likewise.
      	* mkmap-symver.awk: Likewise.
      	* modulo-sched.c: Likewise.
      	* omp-low.c: Likewise.
      	* optabs.c: Likewise.
      	* optabs.h: Likewise.
      	* opts.c: Likewise.
      	* passes.c: Likewise.
      	* postreload-gcse.c: Likewise.
      	* postreload.c: Likewise.
      	* predict.c: Likewise.
      	* pretty-print.h: Likewise.
      	* profile.c: Likewise.
      	* protoize.c: Likewise.
      	* ra-conflict.c: Likewise.
      	* real.c: Likewise.
      	* recog.c: Likewise.
      	* regclass.c: Likewise.
      	* regs.h: Likewise.
      	* reload.c: Likewise.
      	* rtl-error.c: Likewise.
      	* rtlanal.c: Likewise.
      	* scan.h: Likewise.
      	* sched-rgn.c: Likewise.
      	* see.c: Likewise.
      	* stmt.c: Likewise.
      	* target.h: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-flow-inline.h: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-pass.h: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-alias-warnings.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-live.h: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-vect-analyze.c: Likewise.
      	* tree-vect-transform.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vn.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tree.def: Likewise.
      	* tree.h: Likewise.
      	* unwind-dw2-fde.c: Likewise.
      	* unwind.inc: Likewise.
      	* value-prof.c: Likewise.
      	* vmsdbgout.c: Likewise.
      
      From-SVN: r136425
      Ralf Wildenhues committed
  24. 29 May, 2008 1 commit
    • re PR tree-optimization/36343 (Wrong code due to bad TBAA pruning of… · 2f571334
      re PR tree-optimization/36343 (Wrong code due to bad TBAA pruning of points-to-sets and use in call clobbering)
      
      2008-05-29  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/36343
      	PR tree-optimization/36346
      	PR tree-optimization/36347
      	* tree-flow.h (clobber_what_p_points_to): Declare.
      	* tree-ssa-structalias.c (set_uids_in_ptset): Whether the
      	pointed-to variable is dereferenced is irrelevant to whether
      	the pointer can access the pointed-to variable.
      	(clobber_what_p_points_to): New function.
      	* tree-ssa-alias.c (set_initial_properties): Use it.
      	* tree-ssa.c (verify_flow_sensitive_alias_info): Adjust
      	call clobber check for NMTs.
      
      	* gcc.c-torture/execute/pr36343.c: New testcase.
      
      From-SVN: r136152
      Richard Guenther committed
  25. 28 May, 2008 1 commit
    • re PR tree-optimization/36291 (GCC is slow and memory-hungry building sipQtGuipart.cpp) · 540f6bda
      2008-05-28  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/36291
      	* tree-flow. h (struct gimple_df): Remove var_anns member.
      	* tree-flow-inline.h (gimple_var_anns): Remove.
      	(var_ann): Simplify.
      	* tree-dfa.c (create_var_ann): Simplify.
      	(remove_referenced_var): Clear alias info from var_anns of globals.
      	* tree-ssa.c (init_tree_ssa): Do not allocate var_anns.
      	(delete_tree_ssa): Clear alias info from var_anns of globals.
      	Do not free var_anns.
      	(var_ann_eq): Remove.
      	(var_ann_hash): Likewise.
      
      From-SVN: r136095
      Richard Guenther committed
  26. 13 May, 2008 1 commit
    • tree.h (init_phinodes, [...]): Move ... · 5db9ba0c
      2008-05-13  Diego Novillo  <dnovillo@google.com>
      	    Kenneth Zadeck  <zadeck@naturalbridge.com>
      
      	http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00748.html
      
      	* tree.h (init_phinodes, fini_phinodes, release_phi_node,
      	phinodes_print_statistics, init_ssanames, fini_ssanames,
      	make_ssa_name, duplicate_ssa_name,
      	duplicate_ssa_name_ptr_info, release_ssa_name,
      	release_defs, replace_ssa_name_symbol,
      	ssanames_print_statistics): Move ...
      	* tree-flow.h: ... here.
      	* tree-ssanames.c (init_ssanames): Add arguments FN and
      	SIZE.  Use FN instead of cfun.
      	(make_ssa_name_fn): Rename from make_ssa_name.
      	(pass_release_ssa_names): Add TODO_dump_func to finish
      	flags.
      	* tree-flow-inline.h (make_ssa_name): Move from
      	tree-ssanames.c.  Convert to static inline.  Call
      	make_ssa_name_fn.
      	* omp-low.c (expand_omp_parallel):
      	* tree-flow-inline.h (redirect_edge_var_map_result):
      	* tree-ssa.c (init_tree_ssa): Add argument FN.  Use it
      	instead of cfun.
      	Update all users.
      
      
      
      Co-Authored-By: Kenneth Zadeck <zadeck@naturalbridge.com>
      
      From-SVN: r135270
      Diego Novillo committed
  27. 09 May, 2008 1 commit
    • pa.c (reloc_needed): Use CASE_CONVERT. · 1043771b
              * config/pa/pa.c (reloc_needed): Use CASE_CONVERT.
      
              * tree-cfg.c (verify_expr, verify_gimple_expr): Likewise.
      
              * tree-ssa-structalias.c (get_constraint_for): Likewise.
      
              * c-common.c (c_common_truthvalue_conversion): Likewise.
      
              * tree-object-size.c (compute_object_offset): Likewise.
      
              * tree-inline.c (estimate_num_insns_1): Likewise.
      
              * varasm.c (const_hash_1, compare_constant, copy_constant)
              (compute_reloc_for_constant, output_addressed_constants)
              (initializer_constant_valid_p): Likewise.
      
              * c-omp.c (check_omp_for_incr_expr): Likewise.
      
              * gimplify.c (gimplify_expr): Likewise.
      
              * c-typeck.c (c_finish_return): Likewise.
      
              * tree-vectorizer.c (supportable_widening_operation)
              (supportable_narrowing_operation): Likewise.
      
              * c-pretty-print.c (pp_c_cast_expression, pp_c_expression):
              Likewise.
      
              * matrix-reorg.c (can_calculate_expr_before_stmt): Likewise.
      
              * expr.c (highest_pow2_factor, expand_expr_real_1): Likewise.
      
              * dwarf2out.c (loc_descriptor_from_tree_1, add_bound_info)
              (descr_info_loc): Likewise.
      
              * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Likewise.
      
              * fold-const.c (operand_equal_p, make_range, extract_muldiv_1)
              (fold_unary): Likewise.
      
              * builtins.c (get_pointer_alignment): Likewise.
      
              * tree-scalar-evolution.c (interpret_rhs_modify_stmt)
              (instantiate_parameters_1): Likewise.
      
              * tree.c (expr_align, stabilize_reference): Likewise.
      
              * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
      
              * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
      
              * convert.c (strip_float_extensions): Use CONVERT_EXPR_P.
      
              * tree-ssa-threadedge.c (simplify_control_stmt_condition):
              Likewise.
      
              * config/alpha/alpha.c (va_list_skip_additions): Likewise.
      
              * c-common.c (c_alignof_expr, check_function_arguments_recurse):
              Likewise.
      
              * tree-ssa.c (tree_ssa_useless_type_conversion): Likewise.
      
              * varasm.c (initializer_constant_valid_p, output_constant):
              Likewise.
      
              * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
              (forward_propagate_addr_expr_1, forward_propagate_addr_expr)
              (forward_propagate_comparison)
              (tree_ssa_forward_propagate_single_use_vars): Likewise.
      
              * cfgexpand.c (discover_nonconstant_array_refs_r): Likewise.
      
              * emit-rtl.c (component_ref_for_mem_expr)
              (set_mem_attributes_minus_bitpos): Likewise.
      
              * tree-ssa-phiopt.c (conditional_replacement): Likewise.
      
              * gimplify.c (gimplify_conversion, goa_lhs_expr_p,
              gimplify_expr): Likewise.
      
              * c-typeck.c (default_function_array_conversion,
              build_indirect_ref)
              (build_function_call, pointer_diff, build_compound_expr)
              (c_finish_return): Likewise.
      
              * tree-vect-analyze.c (vect_determine_vectorization_factor):
              Likewise.
      
              * matrix-reorg.c (get_inner_of_cast_expr,
              may_flatten_matrices_1): Likewise.
      
              * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
      
              * expr.c (is_aligning_offset): Likewise.
      
              * tree-ssa-alias.c (is_escape_site): Likewise.
      
              * tree-stdarg.c (va_list_counter_bump, check_va_list_escapes)
              (check_all_va_list_escapes): Likewise.
      
              * tree-ssa-loop-ivopts.c (determine_base_object)
              (determine_common_wider_type): Likewise.
      
              * dojump.c (do_jump): Likewise.
      
              * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
      
              * tree-gimple.c (is_gimple_cast): Likewise.
      
              * fold-const.c (decode_field_reference, )
              (fold_sign_changed_comparison, fold_unary, fold_comparison)
              (fold_binary): Likewise.
      
              * tree-ssa-alias-warnings.c (find_alias_site_helper)
              (already_warned_in_frontend_p): Likewise.
      
              * builtins.c (get_memory_rtx, fold_builtin_next_arg): Likewise.
      
              * tree.c (really_constant_p, get_unwidened): Likewise.
      
              * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
      
              * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
      
              * tree-vrp.c (register_edge_assert_for_2,
              register_edge_assert_for_1): Likewise.
      
              * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Use
              CONVERT_EXPR_P.
              (CONVERT_EXPR_P): Define.
              (CASE_CONVERT): Define.
      
      From-SVN: r135114
      Tomas Bily committed
  28. 08 May, 2008 1 commit
    • tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS. · 5611cf0b
      2008-05-08  Richard Guenther  <rguenther@suse.de>
      
      	* tree-data-ref.c (dr_analyze_alias): Do not set DR_SUBVARS.
      	* tree-data-ref.h (struct dr_alias): Remove subvars field.
      	(DR_SUBVARS): Remove.
      	* tree-dfa.c (dump_subvars_for): Remove.
      	(debug_subvars_for): Likewise.
      	(dump_variable): Do not dump subvars.
      	(remove_referenced_var): Do not remove subvars.
      	* tree-flow-inline.h (clear_call_clobbered): SFTs no longer exist.
      	(lookup_subvars_for_var): Remove.
      	(get_subvars_for_var): Likewise.
      	(get_subvars_at): Likewise.
      	(get_first_overlapping_subvar): Likewise.
      	(overlap_subvar): Likewise.
      	* tree-flow.h (subvar_t): Remove.
      	(struct var_ann_d): Remove subvars field.
      	* tree-ssa-alias.c (mark_aliases_call_clobbered): Remove queued
      	argument.  Remove special handling of SFTs.
      	(compute_tag_properties): Likewise.
      	(set_initial_properties): Likewise.
      	(compute_call_clobbered): Likewise.
      	(count_mem_refs): Likewise.
      	(compute_memory_partitions): Likewise.
      	(compute_flow_insensitive_aliasing): Likewise.
      	(setup_pointers_and_addressables): Likewise.
      	(new_type_alias): Likewise.
      	(struct used_part): Remove.
      	(used_portions): Likewise.
      	(struct used_part_map): Likewise.
      	(used_part_map_eq): Likewise.
      	(used_part_map_hash): Likewise.
      	(free_used_part_map): Likewise.
      	(up_lookup): Likewise.
      	(up_insert): Likewise.
      	(get_or_create_used_part_for): Likewise.
      	(create_sft): Likewise.
      	(create_overlap_variables_for): Likewise.
      	(find_used_portions): Likewise.
      	(create_structure_vars): Likewise.
      	* tree.def (STRUCT_FIELD_TAG): Remove.
      	* tree.h (MTAG_P): Adjust.
      	(struct tree_memory_tag): Remove base_for_components and
      	unpartitionable flags.
      	(struct tree_struct_field_tag): Remove.
      	(SFT_PARENT_VAR): Likewise.
      	(SFT_OFFSET): Likewise.
      	(SFT_SIZE): Likewise.
      	(SFT_NONADDRESSABLE_P): Likewise.
      	(SFT_ALIAS_SET): Likewise.
      	(SFT_UNPARTITIONABLE_P): Likewise.
      	(SFT_BASE_FOR_COMPONENTS_P): Likewise.
      	(union tree_node): Remove sft field.
      	* alias.c (get_alias_set): Remove special handling of SFTs.
      	* print-tree.c (print_node): Remove handling of SFTs.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* tree-into-ssa.c (mark_sym_for_renaming): Likewise.
      	* tree-nrv.c (dest_safe_for_nrv_p): Remove special handling of SFTs.
      	* tree-predcom.c (set_alias_info): Do not set subvars.
      	* tree-pretty-print.c (dump_generic_node): Do not handle SFTs.
      	* tree-ssa-loop-ivopts.c (get_ref_tag): Likewise.
      	* tree-ssa-operands.c (access_can_touch_variable): Likewise.
      	(add_vars_for_offset): Remove.
      	(add_virtual_operand): Remove special handling of SFTs.
      	(add_call_clobber_ops): Likewise.
      	(add_call_read_ops): Likewise.
      	(get_asm_expr_operands): Likewise.
      	(get_modify_stmt_operands): Likewise.
      	(get_expr_operands): Likewise.
      	(add_to_addressable_set): Likewise.
      	* tree-ssa.c (verify_ssa_name): Do not handle SFTs.
      	* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
      	* tree-vect-transform.c (vect_create_data_ref_ptr): Do not
      	set subvars.
      	* tree.c (init_ttree): Remove STRUCT_FIELD_TAG initialization.
      	(tree_code_size): Remove STRUCT_FIELD_TAG handling.
      	(tree_node_structure): Likewise.
      	* tree-ssa-structalias.c (set_uids_in_ptset): Remove special
      	handling of SFTs.
      	(find_what_p_points_to): Likewise.
      
      From-SVN: r135077
      Richard Guenther committed
  29. 20 Mar, 2008 1 commit
  30. 19 Mar, 2008 2 commits
    • re PR other/35094 (RTL dump file letters hosed and partly undocumented) · 8ddbbcae
      	* gcc.dg/20050811-2.c: Update dumping flags.
      	* gcc.dg/sms-2.c: Update dumping flags.
      	* gcc.dg/var-expand1.c: Update dumping flags.
      	* gcc.dg/var-expand3.c: Update dumping flags.
      	* gcc.dg/pr30957-1.c: Update dumping flags.
      	* gcc.dg/20050811-1.c: Update dumping flags.
      	* gcc.dg/cpp/cmdlne-dI-M.C: Do not xfail.
      	* gcc.dg/cpp/cmdlne-dM-M.C: Do not xfail.
      
      	PR other/35094
      	* toplev.c (decode_d_option): Handle all CPP flags.
      	* tree-vrp.c: Update tree_pass descriptors.
      	* regrename.c: Update tree_pass descriptors.
      	* fwprop.c: Update tree_pass descriptors.
      	* doc/invoke.texi: Remove documentation of dropped -d? flags.
      	* tree-into-ssa.c: Update tree_pass descriptors.
      	* tree-dump.c: Update tree_pass descriptors.
      	* tree-complex.c: Update tree_pass descriptors.
      	* tree-dump.h: Update tree_pass descriptors.
      	* see.c: Update tree_pass descriptors.
      	* cgraphbuild.c: Update tree_pass descriptors.
      	* tracer.c: Update tree_pass descriptors.
      	* tree-loop-distribution.c: Update tree_pass descriptors.
      	* cgraph.c: Update tree_pass descriptors.
      	* postreload-gcse.c: Update tree_pass descriptors.
      	* postreload.c: Update tree_pass descriptors.
      	* tree-ssa-loop-ch.c: Update tree_pass descriptors.
      	* tree-tailcall.c: Update tree_pass descriptors.
      	* tree-pass.h (tree_opt_pass): Rename to ...
      	(opt_pass) ... this one; add "type" field and remove letter field.
      	(gimple_opt_pass, rtl_opt_pass, simple_ipa_opt_pass): New.
      	(execute_pass_list, execute_ipa_pass_list, all_passes, all_ipa_passes,
      	all_lowering_passes): Update declaration.
      	* ipa-cp.c: Update tree_pass descriptors.
      	* final.c: Update tree_pass descriptors.
      	* omp-low.c: Update tree_pass descriptors.
      	* tree-ssa-dse.c: Update tree_pass descriptors.
      	* ipa-reference.c: Update tree_pass descriptors.
      	* tree-ssa-uncprop.c: Update tree_pass descriptors.
      	* auto-inc-dec.c: Update tree_pass descriptors.
      	* reorg.c: Update tree_pass descriptors.
      	* cgraphunit.c: Update tree_pass descriptors.
      	* tree-ssa-copyrename.c: Update tree_pass descriptors.
      	* tree-ssa-ccp.c: Update tree_pass descriptors.
      	* df-core.c: Update tree_pass descriptors.
      	* mode-switching.c: Update tree_pass descriptors.
      	* tree-nomudflap.c: Update tree_pass descriptors.
      	* modulo-sched.c: Update tree_pass descriptors.
      	* ipa-pure-const.c: Update tree_pass descriptors.
      	* cse.c: Update tree_pass descriptors.
      	* web.c: Update tree_pass descriptors.
      	* tree-stdarg.c: Update tree_pass descriptors.
      	* tree-ssa-math-opts.c: Update tree_pass descriptors.
      	* tree-ssa-dom.c: Update tree_pass descriptors.
      	* tree-nrv.c: Update tree_pass descriptors.
      	* tree-ssa-alias.c: Update tree_pass descriptors.
      	* loop-init.c: Update tree_pass descriptors.
      	* gimple-low.c: Update tree_pass descriptors.
      	* ipa-inline.c: Update tree_pass descriptors.
      	* tree-ssa-sink.c: Update tree_pass descriptors.
      	* global.c: Update tree_pass descriptors.
      	* ifcvt.c: Update tree_pass descriptors.
      	* jump.c: Update tree_pass descriptors.
      	* predict.c: Update tree_pass descriptors.
      	* tree-ssa-loop.c: Update tree_pass descriptors.
      	* recog.c: Update tree_pass descriptors.
      	* dse.c: Update tree_pass descriptors.
      	* tree-ssa-ifcombine.c: Update tree_pass descriptors.
      	* tree-eh.c: Update tree_pass descriptors.
      	* regmove.c: Update tree_pass descriptors.
      	* local-alloc.c
      	* function.c: Update tree_pass descriptors.
      	* tree-vectorizer.c: Update tree_pass descriptors.
      	* gcse.c: Update tree_pass descriptors.
      	* ipa-type-escape.c: Update tree_pass descriptors.
      	* tree-if-conv.c: Update tree_pass descriptors.
      	* init-regs.c: Update tree_pass descriptors.
      	* ipa.c: Update tree_pass descriptors.
      	* tree-ssa-phiopt.c: Update tree_pass descriptors.
      	* rtl-factoring.c: Update tree_pass descriptors.
      	* lower-subreg.c: Update tree_pass descriptors.
      	* bt-load.c: Update tree_pass descriptors.
      	* tree-dfa.c: Update tree_pass descriptors.
      	* except.c: Update tree_pass descriptors.
      	* emit-rtl.c: Update tree_pass descriptors.
      	* cfgexpand.c: Update tree_pass descriptors.
      	* tree-cfgcleanup.c: Update tree_pass descriptors.
      	* cfgcleanup.c: Update tree_pass descriptors.
      	* tree-ssa-pre.c: Update tree_pass descriptors.
      	* tree-sra.c: Update tree_pass descriptors.
      	* tree-mudflap.c: Update tree_pass descriptors.
      	* tree-ssa-copy.c: Update tree_pass descriptors.
      	* cfglayout.c: Update tree_pass descriptors.
      	* tree-ssa-forwprop.c: Update tree_pass descriptors.
      	* tree-ssa-dce.c: Update tree_pass descriptors.
      	* tree-ssa.c: Update tree_pass descriptors.
      	* regclass.c: Update tree_pass descriptors.
      	* integrate.c: Update tree_pass descriptors.
      	* tree-optimize.c: Update tree_pass descriptors.
      	* tree-ssa-phiprop.c: Update tree_pass descriptors.
      	* tree-object-size.c: Update tree_pass descriptors.
      	* combine.c: Update tree_pass descriptors.
      	* tree-outof-ssa.c: Update tree_pass descriptors.
      	* bb-reorder.c: Update tree_pass descriptors.
      	* stack-ptr-mod.c: Update tree_pass descriptors.
      	* var-tracking.c: Update tree_pass descriptors.
      	* tree-profile.c: Update tree_pass descriptors.
      	* tree-vect-generic.c: Update tree_pass descriptors.
      	* reg-stack.c: Update tree_pass descriptors.
      	* sched-rgn.c: Update tree_pass descriptors.
      	* tree-ssa-structalias.c: Update tree_pass descriptors.
      	* tree-cfg.c: Update tree_pass descriptors.
      	* passes.c (current_pass): Update declaration.
      	(finish_optimization_passes): Update.
      	(all_passes, all_ipa_passes, all_lowering_passes): Update declaration.
      	(register_one_dump_file, register_dump_files_1, next_pass_1):
       	Update arguments.
      	(init_optimization_passes): Update handling of new types.
      	(execute_one_pass, execute_pass_list, execute_ipa_pass_list): Update.
      	* ipa-struct-reorg.c: Update tree_pass descriptors.
      	* tree-ssa-reassoc.c: Update tree_pass descriptors.
      	* combine-stack-adj.c: Update tree_pass descriptors.
      	* cfgrtl.c: Update tree_pass descriptors.
      	* dce.c: Update tree_pass descriptors.
      	* tree-ssanames.c: Update tree_pass descriptors.
      
      From-SVN: r133342
      Jan Hubicka committed
    • re PR tree-optimization/35609 ("is used uninitialized in this function" should be may warning) · 8cb3ee37
      2008-03-19  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/35609
      	* tree-ssa.c (always_executed): New global flag.
      	(warn_uninitialized_var): If !always_executed warn with "maybe"
      	instead of "is".
      	(execute_early_warn_uninitialized): Compute post-dominators.
      	Initialize always_executed before processing each basic block.
      
      	* gcc.dg/testsuite/uninit-15.c: New testcase.
      	* gcc.dg/testsuite/uninit-16.c: Likewise.
      
      From-SVN: r133341
      Richard Guenther committed
  31. 05 Mar, 2008 1 commit
    • cfg.c: Include tree-flow.h. · ea7e6d5a
              * cfg.c: Include tree-flow.h.
              (remove_edge_raw): Call redirect_edge_var_map_clear.
              (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
              * tree-flow-inline.h (redirect_edge_var_map_def): New.
              (redirect_edge_var_map_result): New.
              * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
              PENDING_STMT use with redirect_edge_var_map_*.
              * tree-ssa.c (edge_var_maps): New definition.
              (redirect_edge_var_map_add): New.
              (redirect_edge_var_map_clear): New.
              (redirect_edge_var_map_dup): New.
              (redirect_edge_var_map_vector): New.
              (redirect_edge_var_map_destroy): New.
              (ssa_redirect_edge): Replace PENDING_STMT use with
              redirect_edge_var_map_*.
              (flush_pending_stmts): Same.
              (delete_tree_ssa): Destroy edge var map.
              * tree-flow.h (struct _edge_var_map): New.
              Define edge_var_map vector type.
              Declare redirect_edge_var_map_* prototypes.
              * Makefile.in (cfg.o): Depend on TREE_FLOW_H.
              * tree-cfg.c (reinstall_phi_args): Replace
              PENDING_STMT use with redirect_edge_var_map_*.
      
      From-SVN: r132903
      Aldy Hernandez committed
  32. 28 Feb, 2008 1 commit
    • revert: tree-flow.h (uid_decl_map_hash, [...]): Move ... · 3b302421
      2008-02-28  Richard Guenther  <rguenther@suse.de>
      
              Revert:
              2008-02-26  Richard Guenther  <rguenther@suse.de>
      
      	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
      	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
      	(lookup_decl_from_uid): Declare.
      	(remove_decl_from_map): Likewise.
      	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
      	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
      	(decl_for_uid_map): New global hashtable mapping DECL_UID
      	to the decl tree.
      	(init_ttree): Allocate it.
      	(insert_decl_to_uid_decl_map): New helper function.
      	(make_node_stat): Insert new decls into the map.
      	(copy_node_stat): Likewise.
      	(lookup_decl_from_uid): New function.
      	(remove_decl_from_map): Likewise.
      	(print_decl_for_uid_map_statistics): New helper.
      	(dump_tree_statistics): Call it.
      
      	cp/
      	* decl.c (duplicate_decls): Remove decl from global mapping
      	before ggc_freeing it.
      
      	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
      	(referenced_var_iterator): Adjust.
      	(FOR_EACH_REFERENCED_VAR): Adjust.
      	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
      	(num_referenced_vars): Adjust.
      	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
      	(first_referenced_var): Remove.
      	(end_referenced_vars_p): Likewise.
      	(next_referenced_var): Likewise.
      	(referenced_var_iterator_set): New helper function.
      	* tree-dfa.c (referenced_var_lookup): Adjust.
      	(referenced_var_check_and_insert): Likewise.
      	(remove_referenced_var): Likewise.
      	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(verify_call_clobbering): Likewise.
      	(verify_memory_partitions): Likewise.
      	(init_tree_ssa): Allocate bitmap instead of hashtable for
      	referenced_vars.
      	(delete_tree_ssa): Adjust.
      	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(compute_tag_properties): Likewise.
      	(set_initial_properties): Likewise.
      	(find_partition_for): Likewise.
      	(update_reference_counts): Likewise.
      	(dump_may_aliases_for): Likewise.
      	* tree-ssa-operands.c (add_virtual_operand): Likewise.
      	(add_call_clobber_ops): Likewise.
      	(add_call_read_ops): Likewise.
      	(get_asm_expr_operands): Likewise.
      	* tree-into-ssa.c (dump_decl_set): Likewise.
      	(update_ssa): Likewise.
      	* tree-sra.c (scan_function): Likewise.
      	(decide_instantiations): Likewise.
      	(scalarize_parms): Likewise.
      	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
      	(dsa_named_for): Likewise.
      	* tree-ssa-structalias.c (update_alias_info): Likewise.
      	(merge_smts_into): Likewise.
      
      From-SVN: r132740
      Richard Guenther committed
  33. 26 Feb, 2008 1 commit
    • tree-flow.h (uid_decl_map_hash, [...]): Move ... · bbd59cf4
      2008-02-26  Richard Guenther  <rguenther@suse.de>
      
      	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
      	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
      	(lookup_decl_from_uid): Declare.
      	(remove_decl_from_map): Likewise.
      	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
      	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
      	(decl_for_uid_map): New global hashtable mapping DECL_UID
      	to the decl tree.
      	(init_ttree): Allocate it.
      	(insert_decl_to_uid_decl_map): New helper function.
      	(make_node_stat): Insert new decls into the map.
      	(copy_node_stat): Likewise.
      	(lookup_decl_from_uid): New function.
      	(remove_decl_from_map): Likewise.
      	(print_decl_for_uid_map_statistics): New helper.
      	(dump_tree_statistics): Call it.
      
      	cp/
      	* decl.c (duplicate_decls): Remove decl from global mapping
      	before ggc_freeing it.
      
      	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
      	(referenced_var_iterator): Adjust.
      	(FOR_EACH_REFERENCED_VAR): Adjust.
      	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
      	(num_referenced_vars): Adjust.
      	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
      	(first_referenced_var): Remove.
      	(end_referenced_vars_p): Likewise.
      	(next_referenced_var): Likewise.
      	(referenced_var_iterator_set): New helper function.
      	* tree-dfa.c (referenced_var_lookup): Adjust.
      	(referenced_var_check_and_insert): Likewise.
      	(remove_referenced_var): Likewise.
      	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(verify_call_clobbering): Likewise.
      	(verify_memory_partitions): Likewise.
      	(init_tree_ssa): Allocate bitmap instead of hashtable for
      	referenced_vars.
      	(delete_tree_ssa): Adjust.
      	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(compute_tag_properties): Likewise.
      	(set_initial_properties): Likewise.
      	(find_partition_for): Likewise.
      	(update_reference_counts): Likewise.
      	(dump_may_aliases_for): Likewise.
      	* tree-ssa-operands.c (add_virtual_operand): Likewise.
      	(add_call_clobber_ops): Likewise.
      	(add_call_read_ops): Likewise.
      	(get_asm_expr_operands): Likewise.
      	* tree-into-ssa.c (dump_decl_set): Likewise.
      	(update_ssa): Likewise.
      	* tree-sra.c (scan_function): Likewise.
      	(decide_instantiations): Likewise.
      	(scalarize_parms): Likewise.
      	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
      	(dsa_named_for): Likewise.
      	* tree-ssa-structalias.c (update_alias_info): Likewise.
      	(merge_smts_into): Likewise.
      
      From-SVN: r132676
      Richard Guenther committed
  34. 25 Feb, 2008 2 commits
    • revert: tree-flow.h (uid_decl_map_hash, [...]): Move ... · 381a258b
      2008-02-25  Richard Guenther  <rguenther@suse.de>
      
      	Revert:
      	2008-02-25  Richard Guenther  <rguenther@suse.de>
      
      	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
      	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
      	(lookup_decl_from_uid): Declare.
      	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
      	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
      	(decl_for_uid_map): New global hashtable mapping DECL_UID
      	to the decl tree.
      	(init_ttree): Allocate it.
      	(insert_decl_to_uid_decl_map): New helper function.
      	(make_node_stat): Insert new decls into the map.
      	(copy_node_stat): Likewise.
      	(lookup_decl_from_uid): New function.
      	(print_decl_for_uid_map_statistics): New helper.
      	(dump_tree_statistics): Call it.
      
      	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
      	(referenced_var_iterator): Adjust.
      	(FOR_EACH_REFERENCED_VAR): Adjust.
      	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
      	(num_referenced_vars): Adjust.
      	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
      	(first_referenced_var): Remove.
      	(end_referenced_vars_p): Likewise.
      	(next_referenced_var): Likewise.
      	(referenced_var_iterator_set): New helper function.
      	* tree-dfa.c (referenced_var_lookup): Adjust.
      	(referenced_var_check_and_insert): Likewise.
      	(remove_referenced_var): Likewise.
      	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(verify_call_clobbering): Likewise.
      	(verify_memory_partitions): Likewise.
      	(init_tree_ssa): Allocate bitmap instead of hashtable for
      	referenced_vars.
      	(delete_tree_ssa): Adjust.
      	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(compute_tag_properties): Likewise.
      	(set_initial_properties): Likewise.
      	(find_partition_for): Likewise.
      	(update_reference_counts): Likewise.
      	(dump_may_aliases_for): Likewise.
      	* tree-ssa-operands.c (add_virtual_operand): Likewise.
      	(add_call_clobber_ops): Likewise.
      	(add_call_read_ops): Likewise.
      	(get_asm_expr_operands): Likewise.
      	* tree-into-ssa.c (dump_decl_set): Likewise.
      	(update_ssa): Likewise.
      	* tree-sra.c (scan_function): Likewise.
      	(decide_instantiations): Likewise.
      	(scalarize_parms): Likewise.
      	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
      	(dsa_named_for): Likewise.
      	* tree-ssa-structalias.c (update_alias_info): Likewise.
      	(merge_smts_into): Likewise.
      
      From-SVN: r132643
      Richard Guenther committed
    • tree-flow.h (uid_decl_map_hash, [...]): Move ... · 7660c722
      2008-02-25  Richard Guenther  <rguenther@suse.de>
      
      	* tree-flow.h (uid_decl_map_hash, uid_decl_map_eq): Move ...
      	* tree.h (uid_decl_map_hash, uid_decl_map_eq): ... here.
      	(lookup_decl_from_uid): Declare.
      	* tree-ssa.c (uid_decl_map_eq, uid_decl_map_hash): Move ...
      	* tree.c (uid_decl_map_eq, uid_decl_map_hash): ... here.
      	(decl_for_uid_map): New global hashtable mapping DECL_UID
      	to the decl tree.
      	(init_ttree): Allocate it.
      	(insert_decl_to_uid_decl_map): New helper function.
      	(make_node_stat): Insert new decls into the map.
      	(copy_node_stat): Likewise.
      	(lookup_decl_from_uid): New function.
      	(print_decl_for_uid_map_statistics): New helper.
      	(dump_tree_statistics): Call it.
      
      	* tree-flow.h (struct gimple_df): Make referenced_vars a bitmap.
      	(referenced_var_iterator): Adjust.
      	(FOR_EACH_REFERENCED_VAR): Adjust.
      	(FOR_EACH_REFERENCED_VAR_IN_BITMAP): New iterator.
      	(num_referenced_vars): Adjust.
      	* tree-flow-inline.h (gimple_referenced_vars): Adjust.
      	(first_referenced_var): Remove.
      	(end_referenced_vars_p): Likewise.
      	(next_referenced_var): Likewise.
      	(referenced_var_iterator_set): New helper function.
      	* tree-dfa.c (referenced_var_lookup): Adjust.
      	(referenced_var_check_and_insert): Likewise.
      	(remove_referenced_var): Likewise.
      	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(verify_call_clobbering): Likewise.
      	(verify_memory_partitions): Likewise.
      	(init_tree_ssa): Allocate bitmap instead of hashtable for
      	referenced_vars.
      	(delete_tree_ssa): Adjust.
      	* tree-ssa-alias.c (mark_aliases_call_clobbered): Use
      	FOR_EACH_REFERENCED_VAR_IN_BITMAP.
      	(compute_tag_properties): Likewise.
      	(set_initial_properties): Likewise.
      	(find_partition_for): Likewise.
      	(update_reference_counts): Likewise.
      	(dump_may_aliases_for): Likewise.
      	* tree-ssa-operands.c (add_virtual_operand): Likewise.
      	(add_call_clobber_ops): Likewise.
      	(add_call_read_ops): Likewise.
      	(get_asm_expr_operands): Likewise.
      	* tree-into-ssa.c (dump_decl_set): Likewise.
      	(update_ssa): Likewise.
      	* tree-sra.c (scan_function): Likewise.
      	(decide_instantiations): Likewise.
      	(scalarize_parms): Likewise.
      	* tree-ssa-alias-warnings.c (build_reference_table): Likewise.
      	(dsa_named_for): Likewise.
      	* tree-ssa-structalias.c (update_alias_info): Likewise.
      	(merge_smts_into): Likewise.
      
      From-SVN: r132629
      Richard Guenther committed
  35. 13 Dec, 2007 1 commit
    • re PR middle-end/33088 (spurious exceptions with -ffloat-store) · 7b7e6ecd
      	PR middle-end/33088
      	* gimplify.c (gimplify_modify_expr_complex_part): Add note to comment.
      	* tree-complex.c (init_dont_simulate_again): Return true if there are
      	uninitialized loads generated by gimplify_modify_expr_complex_part.
      	* tree-gimple.c (is_gimple_reg_type): Return false for complex types
      	if not optimizing.
      	* tree-ssa.c (ssa_undefined_value_p): New predicate extracted from...
      	(warn_uninit): ...here.  Use ssa_undefined_value_p.
      	* tree-ssa-pre.c (is_undefined_value): Delete.
      	(phi_translate_1): Use ssa_undefined_value_p.
      	(add_to_exp_gen): Likewise.
      	(make_values_for_stmt): Likewise.
      	* tree-flow.h (ssa_undefined_value_p): Declare.
      
      From-SVN: r130917
      Eric Botcazou committed
  36. 14 Nov, 2007 1 commit