1. 05 Dec, 2011 16 commits
    • re PR other/50775 (Register allocator sets up frame and frame pointer with low register pressure) · 27508f5f
      2011-12-05  Vladimir Makarov  <vmakarov@redhat.com>
      
      	PR other/50775
      	* ira-int.h (struct ira_object): Remove add_data.
      	(OBJECT_ADD_DATA): Remove.
      
      	* ira-build.c (ira_create_object): Remove OBJECT_ADD_DATA
      	initialization.
      
      	* ira-color.c (object_hard_regs_t, object_hard_regs): Rename to
      	allocno_hard_regs_t, allocno_hard_regs.
      	(object_hard_regs_node_t, object_hard_regs_node): Rename to
      	allocno_hard_regs_node_t and allocno_hard_regs_node.
      	(struct allocno_color_data): Add new member last_process.  Move
      	profitable_hard_regs, hard_regs_node, and hard_regs_subnodes_start
      	from object_color_data.
      	(object_color_data_t, object_color_data, OBJECT_COLOR_DATA):
      	Remove.
      	(curr_allocno_process): New static variable.
      	(object_hard_regs_eq, object_hard_regs_htab): Rename to
      	allocno_hard_regs_eq and allocno_hard_regs_htab.
      	(init_object_hard_regs, finish_object_hard_regs): Rename to
      	init_allocno_hard_regs and finish_allocno_hard_regs.
      	(object_hard_regs_compare, object_hard_regs_node_t): Rename to
      	allocno_hard_regs_compare and allocno_hard_regs_node_t.
      	(create_new_object_hard_regs_node): Rename to
      	create_new_allocno_hard_regs_node.
      	(add_new_object_hard_regs_node_to_forest): Rename to
      	add_new_allocno_hard_regs_node_to_forest.
      	(add_object_hard_regs_to_forest, collect_object_hard_regs_cover):
      	Rename to add_allocno_hard_regs_to_forest and collect_allocno_hard_regs_cover.
      	(setup_object_hard_regs_nodes_parent): Rename to setup_allocno_hard_regs_nodes_parent.
      	(remove_unused_object_hard_regs_nodes): Rename to remove_unused_allocno_hard_regs_nodes.
      	(enumerate_object_hard_regs_nodes, object_hard_regs_nodes_num):
      	Rename to enumerate_allocno_hard_regs_nodes and allocno_hard_regs_nodes_num.
      	(object_hard_regs_nodes, object_hard_regs_subnode_t): Rename to
      	allocno_hard_regs_nodes and allocno_hard_regs_subnode_t.
      	(object_hard_regs_subnode, object_hard_regs_subnodes): Rename to
      	allocno_hard_regs_subnode and allocno_hard_regs_subnodes.
      	(object_hard_regs_subnode_index): Rename to allocno_hard_regs_subnode_index.
      	(setup_object_hard_regs_subnode_index): Rename to
      	setup_allocno_hard_regs_subnode_index.
      	(get_object_hard_regs_subnodes_num): Rename to get_allocno_hard_regs_subnodes_num.
      	(form_object_hard_regs_nodes_forest): Rename to form_allocno_hard_regs_nodes_forest.
      	(finish_object_hard_regs_nodes_tree): Rename to form_allocno_hard_regs_nodes_forest
      	(finish_object_hard_regs_nodes_forest): Rename to
      	finish_allocno_hard_regs_nodes_forest.
      	(setup_left_conflict_sizes_p): Use allocno data instead of object
      	ones.  Process conflict allocnos once.
      	(update_left_conflict_sizes_p): Use allocno data instead of object
      	ones.  Change prototype signature.
      	(empty_profitable_hard_regs): Use allocno data instead of object
      	ones.
      	(setup_profitable_hard_regs): Ditto.
      	(get_conflict_profitable_regs): Rename to
      	get_conflict_and_start_profitable_regs.  Use allocno data for
      	profitable regs calculation.
      	(check_hard_reg_p): Change prototype signature.  Check profitable
      	regs for allocno not the objects.
      	(assign_hard_reg): Process conflict allocnos only once for
      	updating conflict costs.
      	(setup_allocno_available_regs_num): Use allocno data instead of
      	object ones.  Modify debug output.
      	(color_pass): Remove initialization and finalization of object
      	color data.
      
      From-SVN: r182015
      Vladimir Makarov committed
    • re PR target/51408 (Miscompilation in arm.md:*minmax_arithsi) · 100ed614
      gcc/
      	PR target/51408
      	* config/arm/arm.md (*minmax_arithsi): Always require the else
      	clause in the MINUS case.
      
      gcc/testsuite/
      	PR target/51408
      	* gcc.dg/pr51408.c: New.
      
      From-SVN: r182014
      Kazu Hirata committed
    • Implement C++11 delegating constructors. · 238e471c
      	* cp-tree.h (enum cpp0x_warn_str): Add CPP0X_DELEGATING_CTORS.
      	* error.c (maybe_warn_cpp0x): Adjust.
      	* parser.c (cp_parser_mem_initializer_list): Use it.  Diagnose
      	multiple initializers if a delegating initializer is present.
      	* call.c (build_special_member_call): Convert an assert into an if.
      	* init.c (perform_target_ctor): New.
      	(emit_mem_initializers): Use it.
      	(expand_member_init, expand_default_init): Adjust.
      
      Co-Authored-By: Pedro Lamarão <pedro.lamarao@gmail.com>
      
      From-SVN: r182012
      Ville Voutilainen committed
    • re PR c++/51404 ([c++0x] [4.7 Regression] ICE with invalid use of auto) · 12c574ca
      /cp
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51404
      	* typeck2.c (build_functional_cast): Early return error_mark_node
      	for invalid uses of 'auto'.
      	* parser.c (cp_parser_direct_declarator): When
      	cp_parser_constant_expression returns error do not produce further
      	diagnostic for the bound.
      
      /testsuite
      2011-12-05  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/51404
      	* g++.dg/cpp0x/auto28.C: New.
      
      From-SVN: r182011
      Paolo Carlini committed
    • re PR tree-optimization/50904 (pessimization when -fno-protect-parens is enabled by -Ofast) · 546d314c
      2011-12-05  Richard Guenther  <rguenther@suse.de>
      
      	PR tree-optimization/50904
      	* tree-ssa-loop-im.c (struct mem_ref): Remove vops member.
      	(MEM_ANALYZABLE): New.
      	(memory_references): Remove clobbered_vops and vop_ref_map
      	members, add all_refs_stored_in_loop member.
      	(memref_free): Adjust.
      	(mem_ref_alloc): Likewise.
      	(gather_mem_refs_stmt): Do not record clobbers, instead
      	record refs for unanalyzable stmts.
      	(gather_mem_refs_in_loops): Do not propagate clobbers.
      	(struct vop_to_refs_elt, vtoe_hash, vtoe_eq, vtoe_free,
      	record_vop_access, get_vop_accesses, get_vop_stores,
      	add_vop_ref_mapping): Remove.
      	(create_vop_ref_mapping_loop): Adjust to simply record all
      	stores.
      	(analyze_memory_references): Adjust.
      	(refs_independent_p): Check for not analyzable refs.
      	(can_sm_ref_p): Likewise.
      	(ref_indep_loop_p_1): Simplify.
      	(tree_ssa_lim_finalize): Adjust.
      
      	* tree-ssa-loop-im.c (stmt_cost): Simplify, use LIM_EXPENSIVE
      	rather than magic constants.  Assign zero cost to PAREN_EXPR
      	and SSA_NAME copies.  Assign cost proportional to the vector
      	size for vector constructors.
      
      From-SVN: r182010
      Richard Guenther committed
    • tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field. · 14cd91f9
      2011-12-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-alias.h (struct ao_ref_s): Add volatile_p field.
      	* tree-ssa-alias.c (ao_ref_init): Initialize it.
      	(ao_ref_init_from_ptr_and_size): Likewise.
      	(refs_may_alias_p_1): Two volatile accesses conflict.
      	(ref_maybe_used_by_call_p_1): Likewise.
      	(call_may_clobber_ref_p_1): Likewise.
      	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Initialize
      	volatile_p field.
      
      From-SVN: r182009
      Richard Guenther committed
    • tree-ssa.c (verify_ssa): Verify SSA names in the loop over all SSA names. · bc590dfb
      2011-12-05  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa.c (verify_ssa): Verify SSA names in the loop
      	over all SSA names.  Remove SSA operand checking, call
      	verify_ssa_operands.
      	* tree-ssa-operands.h (verify_ssa_operands): Declare.
      	* tree-ssa-operands.c (verify_ssa_operands): New function.
      
      From-SVN: r182007
      Richard Guenther committed
    • [multiple changes] · 76264f60
      2011-12-05  Bob Duff  <duff@adacore.com>
      
      	* sem_ch4.adb: Minor comment fix.
      
      2011-12-05  Robert Dewar  <dewar@adacore.com>
      
      	* gnat_ugn.texi: Add documentation for -gnatw.e.
      
      2011-12-05  Bob Duff  <duff@adacore.com>
      
      	* treepr.adb (pn): Print something useful for
      	Elmt_Ids. Add Write_Eol to 'when others' case, so the output
      	will be seen immediately in gdb.
      
      2011-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* lib-writ.adb (Output_Main_Program_Line): A generic subprogram
      	is never a main program.
      
      2011-12-05  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb: Various minor adjustments to dominance markers
      	generation.
      
      2011-12-05  Ed Schonberg  <schonberg@adacore.com>
      
      	* sem_ch6.adb (Analyze_Expression_Function): If the function is
      	a completion, generate a body reference for its defining entity,
      	before rewriting the node as a body.
      	* sem_util.adb (Defining_Entity): Add entry for expression
      	function.
      
      From-SVN: r182006
      Arnaud Charlet committed
    • Use vcvt from fixed to floating point where applicable. · 7f3d8f56
      2011-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
      
               * config/arm/arm.c (vfp3_const_double_for_fract_bits): Define.
               * config/arm/arm-protos.h (vfp3_const_double_for_fract_bits): Declare.
               * config/arm/constraints.md ("Dt"): New constraint.
               * config/arm/predicates.md (const_double_vcvt_power_of_two_reciprocal):
                New.
               * config/arm/vfp.md (*arm_combine_vcvt_f32_s32): New.
               (*arm_combine_vcvt_f32_u32): New.
      
      From-SVN: r182005
      Ramana Radhakrishnan committed
    • [multiple changes] · 3128f955
      2011-12-05  Bob Duff  <duff@adacore.com>
      
      	* sem_ch3.adb (Derive_Progenitor_Subprograms): Add Ultimate_Alias
      	to the Comes_From_Source check, to deal properly with the case
      	of indirect inheritance of "=".
      
      2011-12-05  Thomas Quinot  <quinot@adacore.com>
      
      	PR ada/51307
      	* s-oscons-tmplt.c: On HP-UX, CLOCK_REALTIME is an enum literal,
      	not a macro.
      
      2011-12-05  Thomas Quinot  <quinot@adacore.com>
      
      	* par_sco.adb, scos.ads, put_scos.adb, get_scos.adb: Generate dominance
      	information in SCOs.
      
      From-SVN: r182004
      Arnaud Charlet committed
    • Add 'inline' to prototype of tokens_buff_remove_last_token · 9b554be9
      libcpp/
      
      	* macro.c (tokens_buff_remove_last_token)
      	(tokens_buff_put_token_to): Add an 'inline' function specifier to
      	the prototype.
      
      From-SVN: r182002
      Dodji Seketeli committed
    • cgraph.c (cgraph_create_edge_1): Initialize call_stmt_cannot_inline_p from the stmt if possible. · 89faf322
      2011-12-05  Richard Guenther  <rguenther@suse.de>
      
      	* cgraph.c (cgraph_create_edge_1): Initialize
      	call_stmt_cannot_inline_p from the stmt if possible.
      	(cgraph_make_edge_direct): Likewise.
      	* gimple-streamer-in.c (input_gimple_stmt): Do not
      	call gimple_call_set_cannot_inline.
      	* gimple.h (enum gf_mask): Remove GF_CALL_CANNOT_INLINE, shift
      	values.
      	(gimple_call_set_cannot_inline): Remove.
      	(gimple_call_cannot_inline_p): Likewise.
      	* ipa-inline-analysis.c (initialize_inline_failed): Look
      	at the edge call_stmt_cannot_inline_p flag.
      	* ipa-inline.c (can_inline_edge_p): Likewise.
      	(early_inliner): Only update the edge flag.
      	* ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
      	(ipa_modify_call_arguments): Do not call gimple_call_set_cannot_inline.
      	* cgraphunit.c (assemble_thunk): Likewise.
      	* gimple-fold.c (gimple_fold_call): Likewise.
      
      	* tree.h (CALL_CANNOT_INLINE_P): Remove.
      	* tree-mudflap.c (mf_xform_statements): Do not modify alloca calls.
      	* builtins.c (expand_builtin_alloca): With -fmudflap do not expand
      	alloca calls inline.
      	* cfgexpand.c (expand_call_stmt): Do not set CALL_CANNOT_INLINE_P.
      	* gimple.c (gimple_build_call_from_tree): Do not read
      	CALL_CANNOT_INLINE_P.
      	* gimplify.c (gimplify_call_expr): Do not copy CALL_CANNOT_INLINE_P.
      
      From-SVN: r182001
      Richard Guenther committed
    • re PR middle-end/51323 (g++ confuses this with function argument in optimized call) · 5275901c
      	PR middle-end/51323
      	PR middle-end/50074
      	* calls.c (internal_arg_pointer_exp_state): New variable.
      	(internal_arg_pointer_based_exp_1,
      	internal_arg_pointer_exp_scan): New functions.
      	(internal_arg_pointer_based_exp): New function.
      	(mem_overlaps_already_clobbered_arg_p): Use it.
      	(expand_call): Free internal_arg_pointer_exp_state.cache vector
      	and clear internal_arg_pointer_exp_state.scan_start.
      
      	* gcc.c-torture/execute/pr51323.c: New test.
      
      Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
      
      From-SVN: r182000
      Jakub Jelinek committed
    • Daily bump. · 2adac2a7
      From-SVN: r181999
      GCC Administrator committed
  2. 04 Dec, 2011 15 commits
  3. 03 Dec, 2011 9 commits