1. 16 Aug, 2010 1 commit
    • tree-cfg.c (verify_types_in_gimple_reference): Verify TARGET_MEM_REF a bit. · 4b228e61
      2010-08-16  Richard Guenther  <rguenther@suse.de>
      
      	* tree-cfg.c (verify_types_in_gimple_reference): Verify
      	TARGET_MEM_REF a bit.
      	* tree-ssa-address.c (addr_for_mem_ref): Adjust.
      	(create_mem_ref_raw): Always create TMR_OFFSET, store the
      	alias pointer type via it.
      	(copy_mem_ref_info): Adjust.
      	(maybe_fold_tmr): Likewise.
      	* tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
      	(reference_alias_ptr_type): Likewise.
      	* tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
      	adjust documentation of TMR_OFFSET operand.
      	* alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
      	use the alias pointer type.
      	* expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
      	initialize mem attrs but the TMR itself.
      	* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
      	similar to MEM_REF.
      	* tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
      	* tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
      	(unshare_and_remove_ssa_names): Likewise.
      	(copy_ref_info): Adjust.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
      	TARGET_MEM_REF case.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
      	at TMR_ORIGINAL.
      	* tree.h (TMR_ORIGINAL): Remove.
      	* gimple.c (get_base_address): For TARGET_MEM_REF with a
      	symbol return that.
      	* tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
      	with a symbol.
      	(get_addr_base_and_unit_offset): Likewise.
      	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
      	TARGET_MEM_REFs.
      	(indirect_ref_may_alias_decl_p): Likewise.
      	(refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.
      
      From-SVN: r163278
      Richard Guenther committed
  2. 12 Aug, 2010 1 commit
    • tree-flow.h (struct ptr_info_def): Add align and misalign fields. · 1be38ccb
      2010-08-12  Richard Guenther  <rguenther@suse.de>
      
      	* tree-flow.h (struct ptr_info_def): Add align and misalign fields.
      	* tree-ssa-alias.c (get_ptr_info): Move ...
      	* tree-ssanames.c (get_ptr_info): ... here.  Initialize
      	align and misalign fields conservatively.
      	* tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
      	derive alignment information.
      	(evaluate_stmt): Derive alignment information from memory
      	allocation functions.
      	* tree.h (get_pointer_alignment): Make unsigned.
      	* builtins.c (get_object_alignment): Use alignment information we
      	have computed for pointers.
      	(get_pointer_alignment): Likewise.  Make conservative, return
      	and unsigned value.
      	(expand_builtin_strlen): Adjust.
      	(expand_builtin_memcmp): Likewise.
      	(expand_builtin_strcmp): Likewise.
      	(expand_builtin_strncmp): Likewise.
      	(get_builtin_sync_mem): Use at least mode alignment.
      	(fold_builtin_memset): Adjust.
      	(fold_builtin_memory_op): Likewise.
      	* gimple-pretty-print.c (dump_gimple_phi): Alongside alias
      	information also dump pointer alignment knowledge.
      	(dump_gimple_stmt): Likewise.
      
      From-SVN: r163189
      Richard Guenther committed
  3. 10 Aug, 2010 2 commits
    • tree.h (get_object_alignment): Adjust prototype. · e80c2726
      2010-08-10  Richard Guenther  <rguenther@suse.de>
      
      	* tree.h (get_object_alignment): Adjust prototype.
      	* builtins.c (get_object_alignment): Return unsigned int,
      	drop the align parameter.  Handle MEM_REF, MISALIGNED_INDIRECT_REF
      	and TARGET_MEM_REF properly.
      	(get_pointer_alignment): Adjust.
      	* emit-rtl.c (get_mem_align_offset): Adjust comment.
      	(set_mem_attributes_minus_bitpos): Adjust.
      	* tree-ssa-ccp.c (get_value_from_alignment): Adjust.
      
      From-SVN: r163051
      Richard Guenther committed
    • tree.h (tree_node_kind): Delete. · 5a351c3c
      	* tree.h (tree_node_kind) [perm_list_kind,temp_list_kind]: Delete.
      	* tree.c (tree_node_kind): Delete corresponding entries.
      
      From-SVN: r163047
      Nathan Froyd committed
  4. 05 Aug, 2010 1 commit
    • Replace exact_log2(x & -x) in favor of more direct computation. · bd95721f
      	* toplev.h (ctz_hwi, clz_hwi, ffs_hwi): New.
      	(floor_log2): Use clz_hwi.
      	(exact_log2): Use ctz_hwi.
      	* toplev.c (ctz_hwi, clz_hwi, ffs_hwi): New.
      	* builtins.c (fold_builtin_bitop): Use them.
      	* simplify-rtx.c (simplify_const_unary_operation): Likewise.
      	* combine.c (get_pos_from_mask): Use ctz_hwi.
      	* double-int.c (double_int_ctz): Likewise.
      	* explow.c (force_reg): Likewise.
      	* tree.h (SET_DECL_OFFSET_ALIGN): Use ffs_hwi.
      
      From-SVN: r162920
      Richard Henderson committed
  5. 26 Jul, 2010 1 commit
  6. 23 Jul, 2010 1 commit
    • tree.h (struct tree_base): Add nameless_flag bitfield. · cd3f04c8
      	* tree.h (struct tree_base): Add nameless_flag bitfield.
      	(TYPE_NAMELESS, DECL_NAMELESS): Define.
      	* omp-low.c (create_omp_child_function, scan_omp_parallel,
      	scan_omp_task, lower_omp_taskreg): Set DECL_NAMELESS and/or
      	DECL_ARTIFICIAL where needed.
      	* dwarf2out.c (dwarf2_name): Return NULL if DECL_NAMELESS.
      	(type_tag): Return NULL if TYPE_NAMELESS or if TYPE_DECL
      	has DECL_NAMELESS set.
      
      	* trans-types.c (gfc_get_array_descriptor_base,
      	gfc_get_array_type_bounds): Set TYPE_NAMELESS.
      	* trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
      	instead of clearing DECL_NAME.
      	(gfc_build_dummy_array_decl): Set DECL_NAMELESS.
      
      From-SVN: r162476
      Jakub Jelinek committed
  7. 15 Jul, 2010 3 commits
    • tree.h (enum tree_index): Add TI_INTEGER_THREE. · 9a9d280e
      	* tree.h (enum tree_index): Add TI_INTEGER_THREE.
      	(integer_three_node): Add.
      	* tree.c (build_common_tree_nodes_2): Use integer_type_node insead of
      	NULL_TREE in build_int_cst calls. Initialize the integer_three_node.
      	* builtins.c (expand_builtin_prefetch): Use common tree nodes instead
      	of call build_int_cst.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto.
      	* tree-ssa-loop-ivopts.c (idx_find_step): Ditto.
      	(find_interesting_uses_address): Ditto.
      	* tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto.
      	* tree-eh.c (lower_eh_constructs_2): Ditto.
      	* tree-vect-loop.c (get_initial_def_for_induction): Ditto.
      	* c-typeck.c (really_start_incremental_init, push_init_level): Ditto.
      	* expmed.c (expand_divmod): Ditto.
      	* tree-mudflap.c (mx_register_decls): Ditto.
      	* varasm.c (array_size_for_constructor): Ditto.
      	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
      	* c-parser.c (c_parser_postfix_expression): Ditto.
      	
      /cp
      	* decl.c (integer_three_node): Remove.
      	(cxx_init_decl_processing): Do not initialize the integer_three_node.
      	* cp-tree.h (integer_three_node): Remove.
      
      From-SVN: r162230
      Anatoly Sokolov committed
    • * tree.h (TREE_RTL_OPERAND_CHECK): Delete. · 3d894a8e
      From-SVN: r162224
      Nathan Froyd committed
    • tree.h (DECL_CHAIN): Define. · 910ad8de
      gcc/
      	* tree.h (DECL_CHAIN): Define.
      	* alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* c-decl.c: Likewise.
      	* c-parser.c: Likewise.
      	* c-typeck.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* combine.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/i386/winnt-cxx.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/pa/som.h: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sh/symbian-cxx.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/vxworks.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      	* coverage.c: Likewise.
      	* dbxout.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* emit-rtl.c: Likewise.
      	* expr.c: Likewise.
      	* function.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimplify.c: Likewise.
      	* integrate.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa-struct-reorg.c: Likewise.
      	* ipa-type-escape.c: Likewise.
      	* langhooks.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* omp-low.c: Likewise.
      	* stor-layout.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-dump.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-mudflap.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-pretty-print.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* var-tracking.c: Likewise.
      	* varasm.c: Likewise.
      
      gcc/ada/
      	* gcc-interface/decl.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* gcc-interface/trans.c: Likewise.
      	* gcc-interface/utils.c: Likewise.
      	* gcc-interface/utils2.c: Likewise.
      
      gcc/c-family/
      	* c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* c-format.c: Likewise.
      
      gcc/cp/
      	* cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* call.c: Likewise.
      	* class.c: Likewise.
      	* cp-gimplify.c: Likewise.
      	* decl.c: Likewise.
      	* decl2.c: Likewise.
      	* init.c: Likewise.
      	* mangle.c: Likewise.
      	* name-lookup.c: Likewise.
      	* optimize.c: Likewise.
      	* parser.c: Likewise.
      	* pt.c: Likewise.
      	* rtti.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* typeck.c: Likewise.
      	* typeck2.c: Likewise.
      
      gcc/fortran/
      	* f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* trans-common.c: Likewise.
      	* trans-decl.c: Likewise.
      	* trans-types.c: Likewise.
      	* trans.c: Likewise.
      
      gcc/java/
      	* java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN.
      	* boehm.c: Likewise.
      	* class.c: Likewise.
      	* decl.c: Likewise.
      	* expr.c: Likewise.
      	* jcf-parse.c: Likewise.
      	* typeck.c: Likewise.
      	* verify-glue.c: Likewise.
      
      gcc/objc/
      	* objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
      
      gcc/testsuite/
      	* g++.dg/plugin/attribute_plugin.c: Carefully replace TREE_CHAIN
      	with DECL_CHAIN.
      
      From-SVN: r162223
      Nathan Froyd committed
  8. 13 Jul, 2010 1 commit
    • tree.h (build_function_call_expr): Delete. · 3bb06db4
      gcc/
      	* tree.h (build_function_call_expr): Delete.
      	(build_call_expr_loc_array): New function.
      	(build_call_expr_loc_vec): New function.
      	* tree-flow.h (struct omp_region): Change type of ws_args field
      	to a VEC.
      	* builtins.c (build_function_call_expr): Delete.
      	(build_call_expr_loc_array): New function.
      	(build_call_expr_loc): Call it.  Use XALLOCAVEC.
      	(build_call_expr): Likewise.
      	(build_call_expr_loc_vec): New function.
      	* cgraphunit.c (build_cdtor): Call build_call_expr instead of
      	build_function_call_expr.
      	* expr.c (emutls_var_address): Likewise.
      	* varasm.c (emutls_common_1): Likewise.
      	* omp-low.c (expand_omp_atomic_mutex): Likewise.
      	(expand_omp_taskreg): Adjust for new type of region->ws_args.
      	(get_ws_args_for): Return a VEC instead of a tree.
      	(expand_parallel_call): Call build_call_expr_loc_vec instead of
      	build_function_call_expr.
      	* stor-layout.c (self_referential_size): Likewise.
      
      gcc/fortran/
      	* trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
      	instead of build_function_call_expr.
      	* trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
      
      From-SVN: r162148
      Nathan Froyd committed
  9. 10 Jul, 2010 2 commits
    • re PR middle-end/42505 (loop canonicalization causes a lot of unnecessary temporary variables) · bec922f0
      2010-07-10  Sandra Loosemore  <sandra@codesourcery.com>
      
      	PR middle-end/42505
      
      	gcc/
      	* tree-inline.c (estimate_num_insns): Refactor builtin complexity
      	lookup code into....
      	* builtins.c (is_simple_builtin, is_inexpensive_builtin): ...these
      	new functions.
      	* tree.h (is_simple_builtin, is_inexpensive_builtin): Declare.
      	* cfgloopanal.c (target_clobbered_regs): Define.
      	(init_set_costs): Initialize target_clobbered_regs.
      	(estimate_reg_pressure_cost): Add call_p argument.  When true,
      	adjust the number of available registers to exclude the
      	call-clobbered registers.
      	* cfgloop.h (target_clobbered_regs): Declare.
      	(estimate_reg_pressure_cost): Adjust declaration.
      	* tree-ssa-loop-ivopts.c (struct ivopts_data): Add body_includes_call.
      	(ivopts_global_cost_for_size): Pass it to estimate_reg_pressure_cost.
      	(determine_set_costs): Dump target_clobbered_regs.
      	(loop_body_includes_call): New function.
      	(tree_ssa_iv_optimize_loop): Use it to initialize new field.
      	* loop-invariant.c (gain_for_invariant): Adjust arguments to pass
      	call_p flag through.
      	(best_gain_for_invariant): Likewise.
      	(find_invariants_to_move): Likewise.
      	(move_single_loop_invariants): Likewise, using already-computed
      	has_call field.
      
      From-SVN: r162043
      Sandra Loosemore committed
    • tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols. · 7e9b9697
      gcc/
      	* tree.h (DECL_REPLACEABLE_P): Strengthen check for weak symbols.
      
      gcc/testsuite/
      	* gcc.dg/attr-weak-hidden-1.c, gcc.dg/attr-weak-hidden-1a.c: New test.
      
      From-SVN: r162031
      Richard Sandiford committed
  10. 05 Jul, 2010 4 commits
    • double-int.h (fit_double_type): Remove declaration. · 88e06841
      	* double-int.h (fit_double_type): Remove declaration.
      	* double-int.c (fit_double_type): Remove function.
      	* tree.h (int_fits_type_p): Adjust prototype.
      	* tree.c (int_fits_type_p): Return bool. Use double_int_fits_to_tree_p
      	instead of fit_double_type.
      	(build_int_cst_type): Use double_int_to_tree and shwi_to_double_int
      	instead of fit_double_type and build_int_cst_wide.
      	* builtins.c (): Use double_int_fits_to_tree_p and double_int_to_tree
      	instead of fit_double_type and build_int_cst_wide.
      	(fold_builtin_object_size): Use double_int_fits_to_tree_p instead
      	of fit_double_type.
      
      From-SVN: r161847
      Anatoly Sokolov committed
    • tree.c (reference_alias_ptr_type): New function. · a41e5e86
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree.c (reference_alias_ptr_type): New function.
      	* tree.h (reference_alias_ptr_type): Declare.
      	* tree-ssa-loop-ivopts.c (copy_ref_info): Restructure to
      	allow non-TARGET_MEM_REF new refs.
      	(rewrite_use_address): Pass old alias pointer type to
      	create_mem_ref.
      	* tree-ssa-address.c (create_mem_ref_raw): Get alias pointer type.
      	Build a MEM_REF instead of a TARGET_MEM_REF if possible.
      	(create_mem_ref): Get alias pointer type.  Adjust calls to
      	create_mem_ref_raw.
      	(maybe_fold_tmr): Likewise.
      	* tree-flow.h (create_mem_ref): Adjust prototype.
      
      From-SVN: r161840
      Richard Guenther committed
    • tree.h (build_call_list): Remove. · cfe6dea2
      	* tree.h (build_call_list): Remove.
      	* tree.c (build_call_list): Remove.
      
      From-SVN: r161837
      Nathan Froyd committed
    • tree-ssa-loop-im.c (for_each_index): Do not handle ALIGN_INDIRECT_REF. · 75421dcd
      2010-07-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-loop-im.c (for_each_index): Do not handle
      	ALIGN_INDIRECT_REF.
      	(gen_lsm_tmp_name): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	(op_code_prio): Likewise.
      	(op_symbol_code): Likewise.
      	* tree.c (staticp): Likewise.
      	(build1_stat): Likewise.
      	* tree.h (INDIRECT_REF_P): Likewise.
      	* fold-const.c (maybe_lvalue_p): Likewise.
      	(operand_equal_p): Likewise.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
      	(ao_ref_init_from_vn_reference): Likewise.
      	* tree-ssa-loop-ivopts.c (idx_find_step): Likewise.
      	(find_interesting_uses_address): Likewise.
      	* dwarf2out.c (loc_list_from_tree): Likewise.
      	* gimplify.c (gimplify_expr): Likewise.
      	* tree-eh.c (tree_could_trap_p): Likewise.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
      	* tree-ssa-loop-prefetch.c (idx_analyze_ref): Likewise.
      	* tree-cfg.c (verify_types_in_gimple_min_lval): Likewise.
      	* config/rs6000/rs6000 (rs6000_check_sdmode): Likewise.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* expr.c (safe_from_p): Likewise.
      	(expand_expr_real_1): Likewise.  TER BIT_AND_EXPRs into MEM_REFs.
      	* tree-vect-data-refs.c (vect_setup_realignment): Build
      	BIT_AND_EXPR and MEM_REF instead of ALIGN_INDIRECT_REF.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      	* tree.def (ALIGN_INDIRECT_REF): Remove.
      
      From-SVN: r161830
      Richard Guenther committed
  11. 01 Jul, 2010 1 commit
    • re PR middle-end/42834 (memcpy folding overeager) · 70f34814
      2010-07-01  Richard Guenther  <rguenther@suse.de>
      
      	PR middle-end/42834
      	PR middle-end/44468
      	* doc/gimple.texi (is_gimple_mem_ref_addr): Document.
      	* doc/generic.texi (References to storage): Document MEM_REF.
      	* tree-pretty-print.c (dump_generic_node): Handle MEM_REF.
      	(print_call_name): Likewise.
      	* tree.c (recompute_tree_invariant_for_addr_expr): Handle MEM_REF.
      	(build_simple_mem_ref_loc): New function.
      	(mem_ref_offset): Likewise.
      	* tree.h (build_simple_mem_ref_loc): Declare.
      	(build_simple_mem_ref): Define.
      	(mem_ref_offset): Declare.
      	* fold-const.c: Include tree-flow.h.
      	(operand_equal_p): Handle MEM_REF.
      	(build_fold_addr_expr_with_type_loc): Likewise.
      	(fold_comparison): Likewise.
      	(fold_unary_loc): Fold
      	VIEW_CONVERT_EXPR <T1, MEM_REF <T2, ...>> to MEM_REF <T1, ...>.
      	(fold_binary_loc): Fold MEM[&MEM[p, CST1], CST2] to MEM[p, CST1 + CST2],
      	fold MEM[&a.b, CST2] to MEM[&a, offsetof (a, b) + CST2].
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle MEM_REF.
      	(ptr_deref_may_alias_ref_p_1): Likewise.
      	(ao_ref_base_alias_set): Properly differentiate base object for
      	offset and TBAA.
      	(ao_ref_init_from_ptr_and_size): Use MEM_REF.
      	(indirect_ref_may_alias_decl_p): Handle MEM_REFs properly.
      	(indirect_refs_may_alias_p): Likewise.
      	(refs_may_alias_p_1): Likewise.  Remove pointer SSA name def
      	chasing code.
      	(ref_maybe_used_by_call_p_1): Handle MEM_REF.
      	(call_may_clobber_ref_p_1): Likewise.
      	* dwarf2out.c (loc_list_from_tree): Handle MEM_REF.
      	* expr.c (expand_assignment): Handle MEM_REF.
      	(store_expr): Handle MEM_REFs from STRING_CSTs.
      	(store_field): If expanding a MEM_REF of a non-addressable
      	decl use bitfield operations.
      	(get_inner_reference): Handle MEM_REF.
      	(expand_expr_addr_expr_1): Likewise.
      	(expand_expr_real_1): Likewise.
      	* tree-eh.c (tree_could_trap_p): Handle MEM_REF.
      	* alias.c (ao_ref_from_mem): Handle MEM_REF.
      	(get_alias_set): Likewise.  Properly handle VIEW_CONVERT_EXPRs.
      	* tree-data-ref.c (dr_analyze_innermost): Handle MEM_REF.
      	(dr_analyze_indices): Likewise.
      	(dr_analyze_alias): Likewise.
      	(object_address_invariant_in_loop_p): Likewise.
      	* gimplify.c (mark_addressable): Handle MEM_REF.
      	(gimplify_cond_expr): Build MEM_REFs.
      	(gimplify_modify_expr_to_memcpy): Likewise.
      	(gimplify_init_ctor_preeval_1): Handle MEM_REF.
      	(gimple_fold_indirect_ref): Adjust.
      	(gimplify_expr): Handle MEM_REF.  Gimplify INDIRECT_REF to MEM_REF.
      	* tree.def (MEM_REF): New tree code.
      	* tree-dfa.c: Include toplev.h.
      	(get_ref_base_and_extent): Handle MEM_REF.
      	(get_addr_base_and_unit_offset): New function.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Handle MEM_REF.
      	* gimple-fold.c (may_propagate_address_into_dereference): Handle
      	MEM_REF.
      	(maybe_fold_offset_to_array_ref): Allow possibly out-of bounds
      	accesses if the array has just one dimension.  Remove always true
      	parameter.  Do not require type compatibility here.
      	(maybe_fold_offset_to_component_ref): Remove.
      	(maybe_fold_stmt_indirect): Remove.
      	(maybe_fold_reference): Remove INDIRECT_REF handling.
      	Fold back to non-MEM_REF.
      	(maybe_fold_offset_to_address): Simplify.  Deal with type
      	mismatches here.
      	(maybe_fold_reference): Likewise.
      	(maybe_fold_stmt_addition): Likewise.  Also handle
      	&ARRAY + I in addition to &ARRAY[0] + I.
      	(fold_gimple_assign): Handle ADDR_EXPR of MEM_REFs.
      	(gimple_get_relevant_ref_binfo): Handle MEM_REF.
      	* cfgexpand.c (expand_debug_expr): Handle MEM_REF.
      	* tree-ssa.c (useless_type_conversion_p): Make most pointer
      	conversions useless.
      	(warn_uninitialized_var): Handle MEM_REF.
      	(maybe_rewrite_mem_ref_base): New function.
      	(execute_update_addresses_taken): Implement re-writing of MEM_REFs
      	to SSA form.
      	* tree-inline.c (remap_gimple_op_r): Handle MEM_REF, remove
      	INDIRECT_REF handling.
      	(copy_tree_body_r): Handle MEM_REF.
      	* gimple.c (is_gimple_addressable): Adjust.
      	(is_gimple_address): Likewise.
      	(is_gimple_invariant_address): ADDR_EXPRs of MEM_REFs with
      	invariant base are invariant.
      	(is_gimple_min_lval): Adjust.
      	(is_gimple_mem_ref_addr): New function.
      	(get_base_address): Handle MEM_REF.
      	(count_ptr_derefs): Likewise.
      	(get_base_loadstore): Likewise.
      	* gimple.h (is_gimple_mem_ref_addr): Declare.
      	(gimple_call_fndecl): Handle invariant MEM_REF addresses.
      	* tree-cfg.c (verify_address): New function, split out from ...
      	(verify_expr): ... here.  Use for verifying ADDR_EXPRs and
      	the address operand of MEM_REFs.  Verify MEM_REFs.  Reject
      	INDIRECT_REFs.
      	(verify_types_in_gimple_min_lval): Handle MEM_REF.  Disallow
      	INDIRECT_REF.  Allow conversions.
      	(verify_types_in_gimple_reference): Verify VIEW_CONVERT_EXPR of
      	a register does not change its size.
      	(verify_types_in_gimple_reference): Verify MEM_REF.
      	(verify_gimple_assign_single): Disallow INDIRECT_REF.
      	Handle MEM_REF.
      	* tree-ssa-operands.c (opf_non_addressable, opf_not_non_addressable):
      	New.
      	(mark_address_taken): Handle MEM_REF.
      	(get_indirect_ref_operands): Pass through opf_not_non_addressable.
      	(get_asm_expr_operands): Pass opf_not_non_addressable.
      	(get_expr_operands): Handle opf_[not_]non_addressable.
      	Handle MEM_REF.  Remove INDIRECT_REF handling.
      	* tree-vrp.c: (check_array_ref): Handle MEM_REF.
      	(search_for_addr_array): Likewise.
      	(check_array_bounds): Likewise.
      	(vrp_stmt_computes_nonzero): Adjust for MEM_REF.
      	* tree-ssa-loop-im.c (for_each_index): Handle MEM_REF.
      	(ref_always_accessed_p): Likewise.
      	(gen_lsm_tmp_name): Likewise.  Handle ADDR_EXPR.
      	* tree-complex.c (extract_component): Do not handle INDIRECT_REF.
      	Handle MEM_REF.
      	* cgraphbuild.c (mark_load): Properly check for NULL result
      	from get_base_address.
      	(mark_store): Likewise.
      	* tree-ssa-loop-niter.c (array_at_struct_end_p): Handle MEM_REF.
      	* tree-loop-distribution.c (generate_builtin): Exchange INDIRECT_REF
      	handling for MEM_REF.
      	* tree-scalar-evolution.c (follow_ssa_edge_expr): Handle
      	&MEM[ptr + CST] similar to POINTER_PLUS_EXPR.
      	* builtins.c (stabilize_va_list_loc): Use the function ABI
      	valist type if we couldn't canonicalize the argument type.
      	Always dereference with the canonical va-list type.
      	(maybe_emit_free_warning): Handle MEM_REF.
      	(fold_builtin_memory_op): Simplify and handle MEM_REFs in folding
      	memmove to memcpy.
      	* builtins.c (fold_builtin_memory_op): Use ref-all types
      	for all memcpy foldings.
      	* omp-low.c (build_receiver_ref): Adjust for MEM_REF.
      	(build_outer_var_ref): Likewise.
      	(scan_omp_1_op): Likewise.
      	(lower_rec_input_clauses): Likewise.
      	(lower_lastprivate_clauses): Likewise.
      	(lower_reduction_clauses): Likewise.
      	(lower_copyprivate_clauses): Likewise.
      	(expand_omp_atomic_pipeline): Likewise.
      	(expand_omp_atomic_mutex): Likewise.
      	(create_task_copyfn): Likewise.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MEM_REF.
      	Remove old union trick.  Initialize constant offsets.
      	(ao_ref_init_from_vn_reference): Likewise.  Do not handle
      	INDIRECT_REF.  Init base_alias_set properly.
      	(vn_reference_lookup_3): Replace INDIRECT_REF handling with
      	MEM_REF.
      	(vn_reference_fold_indirect): Adjust for MEM_REFs.
      	(valueize_refs): Fold MEM_REFs.  Re-evaluate constant offset
      	for ARRAY_REFs.
      	(may_insert): Remove.
      	(visit_reference_op_load): Do not test may_insert.
      	(run_scc_vn): Remove parameter, do not fiddle with may_insert.
      	* tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
      	a field to store the constant offset this op applies.
      	(run_scc_vn): Adjust prototype.
      	* cgraphunit.c (thunk_adjust): Adjust for MEM_REF.
      	* tree-ssa-ccp.c (ccp_fold): Replace INDIRECT_REF folding with
      	MEM_REF.  Propagate &foo + CST as &MEM[&foo, CST].  Do not
      	bother about volatile qualifiers on pointers.
      	(fold_const_aggregate_ref): Handle MEM_REF, do not handle INDIRECT_REF.
      	* tree-ssa-loop-ivopts.c
      	* tree-ssa-loop-ivopts.c (determine_base_object): Adjust
      	for MEM_REF.
      	(strip_offset_1): Likewise.
      	(find_interesting_uses_address): Replace INDIRECT_REF handling with
      	MEM_REF handling.
      	(get_computation_cost_at): Likewise.
      	* ipa-pure-const.c (check_op): Handle MEM_REF.
      	* tree-stdarg.c (check_all_va_list_escapes): Adjust for MEM_REF.
      	* tree-ssa-sink.c (is_hidden_global_store): Handle MEM_REF
      	and constants.
      	* ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF.
      	* tree-parloops.c (take_address_of): Adjust for MEM_REF.
      	(eliminate_local_variables_1): Likewise.
      	(create_call_for_reduction_1): Likewise.
      	(create_loads_for_reductions): Likewise.
      	(create_loads_and_stores_for_name): Likewise.
      	* matrix-reorg.c (may_flatten_matrices_1): Sanitize.
      	(ssa_accessed_in_tree): Handle MEM_REF.
      	(ssa_accessed_in_assign_rhs): Likewise.
      	(update_type_size): Likewise.
      	(analyze_accesses_for_call_stmt): Likewise.
      	(analyze_accesses_for_assign_stmt): Likewise.
      	(transform_access_sites): Likewise.
      	(transform_allocation_sites): Likewise.
      	* tree-affine.c (tree_to_aff_combination): Handle MEM_REF.
      	* tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
      	not handle INDIRECT_REF.
      	* tree-ssa-phiopt.c (add_or_mark_expr): Handle MEM_REF.
      	(cond_store_replacement): Likewise.
      	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle
      	MEM_REF, no not handle INDIRECT_REFs.
      	(insert_into_preds_of_block): Properly initialize avail.
      	(phi_translate_1): Fold MEM_REFs.  Re-evaluate constant offset
      	for ARRAY_REFs.  Properly handle reference lookups that
      	require a bit re-interpretation.
      	(can_PRE_operation): Do not handle INDIRECT_REF.  Handle MEM_REF.
      	* tree-sra.c
      	* tree-sra.c (build_access_from_expr_1): Handle MEM_REF.
      	(build_ref_for_offset_1): Remove.
      	(build_ref_for_offset): Build MEM_REFs.
      	(gate_intra_sra): Disable for now.
      	(sra_ipa_modify_expr): Handle MEM_REF.
      	(ipa_early_sra_gate): Disable for now.
      	* tree-sra.c (create_access): Swap INDIRECT_REF handling for
      	MEM_REF handling.
      	(disqualify_base_of_expr): Likewise.
      	(ptr_parm_has_direct_uses): Swap INDIRECT_REF handling for
      	MEM_REF handling.
      	(sra_ipa_modify_expr): Remove INDIRECT_REF handling.
      	Use mem_ref_offset.  Remove bogus folding.
      	(build_access_from_expr_1): Properly handle MEM_REF for
      	non IPA-SRA.
      	(make_fancy_name_1): Add support for MEM_REF.
      	* tree-predcom.c (ref_at_iteration): Handle MEM_REFs.
      	* tree-mudflap.c (mf_xform_derefs_1): Adjust for MEM_REF.
      	* ipa-prop.c (compute_complex_assign_jump_func): Handle MEM_REF.
      	(compute_complex_ancestor_jump_func): Likewise.
      	(ipa_analyze_virtual_call_uses): Likewise.
      	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Replace
      	INDIRECT_REF folding with more generalized MEM_REF folding.
      	(tree_ssa_forward_propagate_single_use_vars): Adjust accordingly.
      	(forward_propagate_addr_into_variable_array_index): Also handle
      	&ARRAY + I in addition to &ARRAY[0] + I.
      	* tree-ssa-dce.c (ref_may_be_aliased): Handle MEM_REF.
      	* tree-ssa-ter.c (find_replaceable_in_bb): Avoid TER if that
      	creates assignments with overlap.
      	* tree-nested.c (get_static_chain): Adjust for MEM_REF.
      	(get_frame_field): Likewise.
      	(get_nonlocal_debug_decl): Likewise.
      	(convert_nonlocal_reference_op): Likewise.
      	(struct nesting_info): Add mem_refs pointer-set.
      	(create_nesting_tree): Allocate it.
      	(convert_local_reference_op): Insert to be folded mem-refs.
      	(fold_mem_refs): New function.
      	(finalize_nesting_tree_1): Perform defered folding of mem-refs 
      	(free_nesting_tree): Free the pointer-set.
      	* tree-vect-stmts.c (vectorizable_store): Adjust for MEM_REF.
      	(vectorizable_load): Likewise.
      	* tree-ssa-phiprop.c (phiprop_insert_phi): Adjust for MEM_REF.
      	(propagate_with_phi): Likewise.
      	* tree-object-size.c (addr_object_size): Handle MEM_REFs
      	instead of INDIRECT_REFs.
      	(compute_object_offset): Handle MEM_REF.
      	(plus_stmt_object_size): Handle MEM_REF.
      	(collect_object_sizes_for): Dispatch to plus_stmt_object_size
      	for &MEM_REF.
      	* tree-flow.h (get_addr_base_and_unit_offset): Declare.
      	(symbol_marked_for_renaming): Likewise.
      	* Makefile.in (tree-dfa.o): Add $(TOPLEV_H).
      	(fold-const.o): Add $(TREE_FLOW_H).
      	* tree-ssa-structalias.c (get_constraint_for_1): Handle MEM_REF.
      	(find_func_clobbers): Likewise.
      	* ipa-struct-reorg.c (decompose_indirect_ref_acc): Handle MEM_REF.
      	(decompose_access): Likewise.
      	(replace_field_acc): Likewise.
      	(replace_field_access_stmt): Likewise.
      	(insert_new_var_in_stmt): Likewise.
      	(get_stmt_accesses): Likewise.
      	(reorg_structs_drive): Disable.
      	* config/i386/i386.c (ix86_va_start): Adjust for MEM_REF.
      	(ix86_canonical_va_list_type): Likewise.
      
      	cp/
      	* cp-gimplify.c (cp_gimplify_expr): Open-code the rhs
      	predicate we are looking for, allow non-gimplified
      	INDIRECT_REFs.
      
      	testsuite/
      	* gcc.c-torture/execute/20100316-1.c: New testcase.
      	* gcc.c-torture/execute/pr44468.c: Likewise.
      	* gcc.c-torture/compile/20100609-1.c: Likewise.
      	* gcc.dg/volatile2.c: Adjust.
      	* gcc.dg/plugin/selfassign.c: Likewise.
      	* gcc.dg/pr36902.c: Likewise.
      	* gcc.dg/tree-ssa/foldaddr-2.c: Remove.
      	* gcc.dg/tree-ssa/foldaddr-3.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-8.c: Adjust.
      	* gcc.dg/tree-ssa/pr17141-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-13.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-14.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-21.c: Likewise.
      	* gcc.dg/tree-ssa/pta-ptrarith-1.c: Likewise.
      	* gcc.dg/tree-ssa/20030807-7.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-10.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-fre-1.c: Likewise.
      	* gcc.dg/tree-ssa/pta-ptrarith-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-23.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-1.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-2.c: Likewise.
      	* gcc.dg/tree-ssa/struct-aliasing-1.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-25.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-26.c: Likewise.
      	* gcc.dg/tree-ssa/struct-aliasing-2.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-sccvn-4.c: Likewise.
      	* gcc.dg/tree-ssa/ssa-pre-7.c: Likewise.
      	* gcc.dg/tree-ssa/forwprop-5.c: Likewise.
      	* gcc.dg/struct/w_prof_two_strs.c: XFAIL.
      	* gcc.dg/struct/wo_prof_escape_arg_to_local.c: Likewise.
      	* gcc.dg/struct/wo_prof_global_var.c: Likewise.
      	* gcc.dg/struct/wo_prof_malloc_size_var.c: Likewise.
      	* gcc.dg/struct/w_prof_local_array.c: Likewise.
      	* gcc.dg/struct/w_prof_single_str_global.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_str_init.c: Likewise.
      	* gcc.dg/struct/wo_prof_array_through_pointer.c: Likewise.
      	* gcc.dg/struct/w_prof_global_array.c: Likewise.
      	* gcc.dg/struct/wo_prof_array_field.c: Likewise.
      	* gcc.dg/struct/wo_prof_single_str_local.c: Likewise.
      	* gcc.dg/struct/w_prof_local_var.c: Likewise.
      	* gcc.dg/struct/wo_prof_two_strs.c: Likewise.
      	* gcc.dg/struct/wo_prof_empty_str.c: Likewise.
      	* gcc.dg/struct/wo_prof_local_array.c: Likewise.
      	* gcc.dg/struct/w_prof_global_var.c: Likewise.
      	* gcc.dg/struct/wo_prof_single_str_global.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_substr_value.c: Likewise.
      	* gcc.dg/struct/wo_prof_global_array.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_return.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_substr_array.c: Likewise.
      	* gcc.dg/struct/wo_prof_double_malloc.c: Likewise.
      	* gcc.dg/struct/w_ratio_cold_str.c: Likewise.
      	* gcc.dg/struct/wo_prof_escape_substr_pointer.c: Likewise.
      	* gcc.dg/struct/wo_prof_local_var.c: Likewise.
      	* gcc.dg/tree-prof/stringop-1.c: Adjust.
      	* g++.dg/tree-ssa/pr31146.C: Likewise.
      	* g++.dg/tree-ssa/copyprop-1.C: Likewise.
      	* g++.dg/tree-ssa/pr33604.C: Likewise.
      	* g++.dg/plugin/selfassign.c: Likewise.
      	* gfortran.dg/array_memcpy_3.f90: Likewise.
      	* gfortran.dg/array_memcpy_4.f90: Likewise.
      	* c-c++-common/torture/pr42834.c: New testcase.
      
      From-SVN: r161655
      Richard Guenther committed
  12. 30 Jun, 2010 1 commit
    • tree.h (block_may_fallthru): Declare here. · 6662d794
      2010-06-30  Manuel López-Ibáñez  <manu@gcc.gnu.org>
      
      	* tree.h (block_may_fallthru): Declare here.
      	* tree-flow.h (block_may_fallthru): Do not declare here.
      	* c-typeck.c: Do not include tree-flow.h. Include gimple.h and
      	bitmap.h
      	* Makefile.in (c-typeck.o): Update dependencies.
      c-family/
      	* c-gimplify.c: Do not include tree-flow.h
      cp/
      	* tree.c: Include gimple.h. Do not include tree-flow.h
      	* decl.c: Do not include tree-flow.h
      	* Make-lang.in: Adjust dependencies.
      ada/
      	* gcc-interface/trans.c: Do not include tree-flow.h.
      	* gcc-interface/Make-lang.in: Adjust dependencies.
      
      From-SVN: r161591
      Manuel López-Ibáñez committed
  13. 28 Jun, 2010 1 commit
    • double-int.h (force_fit_type_double): Remove declaration. · 9589f23e
      	* double-int.h (force_fit_type_double): Remove declaration.
      	* double-int.c (force_fit_type_double): Move to tree.c.
      	* tree.h (force_fit_type_double): Declare.
      	* tree.h (force_fit_type_double): Moved from double-int.c. Use
      	double_int type for 'cst' argument. Use double_int_fits_to_tree_p and
      	double_int_to_tree instead of fit_double_type and build_int_cst_wide.
      	* convert.c (convert_to_pointer): Adjust call to
      	force_fit_type_double.
      	* tree-vrp.c (extract_range_from_assert,
      	extract_range_from_unary_expr): Adjust call to force_fit_type_double.
      	* fold-const.c: Update comment.
      	(int_const_binop, fold_convert_const_int_from_int,
      	fold_convert_const_int_from_real, fold_convert_const_int_from_fixed,
      	extract_muldiv_1, fold_div_compare, fold_sign_changed_comparison,
      	fold_unary_loc, fold_negate_const, fold_abs_const, fold_not_const,
      	round_up_loc): Adjust call to force_fit_type_double.
      	
      /c-family
      	* c-common.c (shorten_compare): Adjust call to force_fit_type_double.
      
      From-SVN: r161509
      Anatoly Sokolov committed
  14. 25 Jun, 2010 1 commit
    • With large parts from Jim Wilson: · 0354c0c7
      	PR target/43902
      	* tree-pretty-print.c (dump_generic_node, op_code_prio): Add
      	WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
      	* optabs.c (optab_for_tree_code): Likewise.
      	(expand_widen_pattern_expr): Likewise.
      	* tree-ssa-math-opts.c (convert_mult_to_widen): New function, broken
      	out of execute_optimize_widening_mul.
      	(convert_plusminus_to_widen): New function.
      	(execute_optimize_widening_mul): Use the two new functions.
      	* expr.c (expand_expr_real_2): Add support for GIMPLE_TERNARY_RHS.
      	Remove code to generate widening multiply-accumulate.  Add support
      	for WIDEN_MULT_PLUS_EXPR and WIDEN_MULT_MINUS_EXPR.
      	* gimple-pretty-print.c (dump_ternary_rhs): New function.
      	(dump_gimple_assign): Call it when appropriate.
      	* tree.def (WIDEN_MULT_PLUS_EXPR, WIDEN_MULT_MINUS_EXPR): New codes.
      	* cfgexpand.c (gimple_assign_rhs_to_tree): Likewise.
      	(expand_gimple_stmt_1): Likewise.
      	(expand_debug_expr): Support WIDEN_MULT_PLUS_EXPR and
      	WIDEN_MULT_MINUS_EXPR.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* gimple.c (extract_ops_from_tree_1): Renamed from
      	extract_ops_from_tree.  Add new arg for a third operand; fill it.
      	(gimple_build_assign_stat): Support operations with three operands.
      	(gimple_build_assign_with_ops_stat): Likewise.
      	(gimple_assign_set_rhs_from_tree): Likewise.
      	(gimple_assign_set_rhs_with_ops_1): Renamed from
      	gimple_assign_set_rhs_with_ops.  Add new arg for a third operand.
      	(get_gimple_rhs_num_ops): Support GIMPLE_TERNARY_RHS.
      	(get_gimple_rhs_num_ops): Handle WIDEN_MULT_PLUS_EXPR and
      	WIDEN_MULT_MINUS_EXPR.
      	* gimple.h (enum gimple_rhs_class): Add GIMPLE_TERNARY_RHS.
      	(extract_ops_from_tree_1): Adjust declaration.
      	(gimple_assign_set_rhs_with_ops_1): Likewise.
      	(gimple_build_assign_with_ops): Pass NULL for last operand.
      	(gimple_build_assign_with_ops3): New macro.
      	(gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3,
      	gimple_assign_set_rhs_with_ops, extract_ops_from_tree): New inline
      	functions.
      	* tree-cfg.c (verify_gimple_assign_ternary): New static function.
      	(verify_gimple_assign): Call it.
      	* doc/gimple.texi (Manipulating operands): Document GIMPLE_TERNARY_RHS.
      	(Tuple specific accessors, subsection GIMPLE_ASSIGN): Document new
      	functions for dealing with three-operand statements.
      	* tree.c (commutative_ternary_tree_code): New function.
      	* tree.h (commutative_ternary_tree_code): Declare it.
      	* tree-vrp.c (gimple_assign_nonnegative_warnv_p): Return false for ternary
      	statements.
      	(gimple_assign_nonzero_warnv_p): Likewise.
      	* tree-ssa-sccvn.c (stmt_has_constants): Handle GIMPLE_TERNARY_RHS.
      	* tree-ssa-ccp.c (get_rhs_assign_op_for_ccp): New static function.
      	(ccp_fold): Use it.  Handle GIMPLE_TERNARY_RHS.
      	* tree-ssa-dom.c (enum expr_kind): Add EXPR_TERNARY.
      	(struct hashtable_expr): New member ternary in the union.
      	(initialize_hash_element): Handle GIMPLE_TERNARY_RHS.
      	(hashable_expr_equal_p): Fix indentation.  Handle EXPR_TERNARY.
      	(iterative_hash_hashable_expr): Likewise.
      	(print_expr_hash_elt): Handle EXPR_TERNARY.
      	* gimple-fold.c (fold_gimple_assign): Handle GIMPLE_TERNARY_RHS.
      	* tree-ssa-threadedge.c (fold_assignment_stmt): Remove useless break
      	statements.  Handle GIMPLE_TERNARY_RHS.
      
      testsuite/
      	PR target/43902
      	* gcc.target/mips/madd-9.c: New test.
      
      From-SVN: r161366
      Bernd Schmidt committed
  15. 18 Jun, 2010 1 commit
  16. 17 Jun, 2010 1 commit
    • tree.h (vec_member): Declare. · bfdb7b70
      gcc/
      	* tree.h (vec_member): Declare.
      	* tree.c (vec_member): Define.
      
      gcc/cp/
      	* name-lookup.c (struct arg_lookup): Convert namespaces and
      	classes fields to VEC.
      	(arg_assoc_namespace): Adjust for new type of namespaces.
      	(arg_assoc_class): Adjust for new type of classes.
      	(lookup_arg_dependent): Use make_tree_vector and
      	release_tree_vector.
      	* typeck2.c (build_x_arrow): Use vec_member.
      
      From-SVN: r160936
      Nathan Froyd committed
  17. 14 Jun, 2010 1 commit
    • re PR bootstrap/44426 (gcc 4.5.0 requires c9x compiler to build) · aa493694
      	PR bootstrap/44426
      	* tree.h (build_call_expr): Don't define as vararg macro, instead
      	add a prototype.
      	* builtins.c (build_call_nofold): Remove.
      	(expand_builtin_int_roundingfn, expand_builtin_pow,
      	expand_builtin_mempcpy_args, expand_builtin_stpcpy,
      	expand_builtin_memset_args, expand_builtin_strcmp,
      	expand_builtin_strncmp, expand_builtin_memory_chk): Use
      	build_call_nofold_loc instead of build_call_nofold.
      	(build_call_expr): New function.
      
      From-SVN: r160754
      Jakub Jelinek committed
  18. 13 Jun, 2010 1 commit
    • lto-streamer-in.c (lto_input_ts_type_tree_pointers): Do not stream but… · 4a2ac96f
      lto-streamer-in.c (lto_input_ts_type_tree_pointers): Do not stream but initialize TYPE_CANONICAL to NULL.
      
      2010-06-13  Richard Guenther  <rguenther@suse.de>
      
      	* lto-streamer-in.c (lto_input_ts_type_tree_pointers):
      	Do not stream but initialize TYPE_CANONICAL to NULL.
      	(lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL.
      	* gimple.c (gimple_types_compatible_p): Disregard
      	TYPE_STRUCTURAL_EQUALITY_P.
      	(gimple_register_type): Use TYPE_CANONICAL as cache.
      	* lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL
      	before registering common types.
      	* config/i386/i386.c (ix86_function_arg_boundary): Do not
      	use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT.
      	* tree.h (TYPE_CANONICAL): Clarify documentation.
      
      	lto/
      	* lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
      
      From-SVN: r160679
      Richard Guenther committed
  19. 08 Jun, 2010 1 commit
    • utils.c (init_gnat_to_gnu): Use typed GC allocation. · a9429e29
      gcc/ada:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* gcc-interface/utils.c (init_gnat_to_gnu): Use typed GC
      	allocation.
      	(init_dummy_type): Likewise.
      	(gnat_pushlevel): Likewise.
      
      	* gcc-interface/trans.c (Attribute_to_gnu): Likewise.
      	(Subprogram_Body_to_gnu): Likewise.
      	(Compilation_Unit_to_gnu): Likewise.
      	(start_stmt_group): Likewise.
      	(extract_encoding): Likewise.
      	(decode_name): Likewise.
      
      	* gcc-interface/misc.c (gnat_printable_name): Likewise.
      
      	* gcc-interface/decl.c (annotate_value): Likewise.
      
      	* gcc-interface/ada-tree.h (struct lang_type): Add variable_size
      	GTY option.
      	(struct lang_decl): Likewise.
      	(SET_TYPE_LANG_SPECIFIC): Use typed GC allocation.
      	(SET_DECL_LANG_SPECIFIC): Likewise.
      
      gcc/c-family:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* c-pragma.c (push_alignment): Use typed GC allocation.
      	(handle_pragma_push_options): Likewise.
      
      	* c-common.c (parse_optimize_options): Likewise.
      
      	* c-common.h (struct sorted_fields_type): Add variable_size GTY
      	option.
      
      gcc/cp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* typeck2.c (abstract_virtuals_error): Likewise.
      
      	* pt.c (maybe_process_partial_specialization): Likewise.
      	(register_specialization): Likewise.
      	(add_pending_template): Likewise.
      	(lookup_template_class): Likewise.
      	(push_tinst_level): Likewise.
      
      	* parser.c (cp_lexer_new_main): Likewise.
      	(cp_lexer_new_from_tokens): Likewise.
      	(cp_token_cache_new): Likewise.
      	(cp_parser_context_new): Likewise.
      	(cp_parser_new): Likewise.
      	(cp_parser_nested_name_specifier_opt): Likewise.
      	(cp_parser_template_id): Likewise.
      
      	* name-lookup.c (binding_entry_make): Likewise.
      	(binding_table_construct): Likewise.
      	(binding_table_new): Likewise.
      	(cxx_binding_make): Likewise.
      	(pushdecl_maybe_friend): Likewise.
      	(begin_scope): Likewise.
      	(push_to_top_level): Likewise.
      
      	* lex.c (init_reswords): Likewise.
      	(retrofit_lang_decl): Likewise.
      	(cxx_dup_lang_specific_decl): Likewise.
      	(copy_lang_type): Likewise.
      	(cxx_make_type): Likewise.
      
      	* decl.c (make_label_decl): Likewise.
      	(check_goto): Likewise.
      	(start_preparsed_function): Likewise.
      	(save_function_data): Likewise.
      
      	* cp-tree.h (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
      
      	* cp-objcp-common.c (decl_shadowed_for_var_insert): Likewise.
      
      	* class.c (finish_struct_1): Likewise.
      
      	* cp-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* parser.c (cp_parser_new): Update comment to not reference
      	ggc_alloc.
      
      gcc/fortran:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* trans-types.c (gfc_get_nodesc_array_type): Use typed GC
      	allocation.
      	(gfc_get_array_type_bounds): Likewise.
      
      	* trans-decl.c (gfc_allocate_lang_decl): Likewise.
      	(gfc_find_module): Likewise.
      
      	* f95-lang.c (pushlevel): Likewise.
      
      	* trans.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      gcc/java:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* jcf-reader.c (jcf_parse_constant_pool): Use typed GC allocation.
      
      	* jcf-parse.c (java_parse_file): Likewise.
      	(process_zip_dir): Likewise.
      
      	* java-tree.h (MAYBE_CREATE_VAR_LANG_DECL_SPECIFIC): Likewise.
      	(MAYBE_CREATE_TYPE_TYPE_LANG_SPECIFIC): Likewise.
      
      	* expr.c (add_type_assertion): Likewise.
      
      	* decl.c (make_binding_level): Likewise.
      	(java_dup_lang_specific_decl): Likewise.
      
      	* constants.c (set_constant_entry): Likewise.
      	(cpool_for_class): Likewise.
      
      	* class.c (add_method_1): Likewise.
      	(java_treetreehash_new): Likewise.
      
      	* java-tree.h (struct lang_type): Add variable_size GTY option.
      	(struct lang_decl): Likewise.
      
      	* jch.h (struct cpool_entry): Likewise.
      
      	* java-tree.h (java_treetreehash_create): Remove parameter ggc.
      
      	* except.c (prepare_eh_table_type): Update
      	java_treetreehash_create call.
      
      	* class.c (add_method_1): Update java_treetreehash_create call.
      	(java_treetreehash_create): Remove parameter gc.  Use
      	htab_create_ggc.
      
      gcc/lto:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* lto.c (lto_read_in_decl_state): Use typed GC allocation.
      	(lto_file_read): Likewise.
      	(new_partition): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      
      gcc/objc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objc-act.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      	* objc-act.c (objc_volatilize_decl): Likewise.
      	(objc_build_string_object): Likewise.
      	(hash_init): Likewise.
      	(hash_enter): Likewise.
      	(hash_add_attr): Likewise.
      	(add_class): Likewise.
      	(start_class): Likewise.
      
      gcc/objcp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* objcp-decl.h (ALLOC_OBJC_TYPE_LANG_SPECIFIC): Use typed GC
      	allocation.
      
      gcc:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* doc/tm.texi (Per-Function Data): Do not reference ggc_alloc.
      
      	* doc/gty.texi (GTY Options): Document typed GC allocation and
      	variable_size GTY option.
      
      	* ggc-internal.h: New.
      
      	* ggc.h: Update copyright year.
      	(digit_string): Move to stringpool.c.
      	(ggc_mark_stringpool, ggc_purge_stringpool, ggc_mark_roots)
      	(gt_pch_save_stringpool, gt_pch_fixup_stringpool)
      	(gt_pach_restore_stringpool, gt_pch_p_S, gt_pch_note_object)
      	(init_ggc_pch, ggc_pch_count_object, ggc_pch_total_size)
      	(ggc_pch_this_base, ggc_pch_alloc_object, ggc_pch_prepare_write)
      	(ggc_pch_write_object, ggc_pch_finish, ggc_pch_read)
      	(ggc_force_collect, ggc_get_size, ggc_statistics)
      	(ggc_print_common_statistics): Move to ggc-internal.h.
      	(digit_vector, new_ggc_zone, destroy_ggc_zone, ggc_alloc_stat)
      	(ggc_alloc, ggc_alloc_cleared, ggc_realloc, ggc_calloc, GGC_NEW)
      	(GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, ggc_alloc_rtvec)
      	(ggc_alloc_tree, gt_pch_save, ggc_min_expand_heuristic)
      	(ggc_min_heapsize_heuristic, ggc_alloc_zone)
      	(ggc_alloc_zone_pass_stat): Remove.
      	(ggc_internal_alloc_stat, ggc_internal_alloc)
      	(ggc_internal_cleared_alloc_stat): New.
      	(GGC_RESIZEVEC, GGC_RESIZEVAR): Redefine.
      	(ggc_internal_vec_alloc_stat)
      	(ggc_internal_cleared_vec_alloc_stat)
      	(ggc_internal_vec_alloc_stat, ggc_internal_cleared_vec_alloc)
      	(ggc_alloc_atomic_stat, ggc_alloc_atomic)
      	(ggc_alloc_cleared_atomic, ggc_cleared_alloc_htab_ignore_args)
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(htab_create_ggc, splay_tree_new_ggc): Redefine.
      	(ggc_splay_alloc): Change the type of the first argument to
      	enum gt_types_enum.
      	(ggc_alloc_string): Make macro.
      	(ggc_alloc_string_stat): New.
      	(ggc_strdup): Redefine.
      	(rtl_zone, tree_zone, tree_id_zone): Declare unconditionally.
      	(ggc_alloc_rtvec_sized): New.
      	(ggc_alloc_zone_stat): Rename to ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat, ggc_internal_alloc_zone_stat)
      	(ggc_internal_cleared_alloc_zone_stat)
      	(ggc_internal_zone_alloc_stat)
      	(ggc_internal_zone_cleared_alloc_stat)
      	(ggc_internal_zone_vec_alloc_stat)
      	(ggc_alloc_zone_rtx_def_stat)
      	(ggc_alloc_zone_tree_node_stat)
      	(ggc_alloc_zone_cleared_tree_node_stat)
      	(ggc_alloc_cleared_gimple_statement_d_stat): New.
      
      	* ggc-common.c: Include ggc-internal.h.
      	(ggc_internal_cleared_alloc_stat): Rename from
      	ggc_alloc_cleared_stat.
      	(ggc_realloc_stat): Use ggc_internal_alloc_stat.
      	(ggc_calloc): Remove.
      	(ggc_cleared_alloc_htab_ignore_args): New.
      	(ggc_cleared_alloc_ptr_array_two_args): New.
      	(ggc_splay_alloc): Add obj_type parameter.
      	(init_ggc_heuristics): Formatting fixes.
      
      	* ggc-none.c: Update copyright year.
      	(ggc_alloc_stat): Rename to ggc_alloc_stat.
      	(ggc_alloc_cleared_stat): Rename to
      	ggc_internal_cleared_alloc_stat.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-page.c: Update copyright year.  Include ggc-internal.h.
      	Remove references to ggc_alloc in comments.
      	(ggc_alloc_typed_stat): Call ggc_internal_alloc_stat.
      	(ggc_alloc_stat): Rename to ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      	(struct alloc_zone, rtl_zone, tree_zone, tree_id_zone): New.
      
      	* ggc-zone.c: Include ggc-internal.h.  Remove references to
      	ggc_alloc in comments.
      	(ggc_alloc_zone_stat): ggc_internal_alloc_zone_stat.
      	(ggc_internal_alloc_zone_pass_stat): New.
      	(ggc_internal_cleared_alloc_zone_stat): New.
      	(ggc_alloc_typed_stat): Use ggc_internal_alloc_zone_pass_stat.
      	(ggc_alloc_stat): Rename ggc_internal_alloc_stat.
      	(new_ggc_zone, destroy_ggc_zone): Remove.
      
      	* stringpool.c: Update copyright year.  Include ggc-internal.h
      	(digit_vector): Make static.
      	(digit_string): Moved from ggc.h.
      	(stringpool_ggc_alloc): Use ggc_alloc_atomic.
      	(ggc_alloc_string): Rename to ggc_alloc_string_stat.
      
      	* Makefile.in (GGC_INTERNAL_H): New.
      	(ggc_common.o, ggc-page.o, ggc-zone.o, stringpool.o): Add
      	$(GGC_INTERNAL_H) to dependencies.
      
      	* gentype.c: Update copyright year.
      	(walk_type): Accept variable_size GTY option.
      	(USED_BY_TYPED_GC_P): New macro.
      	(write_enum_defn): Use USED_BY_TYPED_GC_P.  Do not output
      	whitespace at the end of strings.
      	(get_type_specifier, variable_size_p): New functions.
      	(alloc_quantity, alloc_zone): New enums.
      	(write_typed_alloc_def): New function.
      	(write_typed_struct_alloc_def): Likewise.
      	(write_typed_typed_typedef_alloc_def): Likewise.
      	(write_typed_alloc_defns): Likewise.
      	(output_typename, write_splay_tree_allocator_def): Likewise.
      	(write_splay_tree_allocators): Likewise.
      	(main): Call write_typed_alloc_defns and
      	write_splay_tree_allocators.
      
      	* lto-streamer.h (lto_file_decl_data_ptr): New.
      
      	* passes.c (order): Define using cgraph_node_ptr.
      
      	* strinpool.c (struct string_pool_data): Declare nested_ptr using
      	ht_identifier_ptr.
      
      	* gimple.h (union gimple_statement_d): Likewise.
      
      	* rtl.h (struct rtx_def): Likewise.
      	(struct rtvec_def): Likewise.
      
      	* tree.h (union tree_node): Likewise.
      
      	* tree-ssa-operands.h (struct ssa_operand_memory_d): Likewise.
      
      	* cfgloop.c (record_loop_exits): Use htab_create_ggc.
      
      	* tree-scalar-evolution.c (scev_initialize): Likewise.
      
      	* alias.c (record_alias_subset): Update splay_tree_new_ggc call.
      
      	* dwarf2asm.c (dw2_force_const_mem): Likewise.
      
      	* omp-low.c (lower_omp_critical): Likewise.
      
      	* bitmap.h (struct bitmap_head_def): Update comment to not
      	reference ggc_alloc.
      
      	* config/pa/pa.c (get_deferred_label): Use GGC_RESIZEVEC.
      
      	* ira.c (fix_reg_equiv_init): Use GGC_RESIZEVEC.
      
      	* ipa-prop.c (duplicate_ggc_array): Rename to
      	duplicate_ipa_jump_func_array.  Use typed GC allocation.
      	(ipa_edge_duplication_hook): Call duplicate_ipa_jump_func_array.
      
      	* gimple.c (gimple_alloc_stat): Use
      	ggc_alloc_cleared_gimple_statement_d_stat.
      
      	* varasm.c (create_block_symbol): Use ggc_alloc_zone_rtx_def.
      
      	* tree.c (make_node_stat): Use
      	ggc_alloc_zone_cleared_tree_node_stat.
      	(make_tree_vec_stat): Likewise.
      	(build_vl_exp_stat): Likewise.
      	(copy_node_stat): Use ggc_alloc_zone_tree_node_stat.
      	(make_tree_binfo_stat): Likewise.
      	(tree_cons_stat): Likewise.
      
      	* rtl.c (rtx_alloc_stat): Use ggc_alloc_zone_rtx_def_stat.
      	(shallow_copy_rtx_stat): Likewise.
      	(make_node_stat): Likewise.
      
      	* lto-symtab.c: Fix comment.
      
      	* tree-cfg.c (create_bb): Update comment to not reference
      	ggc_alloc_cleared.
      	* tree-ssa-structalias.c (struct heapvar_for_stmt): Fix param_is
      	value.
      
      	* varpool.c (varpool_node): Use typed GC allocation.
      	(varpool_extra_name_alias): Likewise.
      
      	* varasm.c (emutls_decl): Likewise.
      	(get_unnamed_section): Likewise.
      	(get_noswitch_section): Likewise.
      	(get_section): Likewise.
      	(get_block_for_section): Likewise.
      	(build_constant_desc): Likewise.
      	(create_constant_pool): Likewise.
      	(force_const_mem): Likewise.
      
      	* tree.c (build_vl_exp_stat): Likewise.
      	(build_real): Likewise.
      	(build_string): Likewise.
      	(decl_debug_expr_insert): Likewise.
      	(decl_value_expr_insert): Likewise.
      	(type_hash_add): Likewise.
      	(build_omp_clause): Likewise.
      
      	* tree-ssanames.c (duplicate_ssa_name_ptr_info): Likewise.
      
      	* tree-ssa.c (init_tree_ssa): Likewise.
      
      	* tree-ssa-structalias.c (heapvar_insert): Likewise.
      
      	* tree-ssa-operands.c (ssa_operand_alloc): Likewise.
      
      	* tree-ssa-loop-niter.c (record_estimate): Likewise.
      
      	* tree-ssa-alias.c (get_ptr_info): Likewise.
      
      	* tree-scalar-evolution.c (new_scev_info_str): Likewise.
      
      	* tree-phinodes.c (allocate_phi_node): Likewise.
      
      	* tree-iterator.c (tsi_link_before): Likewise.
      	(tsi_link_after): Likewise.
      
      	* tree-eh.c (add_stmt_to_eh_lp_fn): Likewise.
      
      	* tree-dfa.c (create_var_ann): Likewise.
      
      	* tree-cfg.c (create_bb): Likewise.
      
      	* toplev.c (alloc_for_identifier_to_locale): Likewise.
      	(general_init): Likewise.
      
      	* stringpool.c (stringpool_ggc_alloc): Likewise.
      	(gt_pch_save_stringpool): Likewise.
      
      	* sese.c (if_region_set_false_region): Likewise.
      
      	* passes.c (do_per_function_toporder): Likewise.
      
      	* optabs.c (set_optab_libfunc): Likewise.
      	(set_conv_libfunc): Likewise.
      
      	* lto-symtab.c (lto_symtab_register_decl): Likewise.
      
      	* lto-streamer-in.c (lto_input_eh_catch_list): Likewise.
      	(input_eh_region): Likewise.
      	(input_eh_lp): Likewise.
      	(make_new_block): Likewise.
      	(unpack_ts_real_cst_value_fields): Likewise.
      
      	* lto-section-in.c (lto_new_in_decl_state): Likewise.
      
      	* lto-cgraph.c (input_node_opt_summary): Likewise.
      
      	* loop-init.c (loop_optimizer_init): Likewise.
      
      	* lambda.h (lambda_vector_new): Likewise.
      
      	* lambda-code.c (replace_uses_equiv_to_x_with_y): Likewise.
      
      	* ira.c (update_equiv_regs): Likewise.
      
      	* ipa.c (cgraph_node_set_new): Likewise.
      	(cgraph_node_set_add): Likewise.
      	(varpool_node_set_new): Likewise.
      	(varpool_node_set_add): Likewise.
      
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
      	(duplicate_ipa_jump_func_array): Likewise.
      	(ipa_read_node_info): Likewise.
      
      	* ipa-cp.c (ipcp_create_replace_map): Likewise.
      
      	* integrate.c (get_hard_reg_initial_val): Likewise.
      
      	* gimple.c (gimple_alloc_stat): Likewise.
      	(gimple_build_omp_for): Likewise.
      	(gimple_seq_alloc): Likewise.
      	(gimple_copy): Likewise.
      
      	* gimple-iterator.c (gsi_insert_before_without_update): Likewise.
      	(gsi_insert_after_without_update): Likewise.
      
      	* function.c (add_frame_space): Likewise.
      	(insert_temp_slot_address): Likewise.
      	(assign_stack_temp_for_type): Likewise.
      	(allocate_struct_function): Likewise.
      	(types_used_by_var_decl_insert): Likewise.
      
      	* except.c (init_eh_for_function): Likewise.
      	(gen_eh_region): Likewise.
      	(gen_eh_region_catch): Likewise.
      	(gen_eh_landing_pad): Likewise.
      	(add_call_site): Likewise.
      
      	* emit-rtl.c (get_mem_attrs): Likewise.
      	(get_reg_attrs): Likewise.
      	(start_sequence): Likewise.
      	(init_emit): Likewise.
      
      	* dwarf2out.c (new_cfi): Likewise.
      	(queue_reg_save): Likewise.
      	(dwarf2out_frame_init): Likewise.
      	(new_loc_descr): Likewise.
      	(find_AT_string): Likewise.
      	(new_die): Likewise.
      	(add_var_loc_to_decl): Likewise.
      	(clone_die): Likewise.
      	(clone_as_declaration): Likewise.
      	(break_out_comdat_types): Likewise.
      	(new_loc_list): Likewise.
      	(loc_descriptor): Likewise.
      	(add_loc_descr_to_each): Likewise.
      	(add_const_value_attribute): Likewise.
      	(tree_add_const_value_attribute): Likewise.
      	(add_comp_dir_attribute): Likewise.
      	(add_name_and_src_coords_attributes): Likewise.
      	(lookup_filename): Likewise.
      	(store_vcall_insn): Likewise.
      	(dwarf2out_init): Likewise.
      
      	* dbxout.c (dbxout_init): Likewise.
      
      	* config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise.
      
      	* config/sparc/sparc.c (sparc_init_machine_status): Likewise.
      
      	* config/score/score7.c (score7_output_external): Likewise.
      
      	* config/score/score3.c (score3_output_external): Likewise.
      
      	* config/s390/s390.c (s390_init_machine_status): Likewise.
      
      	* config/rs6000/rs6000.c (builtin_function_type): Likewise.
      	(rs6000_init_machine_status): Likewise.
      	(output_toc): Likewise.
      
      	* config/pa/pa.c (pa_init_machine_status): Likewise.
      	(get_deferred_plabel): Likewise.
      
      	* config/moxie/moxie.c (moxie_init_machine_status): Likewise.
      
      	* config/mmix/mmix.c (mmix_init_machine_status): Likewise.
      
      	* config/mips/mips.c (mflip_mips16_use_mips16_p): Likewise.
      
      	* config/mep/mep.c (mep_init_machine_status): Likewise.
      	(mep_note_pragma_flag): Likewise.
      
      	* config/m32c/m32c.c (m32c_init_machine_status): Likewise.
      
      	* config/iq2000/iq2000.c (iq2000_init_machine_status): Likewise.
      
      	* config/ia64/ia64.c (ia64_init_machine_status): Likewise.
      
      	* config/i386/winnt.c (i386_pe_record_external_function): Likewise.
      	(i386_pe_maybe_record_exported_symbol): Likewise.
      
      	* config/i386/i386.c (get_dllimport_decl): Likewise.
      	(ix86_init_machine_status): Likewise.
      	(assign_386_stack_local): Likewise.
      
      	* config/frv/frv.c (frv_init_machine_status): Likewise.
      
      	* config/darwin.c (machopic_indirection_name): Likewise.
      
      	* config/cris/cris.c (cris_init_machine_status): Likewise.
      
      	* config/bfin/bfin.c (bfin_init_machine_status): Likewise.
      
      	* config/avr/avr.c (avr_init_machine_status): Likewise.
      
      	* config/arm/arm.c (arm_init_machine_status): Likewise.
      
      	* config/alpha/alpha.c (alpha_init_machine_status): Likewise.
      	(alpha_need_linkage): Likewise.
      	(alpha_use_linkage): Likewise.
      
      	* cgraph.c (cgraph_allocate_node): Likewise.
      	(cgraph_create_edge_1): Likewise.
      	(cgraph_create_indirect_edge): Likewise.
      	(cgraph_add_asm_node): Likewise.
      
      	* cfgrtl.c (init_rtl_bb_info): Likewise.
      
      	* cfgloop.c (alloc_loop): Likewise.
      	(rescan_loop_exit): Likewise.
      
      	* cfg.c (init_flow): Likewise.
      	(alloc_block): Likewise.
      	(unchecked_make_edge): Likewise.
      
      	* c-parser.c (c_parse_init): Likewise.
      	(c_parse_file): Likewise.
      
      	* c-decl.c (bind): Likewise.
      	(record_inline_static): Likewise.
      	(push_scope): Likewise.
      	(make_label): Likewise.
      	(lookup_label_for_goto): Likewise.
      	(finish_struct): Likewise.
      	(finish_enum): Likewise.
      	(c_push_function_context): Likewise.
      
      	* bitmap.c (bitmap_element_allocate): Likewise.
      	(bitmap_gc_alloc_stat): Likewise.
      
      	* alias.c (record_alias_subset): Likewise.
      	(init_alias_analysis): Likewise.
      
      include:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.h: Update copyright years.
      	(splay_tree_s): Document fields.
      	(splay_tree_new_typed_alloc): New.
      
      	* hashtab.h: Update copyright years.
      	(htab_create_typed_alloc): New.
      
      libcpp:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* include/symtab.h (ht_identifier_ptr): New.
      
      libiberty:
      
      2010-06-08  Laurynas Biveinis  <laurynas.biveinis@gmail.com>
      
      	* splay-tree.c: Update copyright years.
      	(splay_tree_new_typed_alloc): New.
      	(splay_tree_new_with_allocator): Use it.
      
      	* hashtab.c: Update copyright years.
      	(htab_create_typed_alloc): New.
      	(htab_create_alloc): Use it.
      
      	* functions.texi: Regenerate.
      
      From-SVN: r160425
      Laurynas Biveinis committed
  20. 06 Jun, 2010 1 commit
    • re PR c++/44188 (Fails to produce DW_AT_typedef for typedef of anonymous struct) · e62b90b4
      Fix PR c++/44188
      
      gcc/ChangeLog:
      	PR c++/44188
      	* c-common.c (is_typedef_decl): Move this definition ...
      	* tree.c (is_typedef_decl): ... here.
      	(typdef_variant_p): Move definition here from gcc/cp/tree.c.
      	* c-common.h (is_typedef_decl): Move this declaration ...
      	* tree.h (is_typedef_decl): ... here.
      	(typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
      	* dwarf2out.c (is_naming_typedef_decl): New function.
      	(gen_tagged_type_die): Split out of ...
      	(gen_type_die_with_usage): ... this function. When an anonymous
      	tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
      	is emitted for the typedef.
      	(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
      	anonymous tagged types.
      
      gcc/cp/ChangeLog:
      	PR c++/44188
      	* cp-tree.h (typedef_variant_p): Move this declaration to
      	gcc/tree.h.
      	* tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
      	* decl.c (grokdeclarator): Do not rename debug info of an
      	anonymous tagged type named by a typedef.
      
      gcc/testsuite/ChangeLog:
      	PR c++/44188
      	* g++.dg/debug/dwarf2/typedef3.C: New test.
      
      From-SVN: r160347
      Dodji Seketeli committed
  21. 02 Jun, 2010 1 commit
    • tree.h (struct tree_decl_map): New type. · 53e030f1
      	* tree.h (struct tree_decl_map): New type.
      	(tree_decl_map_eq, tree_decl_map_marked_p): Define.
      	(tree_decl_map_hash): New prototype.
      	(debug_expr_for_decl, value_expr_for_decl): Change into
      	tree_decl_map hashtab from tree_map.
      	(init_ttree): Adjust initialization.
      	(tree_decl_map_hash): New function.
      	(decl_debug_expr_lookup, decl_debug_expr_insert,
      	decl_value_expr_lookup, decl_value_expr_insert): Adjust.
      cp/
      	* cp-objcp-common.c (shadowed_var_for_decl): Change into
      	tree_decl_map hashtab from tree_map.
      	(decl_shadowed_for_var_lookup, decl_shadowed_for_var_insert): Adjust.
      	(init_shadowed_var_for_decl): Adjust initialization.
      
      From-SVN: r160185
      Jakub Jelinek committed
  22. 01 Jun, 2010 1 commit
  23. 31 May, 2010 1 commit
  24. 28 May, 2010 1 commit
    • Revert "Fix PR c++/44188" · ec4be2f4
      gcc/ChangeLog:
      	revert fix for PR c++/44188
      	* c-common.c (is_typedef_decl): Revert the moving of  this
      	definition ...
      	* tree.c (is_typedef_decl): ... here.
      	(typdef_variant_p): Revert the moving of this  definition
      	here from gcc/cp/tree.c.
      	* c-common.h (is_typedef_decl): Revert the moving of this
      	declaration ...
      	* tree.h (is_typedef_decl): ... here.
      	(typedef_variant_p): Revert the moving of this  declaration here
      	from gcc/cp/cp-tree.h
      	* dwarf2out.c (is_naming_typedef_decl): Revert this new function.
      	(gen_tagged_type_die): Revert the splitting out of ...
      	(gen_type_die_with_usage): ... this function. Revert the anonymous
      	tagged type handling.
      	(gen_typedef_die): Revert emitting DW_TAG_typedef  for
      	typedefs naming anonymous tagged types.
      
      gcc/cp/ChangeLog:
      	Revert fix of PR c++/44188
      	* cp-tree.h (typedef_variant_p): Revert moving this declaration to
      	gcc/tree.h.
      	* tree.c (typedef_variant_p): Revert moving this definition to
      	gcc/tree.c.
      	* decl.c (grokdeclarator): Revert naming typedef handling.
      
      gcc/testsuite/ChangeLog:
      	Revert fix for PR c++/44188
      	* g++.dg/debug/dwarf2/typedef3.C: Revert new test.
      
      From-SVN: r159955
      Dodji Seketeli committed
  25. 27 May, 2010 2 commits
    • re PR c++/44188 (Fails to produce DW_AT_typedef for typedef of anonymous struct) · fe08ec12
      Fix PR c++/44188
      
      gcc/ChangeLog:
      	PR c++/44188
      	* c-common.c (is_typedef_decl): Move this definition ...
      	* tree.c (is_typedef_decl): ... here.
      	(typdef_variant_p): Move definition here from gcc/cp/tree.c.
      	* c-common.h (is_typedef_decl): Move this declaration ...
      	* tree.h (is_typedef_decl): ... here.
      	(typedef_variant_p): Move declaration here from gcc/cp/cp-tree.h
      	* dwarf2out.c (is_naming_typedef_decl): New function.
      	(gen_tagged_type_die): Split out of ...
      	(gen_type_die_with_usage): ... this function. When an anonymous
      	tagged type is named by a typedef, make sure a DW_TAG_typedef DIE
      	is emitted for the typedef.
      	(gen_typedef_die): Emit DW_TAG_typedef also for typedefs naming
      	anonymous tagged types.
      
      gcc/cp/ChangeLog:
      	PR c++/44188
      	* cp-tree.h (typedef_variant_p): Move this declaration to
      	gcc/tree.h.
      	* tree.c (typedef_variant_p): Move this definition to gcc/tree.c.
      	* decl.c (grokdeclarator): Do not rename debug info of an
      	anonymous tagged type named by a typedef.
      
      gcc/testsuite/ChangeLog:
      	PR c++/44188
      	* g++.dg/debug/dwarf2/typedef3.C: New test.
      
      From-SVN: r159943
      Dodji Seketeli committed
    • print-tree.c (debug_vec_tree): New fn. · b042534c
      	* print-tree.c (debug_vec_tree): New fn.
      	(print_vec_tree): New fn.
      	* tree.h: Declare them.
      	* gdbinit.in (ptv): New command.
      
      	* print-tree.c (print_node) [TREE_VEC]: Print elements normally.
      
      	* gdbinit.in (pdd): New command.
      
      From-SVN: r159941
      Jason Merrill committed
  26. 26 May, 2010 1 commit
    • demangle-expected: Add tests for __int128 and unsigned __int128 types. · a6766312
      libiberty/
      
      2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
      
              * testsuite/demangle-expected: Add tests for __int128
              and unsigned __int128 types.
      
      gcc/testsuite
      2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
      
      	* lib/target-supports.exp (check_effective_target_int128): New
      	function to check if __int128 types are available for target.
      	* testsuite/c-c++-common/int128-types-1.c: New.
      	* testsuite/c-c++-common/int128-1.c: New.
      	* testsuite/c-c++-common/int128-2.c: New.
      	* g++.dg/abi/mangle43.C: New.
      	* g++.dg/init/enum1.C: Handle __int128 case and add -Wno-overflow.
      	* g++.dg/cpp0x/nullptr04.C: Use __SIZE_TYPE__ for getting
      	pointer-wide scalar.
      	* g++.dg/other/pr25632.C: Likewise.
      	* g++.dg/other/large-size-array.C (DIM): Use ULLONG_MAX for win64 case.
      	* g++.dg/warn/pr13358-2.C: Add llp64 for check of special
      	overflow warnings.
      	* g++.dg/warn/pr13358-4.C: Likewise.
      	* g++.dg/warn/Wconversion-null-2.C:  Add 'long long' case.
      	* g++.dg/warn/Wconversion-null.C: Likewise.
      
      gcc/
      2010-05-26  Kai Tietz  <kai.tietz@onevision.com>
      
      	* builtin-types.def (BT_INT128): New primitive type.
      	(BT_UINT128): Likewise.
      	* c-common.c (c_common_r): Add __int128 keyword.
      	(c_common_type_for_size): Handle __int128.
      	(c_common_type_for_mode): Likewise.
      	(c_common_signed_or_unsigned_type): Likewise.
      	(c_common_nodes_and_builtins): Add builtin type
      	if target supports 128-bit integer scalar.
      	* c-common.h (enum rid): Add RID_INT128.
      	* c-cppbuiltin.c (c_cpp_builtins): Define __SIZEOF_INT128__
      	if target supports 128-bit integer scalar.
      	* c-decl.c (declspecs_add_type): Handle new keyword
      	__int128.
      	(finish_declspecs): Likewise.
      	* c-parser.c (c_token_starts_typename): Handle RID_INT128.
      	(c_token_starts_declspecs): Likewise.
      	(c_parser_declspecs): Likewise.
      	(c_parser_attributes): Likewise.
      	(c_parser_objc_selector): Likewise.
      	* c-pretty-print.c (pp_c_integer_constant): Handle __int128.
      	* c-tree.h (enum c_typespec_keyword): Add cts_int128.
      	* gimple.c (gimple_signed_or_unsigned_type): Handle int128 types.
      	* tree.c (make_or_reuse_type): Likewise.
      	(make_unsigned_type): Likewise.
      	(build_common_tree_nodes_2): Likewise.
      	* tree.h (enum integer_type_kind): Add itk_int128 and
      	itk_unsigned_int128.
      	(int128_integer_type_node): New define..
      	(int128_unsigned_type_node): New define.
      	* cp/cp-tree.h (cp_decl_specifier_seq): Add new bifield
      	explicit_int128_p.
      	* cp/decl.c (grokdeclarator): Handle __int128.
      	* cp/parser.c (cp_lexer_next_token_is_decl_specifier_ke): Likewise.
      	(cp_parser_simple_type_specifier): Likewise.
      	* cp/rtti.c (emit_support_tinfos): Add int128 nodes for rtti.
      	* cp/typeck.c (cp_common_type): Handle __int128.
      	* cp/mangle.c (integer_type_codes): Add itk_int128 and
      	itk_unsigned_int128.
      	* doc/extend.texi: Add documentation about __int128 type.
      
      From-SVN: r159879
      Kai Tietz committed
  27. 21 May, 2010 1 commit
    • tree.h: Include real.h and fixed-value.h as basic datatypes. · 40013784
      gcc/ChangeLog:
      	* tree.h: Include real.h and fixed-value.h as basic datatypes.
      	* dfp.c, convert.c, reload1.c, reginfo.c, tree-flow.h,
      	tree-ssa-threadedge.c, tree-ssanames.c, tree-loop-linear.c,
      	tree-into-ssa.c, tree-vect-generic.c, tree-ssa-structalias.c,
      	tree-ssa-loop-im.c, tree-dump.c, tree-complex.c, tree-ssa-uninit.c,
      	genrecog.c, tree-ssa-threadupdate.c, tree-ssa-loop-niter.c,
      	tree-pretty-print.c, tree-loop-distribution.c,
      	tree-ssa-loop-unswitch.c, c-lex.c, optabs.c, postreload-gcse.c,
      	tree-ssa-loop-manip.c, postreload.c, tree-ssa-loop-ch.c,
      	tree-tailcall.c, tree.c, reload.c, tree-scalar-evolution.c, rtlanal.c,
      	tree-phinodes.c, builtins.c, final.c, genoutput.c, fold-const.c,
      	tree-ssa-dse.c, genautomata.c, tree-ssa-uncprop.c, toplev.c,
      	tree-chrec.c, genemit.c, c-cppbuiltin.c, tree-ssa-sccvn.c,
      	tree-ssa-ccp.c, tree-ssa-loop-ivopts.c, mode-switching.c,
      	tree-call-cdce.c, cse.c, genpeep.c, tree-ssa-math-opts.c,
      	tree-ssa-dom.c, tree-nrv.c, tree-ssa-propagate.c, tree-ssa-alias.c,
      	tree-ssa-sink.c, jump.c, ifcvt.c, dwarf2out.c, expr.c, genattrtab.c,
      	genconditions.c, tree-ssa-loop-ivcanon.c, tree-ssa-loop.c,
      	tree-parloops.c, recog.c, tree-ssa-address.c, lcm.c, tree-eh.c,
      	gimple-pretty-print.c, c-pretty-print.c, print-rtl.c, gcse.c,
      	tree-if-conv.c, tree-data-ref.c, tree-affine.c, gimplify.c,
      	tree-ssa-phiopt.c, implicit-zee.c, expmed.c, tree-dfa.c, emit-rtl.c,
      	store-motion.c, cselib.c, tree-cfgcleanup.c, simplify-rtx.c,
      	tree-ssa-pre.c, genpreds.c, tree-mudflap.c, print-tree.c,
      	tree-ssa-copy.c, tree-ssa-forwprop.c, tree-ssa-dce.c, varasm.c,
      	tree-nested.c, tree-ssa.c, tree-ssa-loop-prefetch.c, rtl.c,
      	tree-inline.c, integrate.c, tree-optimize.c, tree-ssa-phiprop.c,
      	fixed-value.c, combine.c, tree-profile.c, c-common.c, sched-vis.c,
      	tree-cfg.c, passes.c, tree-ssa-reassoc.c, config/alpha/alpha.c,
      	config/frv/frv.c, config/s390/s390.c, config/m32c/m32c.c,
      	config/spu/spu.c, config/sparc/sparc.c, config/mep/mep.c,
      	config/m32r/m32r.c, config/rx/rx.c, config/i386/i386.c,
      	config/sh/sh.c, config/pdp11/pdp11.c, config/avr/avr.c,
      	config/crx/crx.c, config/xtensa/xtensa.c, config/stormy16/stormy16.c,
      	config/fr30/fr30.c, config/lm32/lm32.c, config/moxie/moxie.c,
      	config/m68hc11/m68hc11.c, config/cris/cris.c, config/iq2000/iq2000.c,
      	config/mn10300/mn10300.c, config/ia64/ia64.c, config/m68k/m68k.c,
      	config/rs6000/rs6000.c, config/picochip/picochip.c, config/darwin.c,
      	config/arc/arc.c, config/mcore/mcore.c, config/score/score3.c,
      	config/score/score7.c, config/score/score.c, config/arm/arm.c,
      	config/pa/pa.c, config/mips/mips.c, config/vax/vax.c,
      	config/h8300/h8300.c, config/v850/v850.c, config/mmix/mmix.c,
      	config/bfin/bfin.c:
      	Clean up redundant includes.
      	* Makefile.in: Update accordingly.
      
      java/ChangeLog:
      	* typeck.c, decl.c, jcf-parse.c, except.c, expr.c:
      
      cp/Changelog:
      	* error.c, tree.c, typeck2.c, cxx-pretty-print.c, mangle.c:
      	Clean up redundant includes.
      
      fortran/ChangeLog:
      	* trans-const.c, trans-types.c, trans-intrinsic.c:
      	Clean up redundant includes.
      
      From-SVN: r159663
      Steven Bosscher committed
  28. 19 May, 2010 2 commits
    • double-int.h (double_int_ior): New function. · 1961ffb8
      	* double-int.h (double_int_ior): New function.
      	* tree.h (build_int_cst_wide_type): Remove.
      	* tree.c (build_int_cst_wide_type): Remove.
      	* fold-const.c (native_interpret_int): Use double_int_to_tree instead
      	of build_int_cst_wide_type.
      	* stor-layout.c (set_sizetype): (Ditto.).
      	* dojump.c (do_jump): Use build_int_cstu instead of
      	build_int_cst_wide_type.
      
      /java
      	* jcf-parse.c (get_constant): Use double_int_to_tree instead of
      	build_int_cst_wide_type.
      
      From-SVN: r159595
      Anatoly Sokolov committed
    • Revert: · 39b27b3a
      	2010-05-18  Nathan Froyd  <froydnj@codesourcery.com>
      
      	* tree.h (build_call_list): Remove.
      	* tree.c (build_call_list): Remove.
      
      From-SVN: r159554
      Nathan Froyd committed
  29. 18 May, 2010 2 commits
    • tree.h (build_call_list): Remove. · 3fcb9d1b
      gcc/
      	* tree.h (build_call_list): Remove.
      	* tree.c (build_call_list): Remove.
      
      gcc/ada/
      	* gcc-interface/trans.c (call_to_gnu): Use build_call_vec instead of
      	build_call_list.
      	* gcc-interface/utils.c (build_function_stub): Likewise.
      
      gcc/cp/
      	* tree.c (build_min_non_dep_call_vec): Update comment.
      
      gcc/java/
      	* expr.c (expand_java_multianewarray): Use build_call_vec instead of
      	build_call_list.
      	(pop_arguments): Return a VEC instead of a tree.  Take a method type
      	rather than a list of argument types.
      	(rewrite_rule): Change signature. of rewrite_arglist member.
      	(rewrite_arglist_getcaller): Update signature.
      	(rewrite_arglist_getclass): Likewise.
      	(maybe_rewrite_invocation): Update for rewrite_arglist change.
      	(build_known_method_ref): Take a VEC instead of a tree.
      	(invoke_build_dtable): Likewise.
      	(expand_invoke): Update calls to pop_arguments.  Use build_call_vec
      	instead of build_call_list.
      	(build_jni_stub): Use build_call_vec instead of build_call_list.
      	* java-tree.h (maybe_rewrite_invocation): Update declaration.
      	(build_known_method_ref): Likewise.
      	(invoke_build_dtable): Likewise.
      
      From-SVN: r159548
      Nathan Froyd committed
    • tree.h (build_int_cstu): Implement as static inline. · abdbbf16
      	* tree.h (build_int_cstu): Implement as static inline.
      	* tree.c (build_int_cstu): Remove function.
      	(double_int_to_tree, double_int_fits_to_tree_p): Handle size types as
      	sign extended.
      
      From-SVN: r159544
      Anatoly Sokolov committed
  30. 17 May, 2010 1 commit
    • cgraph.h (cgraph_indirect_call_info): New fields anc_offset, otr_token and polymorphic. · b258210c
      2010-05-17  Martin Jambor  <mjambor@suse.cz>
      
      	* cgraph.h (cgraph_indirect_call_info): New fields anc_offset,
      	otr_token and polymorphic.
      	* cgraph.c (cgraph_create_indirect_edge): Inilialize the above fields.
      	(cgraph_clone_edge): Copy the above fields.
      	* tree.c (get_binfo_at_offset): New function.
      	* tree.h (get_binfo_at_offset): Declare.
      	* ipa-prop.h (enum jump_func_type): Added known_type jump function
      	type, reordered items, updated comments.
      	(union jump_func_value): Added base_type field, reordered fields.
      	(enum ipa_lattice_type): Moved down in the file.
      	(struct ipa_param_descriptor): New field polymorphic.
      	(ipa_is_param_polymorphic): New function.
      	* ipa-prop.c: Include gimple.h and gimple-fold.h.
      	(ipa_print_node_jump_functions): Print known type jump functions.
      	(compute_complex_pass_through): Renamed to...
      	(compute_complex_assign_jump_func): this.
      	(compute_complex_ancestor_jump_func): New function.
      	(compute_known_type_jump_func): Likewise.
      	(compute_scalar_jump_functions): Create known type and complex ancestor
      	jump functions.
      	(ipa_note_param_call): New parameter polymorphic, set the corresponding
      	flag in the call note accordingly.
      	(ipa_analyze_call_uses): Renamed to...
      	(ipa_analyze_indirect_call_uses): this.  New parameter target, define
      	variable var only in the block where it is used.
      	(ipa_analyze_virtual_call_uses): New function.
      	(ipa_analyze_call_uses): Likewise.
      	(combine_known_type_and_ancestor_jfs): Likewise.
      	(update_jump_functions_after_inlining): Implemented handling of a
      	number of new jump function types combination.
      	(print_edge_addition_message): Removed.
      	(make_edge_direct_to_target): New function.
      	(try_make_edge_direct_simple_call): Likewise.
      	(try_make_edge_direct_virtual_call): Likewise.
      	(update_call_notes_after_inlining): Renamed to...
      	(update_indirect_edges_after_inlining): this.  Moved edge creation for
      	indirect calls to try_make_edge_direct_simple_call, also calls
      	try_make_edge_direct_virtual_call for virtual calls.
      	(ipa_print_node_params): Changed the header message.
      	(ipa_write_jump_function): Stream also known type jump functions.
      	(ipa_read_jump_function): Likewise.
      	(ipa_write_indirect_edge_info): Stream new fields in
      	cgraph_indirect_call_info.
      	(ipa_read_indirect_edge_info): Likewise.
      	* Makefile.in (ipa-prop.o): Add dependency to GIMPLE_H and
      	GIMPLE_FOLD_H.
      
      	* testsuite/g++.dg/ipa/ivinline-1.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-2.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-3.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-4.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-5.C: New test.
      	* testsuite/g++.dg/ipa/ivinline-6.C: New test.
      
      From-SVN: r159507
      Martin Jambor committed