1. 16 Apr, 2009 1 commit
    • c-common.c (vector_targets_convertible_p, [...]): Use TYPE_VECTOR_OPAQUE instead… · b6fc2cdb
      c-common.c (vector_targets_convertible_p, [...]): Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
      
      2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
      
      	* c-common.c (vector_targets_convertible_p, vector_types_convertible_p):
      	Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
      	* c-typeck.c (really_start_incremental_init): Likewise.
      	* target-def.h (TARGET_VECTOR_OPAQUE_P): Remove.
      	(TARGET_INITIALIZER): Remove it.
      	* target.h (struct target): Remove vector_opaque_p.
      	* tree.c (build_opaque_vector_type): New.
      	* tree.h (TYPE_VECTOR_OPAQUE): New.
      	(build_opaque_vector_type): Declare.
      	* doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove.
      	* config/rs6000/rs6000.c (build_opaque_vector_type,
      	rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove.
      	(rs6000_init_builtins): Use build_opaque_vector_type for
      	opaque_V4SI_type_node.
      
      cp:
      2009-04-16  Paolo Bonzini  <bonzini@gnu.org>
      
      	* decl.c (check_initializer): Use TYPE_VECTOR_OPAQUE
      	instead of targetm.vector_opaque_p.
      
      From-SVN: r146153
      Paolo Bonzini committed
  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. 30 Mar, 2009 2 commits
    • re PR middle-end/38237 (multiple weak directives) · f4d9f129
      	PR middle-end/38237
      	* tree.h (tree_find_value): New declaration.
      	* tree.c (tree_find_value): New function.
      	* varasm.c (assemble_external): Avoid duplicate entries on lists.
      
      From-SVN: r145303
      Steve Ellcey committed
    • re PR middle-end/323 (optimized code gives strange floating point results) · 8ce94e44
      	PR rtl-optimization/323
      	* c-common.c (c_fully_fold, convert_and_check,
      	c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR.
      	(c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR.
      	* c-common.def (EXCESS_PRECISION_EXPR): New.
      	* c-cppbuiltin.c (builtin_define_float_constants): Define
      	constants with enough digits for long double.
      	* c-lex.c (interpret_float): Interpret constant with excess
      	precision where appropriate.
      	* c-opts.c (c_common_post_options): Set
      	flag_excess_precision_cmdline.  Give an error for
      	-fexcess-precision=standard for C++ for processors where the
      	option is significant.
      	* c-parser.c (c_parser_conditional_expression): Handle excess
      	precision in condition.
      	* c-typeck.c (convert_arguments): Handle arguments with excess
      	precision.
      	(build_unary_op): Move excess precision outside operation.
      	(build_conditional_expr): Likewise.
      	(build_compound_expr): Likewise.
      	(build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR.
      	(build_modify_expr): Handle excess precision in RHS.
      	(convert_for_assignment): Handle excess precision in converted
      	value.
      	(digest_init, output_init_element, process_init_element): Handle
      	excess precision in initializer.
      	(c_finish_return): Handle excess precision in return value.
      	(build_binary_op): Handle excess precision in operands and add
      	excess precision as needed for operation.
      	* common.opt (-fexcess-precision=): New option.
      	* config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New.
      	* config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2):
      	For standard excess precision, output explicit conversion to and
      	truncation from XFmode.
      	(*float<SSEMODEI24:mode><X87MODEF:mode>2_1,
      	*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp,
      	*float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed
      	define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed
      	define_splits, *floatunssi<mode>2_1, two unnamed define_splits,
      	floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3,
      	divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387,
      	*fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387,
      	*fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed
      	define_splits, sqrt<mode>2): Disable where appropriate for
      	standard excess precision.
      	* convert.c (convert_to_real): Do not shorten arithmetic to type
      	for which excess precision would be used.
      	* defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define.
      	* doc/invoke.texi (-fexcess-precision=): Document option.
      	(-mfpmath=): Correct index entry.
      	* flags.h (enum excess_precision, flag_excess_precision_cmdline,
      	flag_excess_precision): New.
      	* langhooks.c (lhd_post_options): Set
      	flag_excess_precision_cmdline.
      	* opts.c (common_handle_option): Handle -fexcess-precision=.
      	* toplev.c (flag_excess_precision_cmdline, flag_excess_precision,
      	init_excess_precision): New.
      	(lang_dependent_init_target): Call init_excess_precision.
      	* tree.c (excess_precision_type): New.
      	* tree.h (excess_precision_type): Declare.
      
      ada:
      	* gcc-interface/misc.c (gnat_post_options): Set
      	flag_excess_precision_cmdline.  Give an error for
      	-fexcess-precision=standard for processors where the option is
      	significant.
      
      fortran:
      	* options.c (gfc_post_options): Set
      	flag_excess_precision_cmdline.  Give an error for
      	-fexcess-precision=standard for processors where the option is
      	significant.
      
      java:
      	* lang.c (java_post_options): Set flag_excess_precision_cmdline.
      	Give an error for -fexcess-precision=standard for processors where
      	the option is significant.
      
      testsuite:
      	* gcc.target/i386/excess-precision-1.c,
      	gcc.target/i386/excess-precision-2.c,
      	gcc.target/i386/excess-precision-3.c,
      	gcc.target/i386/excess-precision-4.c,
      	gcc.target/i386/excess-precision-5.c,
      	gcc.target/i386/excess-precision-6.c: New tests.
      
      From-SVN: r145272
      Joseph Myers committed
  4. 29 Mar, 2009 1 commit
    • c-common.c (c_expand_expr, c_staticp): Remove. · 2ec5deb5
      2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
      
              * c-common.c (c_expand_expr, c_staticp): Remove.
              * c-common.def (COMPOUND_LITERAL_EXPR): Delete.
              * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL,
              COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove.
              * c-gimplify.c (gimplify_compound_literal_expr,
              optimize_compound_literals_in_ctor): Remove.
              (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling.
              * c-objc-common.h (LANG_HOOKS_STATICP): Remove.
              * c-semantics.c (emit_local_var): Remove.
      
              * langhooks-def.h (lhd_expand_expr): Remove.
              * langhooks.c (lhd_expand_expr): Remove.
              * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR.
      
              * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR
              handling from c-semantics.c; don't call into langhook.
              (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees.
              * gimplify.c (gimplify_compound_literal_expr,
              optimize_compound_literals_in_ctor): Move from c-gimplify.c.
              (gimplify_init_constructor): Call optimize_compound_literals_in_ctor.
              (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR
              as was done in c-gimplify.c.
              * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp.
              * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR):
              Move from c-common.h.
              * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def.
      
      	* tree.c (staticp): Do not call langhook.
      	* langhooks.c (lhd_staticp): Delete.
      	* langhooks-def.h (lhd_staticp): Delete prototype.
      	(LANG_HOOKS_STATICP): Delete.
      	(LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP.
      
              * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs
              instead of DECL_STMTs.
      
      cp:
      2009-03-28  Paolo Bonzini  <bonzini@gnu.org>
      
      	* cp/cp-objcp-common.h (LANG_HOOKS_STATICP): Remove.
      	* cp/cp-objcp-common.c (cxx_staticp): Remove.
      	* cp/cp-tree.h (cxx_staticp): Remove.
      
      From-SVN: r145256
      Paolo Bonzini committed
  5. 03 Mar, 2009 1 commit
    • re PR tree-optimization/39272 (-D_FORTIFY_SOURCE=2 no longer warns with new glibc headers) · 9bd9f738
      2009-03-03  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/39272
      	* tree.c (tree_nonartificial_location): New function.
      	* tree.h (tree_nonartificial_location): Declare.
      	* builtins.c (expand_builtin_memory_chk): Provide location
      	of the call location for artificial function pieces.
      	(maybe_emit_chk_warning): Likewise.
      	(maybe_emit_sprintf_chk_warning): Likewise.
      	(maybe_emit_free_warning): Likewise.
      	* expr.c (expand_expr_real_1): Likewise.
      
      From-SVN: r144573
      Richard Guenther committed
  6. 23 Feb, 2009 1 commit
    • re PR tree-optimization/37709 (inlining causes explosion in debug info) · 61e04322
      	PR tree-optimization/37709                                              
      	* tree.c (block_ultimate_origin): Move here from dwarf2out.             
      	* tree.h (block_ultimate_origin): Declare.                              
      	* dwarf2out.c (block_ultimate_origin): Move to tree.c                   
      	* tree-ssa-live.c (remove_unused_scope_block_p):
      	Eliminate blocks containig no instructions nor live variables nor
      	nested blocks.
      	(dump_scope_block): New function.
      	(remove_unused_locals): Enable removal of dead blocks by default;
      	enable dumping at TDF_DETAILS.
      
      From-SVN: r144381
      Jan Hubicka committed
  7. 08 Dec, 2008 1 commit
    • re PR middle-end/38240 (Vector type definitions not compatible with attribute target) · 179d2f74
      	PR 38240
      	* tree.h (TYPE_MODE): Invoke vector_type_mode when needed.
      	(SET_TYPE_MODE): New.
      	* c-decl.c (parser_xref_tag): Use it.
      	(finish_enum): Likewise.
      	* tree.c (build_pointer_type_for_mode): Likewise.
      	(build_reference_type_for_mode, build_index_type): Likewise.
      	(build_range_type, make_vector_type): Likewise.
      	(build_common_tree_nodes_2): Likewise.
      	* stor-layout.c (compute_record_mode): Likewise.
      	(finalize_type_size, layout_type, make_fract_type): Likewise.
      	(make_accum_type, initialize_sizetypes): Likewise.
      	(vector_type_mode): New.
      	* function.c (allocate_struct_function): Call
      	invoke_set_current_function_hook before querying anything else.
      
      	* config/i386/i386.c (ix86_valid_target_attribute_inner_p): Add avx.
      
      cp/
      	* class.c (finish_struct_bits): Use SET_TYPE_MODE.
      	* decl.c (record_unknown_type): Likewise.
      	(start_enum, finish_enum): Likewise.
      
      From-SVN: r142556
      Richard Henderson committed
  8. 19 Nov, 2008 1 commit
  9. 29 Oct, 2008 1 commit
    • re PR middle-end/11492 (Bogus warning with -Wsign-compare) · cdd6a337
      2008-10-29  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
      
      	PR 11492
      	* c-common.c (min_precision): Move to...
      	* tree.c (tree_int_cst_min_precision): ... to here. Renamed.
      	* tree.h (tree_int_cst_min_precision): Declare.
      	* c-common.h (min_precision): Delete declaration.
      	* fold-const.c (tree_binary_nonnegative_warnv_p): Handle
      	multiplication of non-negative integer constants.
      	* c-decl.c (check_bitfield_type_and_width): Rename min_precision to
      	tree_int_cst_min_precision.
      	(finish_enum): Likewise.
      cp/
      	* class.c (check_bitfield_decl): Rename min_precision to
      	tree_int_cst_min_precision.
      	* decl.c (finish_enum): Likewise.
      testsuite/
      	* gcc.dg/pr11492.c: New.
      	* g++.dg/warn/pr11492.C: New.
      
      From-SVN: r141434
      Manuel López-Ibáñez committed
  10. 22 Oct, 2008 1 commit
  11. 21 Oct, 2008 1 commit
  12. 16 Oct, 2008 1 commit
  13. 14 Oct, 2008 1 commit
    • re PR c++/37553 (ICE in build_c_cast) · 9c880618
      2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
      
             PR c++/37553
             * tree.c (build_type_attribute_qual_variant): Hash on the
             unqualified type, and don't overwrite an existing
             (type_hash_eq): Make the TYPE_NAME of the types significant, to
             allow distinguishing between wchar_t and its underlying type. This
             also means that we'll retain a little more typedef information.
      
      2008-10-14  Douglas Gregor  <doug.gregor@gmail.com>
      
             PR c++/37553
             * g++.dg/ext/alias-canon2.C: New.
      
      From-SVN: r141111
      Douglas Gregor committed
  14. 05 Oct, 2008 1 commit
    • re PR debug/37410 (DW_TAG_imported_module is not in its DW_TAG_lexical_block) · d19c0f4b
      2008-09-30  Dodji Seketeli  <dodji@redhat.com>
      gcc/ChangeLog:
      
      	PR c++/37410
      	* dwarf2out.c (dwarf2out_imported_module_or_decl): Split this
      	  function in two, making it call a new and reusable
      	  dwarf2out_imported_module_or_decl() that takes the containing
      	  BLOCK of the declaration in argument.
      	  (dwarf2out_imported_module_or_decl_real): New function.
      	  (decls_for_scope, gen_decl_die, dwarf2out_decl): Take
      	  IMPORTED_DECL in account.
      	* tree.def: Added IMPORTED_DECL node type.
      	* tree.h: Added accessors for IMPORTED_DECL nodes.
      	* tree.c (init_ttree): Initialise IMPORTED_DECL node type.
      
      gcc/cp/ChangeLog:
      
      	PR c++/37410
      	* cp-gimplify.c (cp_gimplify_expr): For each USING_STMT
      	  make sure an IMPORTED_DECL node is added to the BLOCK_VARS list
      	  of the innermost containing BLOCK.
      
      gcc/testsuite/ChangeLog:
      
      	PR c++/37410
      	* g++.dg/debug/dwarf2/imported-module.C: New test.
      
      From-SVN: r140895
      Dodji Seketeli committed
  15. 01 Oct, 2008 1 commit
  16. 17 Sep, 2008 2 commits
    • re PR objc/37460 (NeXT runtime ICEs) · 2700cb86
      2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              * tree.c (get_callee_fndecl): Don't call the language hook.
              * langhooks.h (lang_hooks): Remove lang_get_callee_fndecl.
              * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): Kill.
              (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_GET_CALLEE_FNDECL.
      
      
      2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR objc/37460
              * objc-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
              * objc-act.h (objc_get_callee_fndecl): Remove prototype.
              * objc-act.c (objc_get_callee_fndecl): Kill.
      
      2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              * lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
              (java_get_callee_fndecl): Kill.
      
      2008-09-17  Andrew Pinski  <andrew_pinski@playstation.sony.com>
      
              PR objc/37460
              * objcp-lang.c (LANG_HOOKS_GET_CALLEE_FNDECL): Don't define.
      
      From-SVN: r140430
      Andrew Pinski committed
    • tree.c (protected_set_expr_location): Don't unnecessarily check for error_mark_node. · 6847a754
      	* tree.c (protected_set_expr_location): Don't unnecessarily
      	check for error_mark_node.
      
      From-SVN: r140429
      Jakub Jelinek committed
  17. 04 Sep, 2008 1 commit
  18. 01 Sep, 2008 1 commit
    • tree.c (protected_set_expr_location): New. · 6a3799eb
              * tree.c (protected_set_expr_location): New.
              * tree.h (protected_set_expr_location): New prototype.
              * c-tree.h (build_array_ref): Add argument.
              (parser_build_unary_op): Same.
              * c-typeck.c (build_indirect_ref): Handle new location argument.
              (build_array_ref): Same.
              (parser_build_unary_op): Same.
              * gimplify.c (gimplify_asm_expr): Set input_location before calling
              error.
              * c-omp.c (c_finish_omp_atomic): Pass location when calling
              build_indirect_ref.
              * c-common.c (finish_label_address_expr): Handle new location
              argument.
              * c-common.h (build_indirect_ref): Add argument.
              (finish_label_address_expr): Same.
              * c-parser.c (c_parser_unary_expression): Pass location to build
              functions.
              (c_parser_postfix_expression): Same.
      objc/
              * objc-act.c (build_typed_selector_reference): Pass input_location to
              build_unary_op calls.
              (build_selector_reference): Same, but to build_array_ref.
              (objc_substitute_decl): Same.
              (build_ivar_reference): Same, but to build_indirect_ref.
              (get_super_receiver): Same.
      testsuite/
              * gcc.dg/20010516-1.c: Test for columns.
      cp/
              * typeck.c (build_x_indirect_ref): Add location argument.
              * class.c (build_base_path): Pass location to build_indirect_ref.
              * pt.c (tsubst_copy_and_build): Pass location to
              finish_label_address_expr.
              * parser.c (cp_parser_unary_expression): Same.
      
      From-SVN: r139867
      Aldy Hernandez committed
  19. 29 Aug, 2008 1 commit
    • tree.c (build_function_type_skip_args, [...]): New functions. · c6f7cfc1
      	* tree.c (build_function_type_skip_args, build_function_decl_skip_args):
      	New functions.
      	* tree.h (build_function_type_skip_args, build_function_decl_skip_args):
      	Declare.
      	* gimple.c (giple_copy_call_skip_args): New function.
      	(giple_copy_call_skip_args): Declare.
      
      	* cgraph.h (cgraph_function_versioning): Add skip_args arugmnet
      	* ipa-cp.c (ipcp_node_not_modifiable_p): Rename to ...
      	(ipcp_node_modifiable_p): ... this one; use tree_versionable_function_p.
      	(ipcp_create_replace_map): Improve debug output.
      	(ipcp_need_redirect_p): Return false when not clonning.
      	(ipcp_update_callgraph): Skip args.
      	(ipcp_insert_stage): UPdate call of !ipcp_node_modifiable_p;
      	skip args.
      	* cgraphunit.c (cgraph_function_versioning): Add skip_args argument.
      	(save_inline_function_body): Update call of tree_function_versioning.
      	* ipa-prop.c (ipa_edge_removal_hook): Do not ICE on unanalyzed nodes.
      	* tree-inline.c (copy_arguments_for_versioning): Add skip_args argument.
      	(tree_function_versioning): Likewise.
      	* tree-inline.h (tree_function_versioning): Update prototype.
      
      From-SVN: r139761
      Jan Hubicka committed
  20. 28 Aug, 2008 1 commit
  21. 23 Aug, 2008 1 commit
    • tree.c (decl_address_ip_invariant_p): New function. · 00fc2333
      	* tree.c (decl_address_ip_invariant_p): New function.
      	* tree.h (decl_address_ip_invariant_p): Declare.
      	* gimple.c (strip_invariant_refs): Break out from ...
      	(is_gimple_invariant_address): ... here
      	(is_gimple_ip_invariant_address): New function.
      	(is_gimple_ip_invariant): New function.
      	* gimple.h (is_gimple_ip_invariant_address, is_gimple_ip_invariant):
      	Declare.
      
      	* ipa-cp.c (ipcp_lat_is_const): Remove handling of IPA_CONST_VALUE_REF.
      	(ipcp_lat_is_insertable): All constants are insertable.
      	(ipcp_lattice_from_jfunc, ipcp_print_all_lattices): Remove handling of
      	IPA_CONST_VALUE_REF.
      	(ipcp_initialize_node_lattices): Propagate all types of operands.
      	(build_const_val): Do not handle IPA_CONST_VALUE_REF.
      	(ipcp_create_replace_map): Reformat.
      	(ipcp_need_redirect_p): Simplify.
      	(ipcp_insert_stage): Check that argument is used before clonning.
      	* ipa-prop.c (ipa_print_node_jump_functions): Do not handle IPA_CONST_REF.
      	(compute_scalar_jump_functions): Simplify using is_gimple_ip_invariat.
      	(determine_cst_member_ptr): Keep wrapping ADDR_EXPR of members.
      	(update_call_notes_after_inlining): Expect ADDR_EXPR in operand.
      	* ipa-prop.h (jump_func_type): Remove IPA_CONST_REF.
      	(jump_func_type): Remove IPA_CONST_VALUE_REF.
      	* tree-inline.c (tree_function_versioning): Add variables referenced by
      	replacing trees.
      
      From-SVN: r139523
      Jan Hubicka committed
  22. 19 Aug, 2008 1 commit
  23. 18 Aug, 2008 1 commit
    • tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to · 1a87cf0c
              * tree.h (IS_CONVERT_EXPR_CODE_P): Renamed to
              * CONVERT_EXPR_CODE_P.
              * tree-ssa-threadedge.c (simplify_control_stmt_condition): Use
              CONVERT_EXPR_P.
              * tree-data-ref.c (split_constant_offset_1): Likewise.
              * tree-inline.c (estimate_operator_cost): Use CASE_CONVERT.
              * tree-sra.c (sra_walk_expr): Likewise.
              * matrix-reorg.c (ssa_accessed_in_assign_rhs): Likewise.
              * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
              * gimple.h (gimple_assign_cast_p): Use CONVERT_EXPR_CODE_P.
              * tree-ssa-structalias.c (find_func_aliases, find_func_aliases):
              * Likewise.
              * gimple.c (gimple_assign_unary_nop_p): Likewise.
              * tree-vect-transform.c (vectorizable_type_demotion)
              (vectorizable_type_promotion): Likewise.
              * tree-inline.c (expand_call_inline): 
              * tree-ssa-forwprop.c (get_prop_source_stmt, can_propagate_from)
              (forward_propagate_addr_expr_1, forward_propagate_comparison)
              (tree_ssa_forward_propagate_single_use_vars): Likewise.
              * expr.c (expand_expr_real_1): Likewise.
              * tree-ssa-dom.c (hashable_expr_equal_p,
              * iterative_hash_hashable_expr)
              (gimple_assign_unary_useless_conversion_p): Likewise.
              * tree-stdarg.c (execute_optimize_stdarg): Likewise.
              * tree-ssa-ccp.c (ccp_fold, fold_gimple_assign): Likewise.
              * fold-const.c (fold_unary): Likewise.
              * tree.h (CONVERT_EXPR_P): Likewise.
              * tree.c (simple_cst_equal, iterative_hash_expr): Likewise.
              * tree-ssa-loop-im.c (rewrite_bittest): Likewise.
              * tree-vrp.c: 
              (register_edge_assert_for_2, extract_range_from_unary_expr)
              (register_edge_assert_for_1): Likewise.
      
              * cp/tree.c (cp_tree_equal): Likewise.
      
      From-SVN: r139204
      Tomas Bily committed
  24. 06 Aug, 2008 2 commits
    • alpha.c (alpha_preferred_reload_class, [...]): Avoid C++ keywords. · 0a2aaacc
      	* config/alpha/alpha.c (alpha_preferred_reload_class,
      	alpha_secondary_reload, alpha_emit_set_const_1, function_value,
      	alpha_output_mi_thunk_osf): Avoid C++ keywords.
      	* config/arm/arm.c (output_move_vfp, output_move_neon): Likewise.
      	* config/arm/arm.md: Likewise.
      	* config/avr/avr-protos.h (preferred_reload_class,
      	test_hard_reg_class, avr_simplify_comparison_p,
      	out_shift_with_cnt, class_max_nregs): Likewise.
      	* config/avr/avr.c (class_max_nregs, avr_simplify_comparison_p,
      	output_movqi, output_movhi, output_movsisf, out_shift_with_cnt,
      	preferred_reload_class, test_hard_reg_class): Likewise.
      	* config/bfin/bfin.c (legitimize_pic_address, hard_regno_mode_ok,
      	bfin_memory_move_cost, bfin_secondary_reload,
      	bfin_output_mi_thunk): Likewise.
      	* config/crx/crx.c (crx_secondary_reload_class,
      	crx_memory_move_cost): Likewise.
      	* config/frv/frv-protos.h (frv_secondary_reload_class,
      	frv_class_likely_spilled_p, frv_class_max_nregs): Likewise.
      	* config/frv/frv.c (frv_override_options, frv_alloc_temp_reg,
      	frv_secondary_reload_class, frv_class_likely_spilled_p,
      	frv_class_max_nregs): Likewise.
      	* config/h8300/h8300.c (h8300_classify_operand,
      	h8300_unary_length, h8300_bitfield_length, h8300_asm_insn_count):
      	Likewise.
      	* config/i386/winnt.c (i386_pe_declare_function_type): Likewise.
      	* config/ia64/ia64.c (ia64_preferred_reload_class,
      	ia64_secondary_reload_class, ia64_output_mi_thunk): Likewise.
      	* config/iq2000/iq2000.c (gen_int_relational): Likewise.
      	* config/m32c/m32c.c (class_can_hold_mode, m32c_output_compare):
      	Likewise.
      	* config/m68hc11/m68hc11.c (preferred_reload_class,
      	m68hc11_memory_move_cost): Likewise.
      	* config/mcore/mcore.c (mcore_secondary_reload_class,
      	mcore_reload_class): Likewise.
      	* config/mips/mips.c (mips_hard_regno_mode_ok_p,
      	mips_class_max_nregs, mips_cannot_change_mode_class,
      	mips_preferred_reload_class, mips_secondary_reload_class,
      	mips_output_mi_thunk): Likewise.
      	* config/mmix/mmix.c (mmix_preferred_reload_class,
      	mmix_preferred_output_reload_class, mmix_secondary_reload_class):
      	Likewise.
      	* config/mn10300/mn10300.c (mn10300_secondary_reload_class):
      	Likewise.
      	* config/pa/pa.c (pa_secondary_reload, pa_combine_instructions,
      	pa_can_combine_p, pa_cannot_change_mode_class): Likewise.
      	* config/pa/pa.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
      	* config/rs6000/rs6000.c (paired_expand_vector_init,
      	rs6000_secondary_reload_class, rs6000_output_mi_thunk,
      	compare_section_name, rs6000_memory_move_cost): Likewise.
      	* config/s390/s390.c (s390_emit_compare_and_swap,
      	s390_preferred_reload_class, s390_secondary_reload,
      	legitimize_pic_address, legitimize_tls_address,
      	legitimize_reload_address, s390_expand_cs_hqi, s390_expand_atomic,
      	s390_class_max_nregs): Likewise.
      	* config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
      	* config/s390/s390.md: Likewise.
      	* config/score/score-protos.h (score_secondary_reload_class,
      	score_preferred_reload_class): Likewise.
      	* config/score/score.c (score_preferred_reload_class,
      	score_secondary_reload_class): Likewise.
      	* config/score/score3.c (score3_output_mi_thunk,
      	score3_preferred_reload_class, score3_secondary_reload_class,
      	score3_hard_regno_mode_ok): Likewise.
      	* config/score/score3.h (score3_preferred_reload_class,
      	score3_secondary_reload_class): Likewise.
      	* config/score/score7.c (score7_output_mi_thunk,
      	score7_preferred_reload_class, score7_secondary_reload_class,
      	score7_hard_regno_mode_ok): Likewise.
      	* config/score/score7.h (score7_preferred_reload_class,
      	score7_secondary_reload_class): Likewise.
      	* config/sh/sh.c (prepare_move_operands, output_far_jump,
      	output_branchy_insn, add_constant, gen_block_redirect,
      	sh_insn_length_adjustment, sh_cannot_change_mode_class,
      	sh_output_mi_thunk, replace_n_hard_rtx, sh_secondary_reload):
      	Likewise.
      	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
      	* config/stormy16/stormy16.c (xstormy16_output_cbranch_hi,
      	xstormy16_output_cbranch_si, xstormy16_secondary_reload_class,
      	xstormy16_preferred_reload_class): Likewise.
      	* config/xtensa/xtensa.c (xtensa_expand_compare_and_swap,
      	xtensa_expand_atomic, override_options,
      	xtensa_preferred_reload_class, xtensa_secondary_reload_class):
      	Likewise.
      	* reorg.c (try_merge_delay_insns): Likewise.
      	* tree.c (merge_dllimport_decl_attributes): Likewise.
      
      	* config/frv/frv.c (frv_print_operand): Change isalpha to ISALPHA.
      
      From-SVN: r138813
      Kaveh R. Ghazi committed
    • builtins.c (expand_builtin_profile_func): Avoid C++ keywords. · 82d6e6fc
      	* builtins.c (expand_builtin_profile_func): Avoid C++ keywords.
      	* calls.c (avoid_likely_spilled_reg): Likewise.
      	* cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
      	* cgraph.c (cgraph_clone_edge, cgraph_clone_node): Likewise.
      	* config/i386/i386.c (ix86_expand_special_args_builtin,
      	ix86_secondary_reload): Likewise.
      	* except.c (struct eh_region, gen_eh_region_catch,
      	remove_unreachable_regions, duplicate_eh_regions,
      	assign_filter_values, build_post_landing_pads,
      	sjlj_find_directly_reachable_regions, remove_eh_handler,
      	reachable_next_level, foreach_reachable_handler,
      	can_throw_internal_1, can_throw_external_1,
      	collect_one_action_chain): Likewise.
      	* expr.c (expand_expr_real_1, vector_mode_valid_p): Likewise.
      	* fold-const.c (twoval_comparison_p, eval_subst): Likewise.
      	* function.c (update_temp_slot_address, instantiate_new_reg,
      	instantiate_virtual_regs_in_rtx,
      	instantiate_virtual_regs_in_insn): Likewise.
      	* gimple.c (extract_ops_from_tree, gimple_seq_copy): Likewise.
      	* gimplify.c (gimplify_call_expr, gimplify_init_constructor,
      	gimplify_cleanup_point_expr): Likewise.
      	* ipa-cp.c (ipcp_lattice_changed): Likewise.
      	* passes.c (next_pass_1): Likewise.
      	* print-tree.c (print_node_brief, print_node): Likewise.
      	* profile.c (branch_prob): Likewise.
      	* tree-dump.c (dump_register): Likewise.
      	* tree-eh.c (replace_goto_queue_cond_clause, lower_catch):
      	Likewise.
      	* tree-inline.c (remap_ssa_name, remap_type_1, remap_blocks,
      	copy_statement_list, remap_gimple_op_r, copy_tree_body_r,
      	copy_edges_for_bb, copy_cfg_body, copy_tree_r,
      	copy_arguments_for_versioning, copy_static_chain): Likewise.
      	* tree-into-ssa.c (names_replaced_by, add_to_repl_tbl,
      	add_new_name_mapping, register_new_name_mapping): Likewise.
      	* tree-mudflap.c (mf_xform_derefs): Likewise.
      	* tree-predcom.c (struct chain, dump_chain, replace_ref_with,
      	get_init_expr, combine_chains): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* tree-ssa-structalias.c (create_variable_info_for): Likewise.
      	* tree-vrp.c (simplify_cond_using_ranges): Likewise.
      	* tree.c (substitute_in_expr, iterative_hash_expr): Likewise.
      	* value-prof.c (gimple_duplicate_stmt_histograms): Likewise.
      
      From-SVN: r138809
      Kaveh R. Ghazi committed
  25. 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
  26. 23 Jul, 2008 1 commit
  27. 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
  28. 15 Jul, 2008 1 commit
  29. 13 Jul, 2008 2 commits
  30. 08 Jul, 2008 1 commit
    • Fix PR tree-optimization/23455 Fix PR tree-optimization/35286 Fix PR tree-optimization/35287 · c9145754
      2008-07-05  Daniel Berlin  <dberlin@dberlin.org>
      	
      	Fix PR tree-optimization/23455
      	Fix PR tree-optimization/35286
      	Fix PR tree-optimization/35287
      	* Makefile.in (OBJS-common): Remove tree-vn.o.
      	tree-vn.o: Remove.
      	* dbgcnt.def: Add treepre_insert debug counter.
      	* gcc/tree-flow.h (add_to_value): Updated for other changes.
      	(debug_value_expressions): Ditto.
      	(print_value_expressions): Ditto.
      	* tree-pretty-print.c (dump_generic_node): Updated for
      	VALUE_HANDLE removal.
      	* tree-ssa-dom.c (record_equality): Ditto.
      	(cprop_operand): Ditto.
      	(lookup_avail_expr): Ditto.
      	* tree-ssa-threadedge.c
      	(record_temporary_equivalences_from_stmts_at_dest): Ditto.
      	(simplify_control_stmt_condition): Ditto.
      	* tree.c (tree_code_size): Ditto.
      	(tree_node_structure): Ditto.
      	(iterative_hash_expr): Ditto.
      	* tree.def: Ditto.
      	* tree.h (VALUE_HANDLE_ID): Ditto.
      	(VALUE_HANDLE_EXPR_SET): Ditto.
      	(struct tree_value_handle): Ditto.
      	(union tree_node): Ditto.
      	* treestruct.def: Ditto.
      	* tree-vn.c: Removed.
      	* tree-ssa-pre.c: Rewritten entirely.
      	* tree-ssa-sccvn.c (constant_to_value_id): New hashtable.
      	(constant_value_ids): Ditto.
      	(vn_nary_op_t): Moved to header.
      	(vn_phi_t): Ditto.
      	(vn_reference_op_t): Ditto
      	(vn_reference_t): Ditto.
      	(next_value_id): New variable.
      	(VN_INFO): Add an assert.
      	(vn_constant_eq): New function.
      	(vn_constant_hash): Ditto.
      	(get_or_alloc_constant_value_id): Ditto.
      	(value_id_constant_p): Ditto.
      	(vn_reference_compute_hash): De-staticify.
      	(copy_reference_ops_from_ref): Don't use get_callee_fndecl.
      	Disable some code with a FIXME.
      	Remove VALUE_HANDLE use.
      	(valueize_refs): Update opcode if it changes from ssa name to
      	constant.
      	(vn_reference_lookup_1): Add new argument.
      	(vn_reference_lookup):  Ditto.
      	(vn_reference_lookup_pieces): New function.
      	(vn_reference_insert): Add return type. Modify to deal with value
      	ids.
      	(vn_reference_insert_pieces):  New function.
      	(vn_nary_op_compute_hash): De-staticify.
      	(vn_nary_op_eq): Ditto.
      	(vn_nary_op_lookup_pieces): New function.
      	(vn_nary_op_lookup): Add new argument.  
      	(vn_nary_op_insert_pieces): New function.
      	(vn_nary_op_insert): Add return type. Modify to deal with value
      	ids.
      	(vn_phi_insert): Ditto.
      	(visit_unary_op): Update for callee changes.
      	(visit_binary_op): Ditto.
      	(visit_reference_op_load): Ditto.
      	(visit_reference_op_store): Ditto.
      	(init_scc_vn): Init next_value_id, constant_to_value_id and
      	constant_value_ids. 
      	(free_scc_vn): Free them.
      	(set_hashtable_value_ids): New function.
      	(run_scc_vn): Use it.
      	(get_max_value_id): New function.
      	(get_next_value_id): Ditto.
      	(expressions_equal_p): Moved from tree-vn.c
      	(sort_vuses): Ditto.
      	(sort_vuses_heap): Ditto.
      	* tree-ssa-sccvn.h: Structures moved from tree-ssa-sccvn.c (noted
      	above).
      	* tree.c (iterative_hash_hashval_t): Made non-static
      	* tree.h (iterative_hash_hashval_t): Declare it.
      
      From-SVN: r137631
      Daniel Berlin committed
  31. 03 Jul, 2008 2 commits
    • re PR bootstrap/33304 (Bootstrap failure on solaris2 using cc due to empty macro arguments) · 70d3fcab
      2008-07-03  Andrew Haley  <aph@redhat.com>
      
              PR bootstrap/33304
              * vec.h (VEC_TA): New.
              (DEF_VEC_I, DEF_VEC_P, DEF_VEC_ALLOC_I, DEF_VEC_ALLOC_P,
              DEF_VEC_O, DEF_VEC_ALLOC_O: Use VEC_TA.
              * c-common.c (C_COMMON_FIXED_TYPES_SAT): New macro.
              (C_COMMON_FIXED_MODE_TYPES_SAT): New macro.
              (C_COMMON_FIXED_TYPES): Remove first arg.
              (C_COMMON_FIXED_MODE_TYPES): Likewise.
              * tree.c (MAKE_FIXED_TYPE_NODE): Break into two macros,
              MAKE_FIXED_TYPE_NODE and MAKE_FIXED_TYPE_NODE_WIDTH in order
              not to use empty macro arguments.
      
      From-SVN: r137413
      Andrew Haley committed
    • tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT. · 6010fae7
              * gcc/tree.c (ctor_to_list): Use FOR_EACH_CONSTRUCTOR_ELT.                                       
              * gcc/cp/Make-lang.in (cp/typeck2.o): Add  dependency.                                  
              * libstdc++-v3/libsupc++/initializer_list: Uglify and wrap in                                    
              __GXX_EXPERIMENTAL_CXX0X__.                                                                      
              * libstdc++-v3/include/bits/stl_map.h (insert(initializer_list)): Wrap.
      
      From-SVN: r137406
      Jason Merrill committed
  32. 02 Jul, 2008 1 commit
    • Implement WG21 N2672, Initializer List proposed wording · 09357846
      gcc/cp/ChangeLog:
      2008-07-02  Jason Merrill  <jason@redhat.com>
      
      Implement WG21 N2672, Initializer List proposed wording
      * cp-tree.h (enum cp_tree_index): Add CPTI_INIT_LIST_TYPE.
      (struct lang_type_class): Add has_list_ctor bitfield.
      (TYPE_HAS_LIST_CTOR): New macro.
      (BRACE_ENCLOSED_INITIALIZER_P): Expect init_list_type_node.
      (CONSTRUCTOR_IS_DIRECT_INIT): New macro.
      (LOOKUP_NO_NARROWING): New macro.
      (LOOKUP_NO_COPY_CTOR_CONVERSION): New macro.
      * parser.c (cp_parse_braced_list): Split out from...
      (cp_parser_initializer_clause): ...here.
      (cp_parser_postfix_expression): Build up CONSTRUCTOR for compound 
      literal here.
      (cp_lexer_next_token_is_not_keyword): New fn.
      (cp_parser_parenthesized_expression_list): Handle { }.
      (cp_parser_new_expression, cp_parser_new_initializer): Likewise.
      (cp_parser_assignment_expression, cp_parser_condition): Likewise.
      (cp_parser_jump_statement, cp_parser_simple_declaration): Likewise.
      (cp_parser_mem_initializer, cp_parser_init_declarator): Likewise.
      (cp_parser_initializer, cp_parser_functional_cast): Likewise.
      (cp_parser_omp_for_loop, cp_parser_cache_group): Likewise.
      (cp_parser_save_member_function_body): Likewise.
      * call.c (conversion_kind): Add ck_list, ck_aggr.
      (struct conversion): Add check_narrowing bitfield, conversion list.
      (build_list_conv): New fn.
      (build_aggr_conv): New fn.
      (implicit_conversion): Call them.
      (standard_conversion): Set check_narrowing if appropriate.
      (add_function_candidate): Handle LOOKUP_NO_COPY_CTOR_CONVERSION.
      (build_user_type_conversion_1): When converting from an init list,
      we allow additional conversions except when calling a copy ctor.
      (convert_like_real): Calling an explicit ctor for an init list is 
      ill-formed.  Handle ck_list and ck_addr.  Check narrowing.
      (build_new_method_call): If CONSTRUCTOR_IS_DIRECT_INIT is set and
      class doesn't have a list ctor, break the {} into a TREE_LIST.
      (compare_ics): ck_list is better than other UDCs.
      (set_up_extended_ref_temp): Split out from initialize_reference.
      (is_std_init_list): New fn.
      (is_list_ctor): New fn.
      * decl.c (cxx_init_decl_processing): Create init_list_type_node.
      (reshape_init_array_1): Pass it to build_constructor.
      (reshape_init_class): Ditto.
      (initialize_artificial_var): Pass the appropriate type.
      (build_aggr_init_full_exprs): Split out from...
      (check_initializer): ...here.  Handle new semantics.
      (build_init_list_var_init): New subroutine of check_initializer.
      (grokdeclarator): Converting constructors can have more than one parm.
      (grok_special_member_properties): Set TYPE_HAS_LIST_CTOR.
      * init.c (expand_default_init): Only do digest_init for aggregates.
      * rtti.c (tinfo_base_init): Pass init_list_type_node to 
      build_constructor_from_list.
      (generic_initializer, ptr_initializer): Ditto.
      (ptm_initializer, class_initializer): Ditto.
      (get_pseudo_ti_init): Ditto.
      * error.c (dump_type): Handle init_list_type_node.
      (maybe_warn_cpp0x): New fn.
      (maybe_varn_variadic_templates): Call it.
      * cvt.c (ocp_convert): Handle conversion from { }.
      * tree.c (build_array_of_n_type): New fn.
      * typeck2.c (store_init_value): Use init_list_type_node.
      (digest_init): Likewise.
      (check_narrowing): New fn.
      * semantics.c: (finish_compound_literal): Take CONSTRUCTOR instead 
      of vector of constructor elts.  Handle non-aggregate types.  Make
      constant literals static.
      * pt.c: (tsubst_copy_and_build): Adjust.
      (unify): Handle { }.
      * name-lookup.c (arg_assoc_type): Handle init_list_type_node.
      
      gcc/ChangeLog:
      2008-07-02  Jason Merrill  <jason@redhat.com>
      
      * tree.c (ctor_to_list): New fn.
      * tree.h: Declare it.
      (CONSTRUCTOR_ELT): New macro.
      (CONSTRUCTOR_NELTS): New macro.
      
      libstdc++-v3/ChangeLog:
      2008-07-02  Jason Merrill  <jason@redhat.com>
      
      * libsupc++/initializer_list: New file.
      * include/bits/stl_map.h (insert(initializer_list)): New method.
      
      From-SVN: r137361
      Jason Merrill committed
  33. 28 Jun, 2008 1 commit
    • tree.c (build_varargs_function_type_list): New. · ff1c393b
      2008-06-28  Kai Tietz  <kai.tietz@onevision.com>
      
              * tree.c (build_varargs_function_type_list): New.
              (build_function_type_list_1): New.
              (build_function_type_list): Use build_function_type_list_1.
              * tree.h (build_varargs_function_type_list): New.
      
      From-SVN: r137221
      Kai Tietz committed
  34. 21 Jun, 2008 1 commit
    • tree.h (enum tree_code): Include all-tree.def, not tree.def. · c0ed0531
      	* tree.h (enum tree_code): Include all-tree.def, not tree.def.
      	Define END_OF_BASE_TREE_CODES around inclusion.
      	* tree.c (tree_code_type): New global array.
      	(tree_code_length, tree_code_name): Likewise.
      	* Makefile.in (TREE_H): Add all-tree.def, c-common.def, and
      	$(lang_tree_files).
      	(all-tree.def, s-alltree): New targets.
      	(gencheck.h, s-gencheck): Remove.
      	(tree.o): Depend upon all-tree.def.
      	(build/gencheck.o): Remove gencheck.h dependency.
      	(mostlyclean): Don't remove gencheck.h.
      	* c-common.h (enum c_tree_code): Remove.
      	* c-lang.c (tree_code_type): Remove.
      	(tree_code_length, tree_code_name): Remove.
      	* gencheck.c (tree_codes): Include all-tree.def, rather than
      	tree.def, c-common.def, and gencheck.h.  Undefined DEFTREECODE
      	after it is used.
      	* tree-browser.c (tb_tree_codes): Include all-tree.def, rather
      	than tree.def.
      	* cp/cp-tree.h (enum cplus_tree_code): Remove.
      	(operator_name_info): Size to MAX_TREE_CODES.
      	(assignment_operator_name_info): Likewise.
      	* cp/cp-lang.c (tree_code_type): Remove.
      	(tree_code_length, tree_code_name): Remove.
      	* cp/lex.c (operator_name_info): Size to MAX_TREE_CODES.
      	(assignment_operator_name_info): Likewise.
      	* cp/decl.c (grok_op_properties): Change LAST_CPLUS_TREE_CODE to
      	MAX_TREE_CODES.
      	* cp/mangle.c (write_expression): Likewise.
      	* cp/Make-lang.in (CXX_TREE_H): Remove cp/cp-tree.def.
      	* fortran/f95-lang.c (tree_code_type): Remove.
      	(tree_code_length, tree_code_name): Remove.
      	* java/java-tree.h (enum java_tree_code): Remove.
      	* java/lang.c (tree_code_type): Remove.
      	(tree_code_length, tree_code_name): Remove.
      	* java/Make-lang.in (JAVA_TREE_H): Remove java/java-tree.def.
      	* objc/objc-act.h (enum objc_tree_code): Remove.
      	* objc/objc-lang.c (tree_code_type): Remove.
      	(tree_code_length, tree_code_name): Remove.
      	* objcp/objcp-lang.c (tree_code_type): Remove.
      	(tree_code_length, tree_code_name): Remove.
      	* ada/ada-tree.h (enum gnat_tree_code): Remove.
      	* ada/Make-lang.in (ADA_TREE_H): Remove ada/ada-tre.def.
      	* ada/misc.c (tree_code_type): Remove.
      	(tree_code_length, tree_code_name): Remove.
      
      From-SVN: r137006
      Ian Lance Taylor committed
  35. 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