1. 03 May, 2012 12 commits
  2. 02 May, 2012 17 commits
    • faq.xml: Update outdated allocator documentation. · 3b2b3556
      	* doc/xml/faq.xml: Update outdated allocator documentation.
      	* doc/xml/manual/allocator.xml: Likewise.
      	* doc/xml/manual/debug.xml: Likewise.
      	* doc/xml/manual/evolution.xml: Likewise.
      	* doc/xml/manual/using.xml: Likewise.
      
      From-SVN: r187068
      Jonathan Wakely committed
    • re PR libstdc++/44015 (template parameters not documented) · d632488a
      2012-05-02  Benjamin Kosnik  <bkoz@redhat.com>
      
      	PR libstdc++/44015
      	* include/bits/basic_ios.h: Add tparam markup for
      	* doxygen.  include/bits/basic_string.h: Same.
      	* include/bits/forward_list.h: Same.
      	* include/bits/stl_bvector.h: Same.
      	* include/bits/stl_deque.h: Same.
      	* include/bits/stl_list.h: Same.  include/bits/stl_map.h:
      	* Same.  include/bits/stl_multimap.h: Same.
      	* include/bits/stl_multiset.h: Same.
      	* include/bits/stl_pair.h: Same.
      	* include/bits/stl_queue.h: Same.
      	* include/bits/stl_set.h: Same.
      	* include/bits/stl_stack.h: Same.
      	* include/bits/stl_vector.h: Same.
      	* include/bits/unordered_map.h: Same.
      	* include/bits/unordered_set.h: Same.  include/std/array:
      	* Same.  include/std/atomic: Same.  include/std/fstream:
      	* Same.  include/std/istream: Same.  include/std/ostream:
      	* Same.  include/std/sstream: Same.
      	* include/std/streambuf: Same.
      	* testsuite/23_containers/deque/requirements/dr438/*:
                Adjust line numbers.
      	* testsuite/23_containers/list/requirements/dr438/*: Same.
      	* testsuite/23_containers/vector/requirements/dr438/*: Same.
      
      From-SVN: r187066
      Benjamin Kosnik committed
    • vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code, unset flag_jump_tables. · daccad6d
      	* config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
      	unset flag_jump_tables.
      	* stmt.c (expand_case): Remove special flag_pic case conditional
      	on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
      
      From-SVN: r187065
      Steven Bosscher committed
    • s390-common.c (s390_option_optimization_table): Enable -fsched-pressure using… · aefa216b
      s390-common.c (s390_option_optimization_table): Enable -fsched-pressure using -fsched-pressure-algorithm=model by default when...
      
      2012-05-02  Ulrich Weigand  <ulrich.weigand@linaro.org>
      
      	gcc/
      	* common/config/s390/s390-common.c (s390_option_optimization_table):
      	Enable -fsched-pressure using -fsched-pressure-algorithm=model by
      	default when optimizing.
      
      	gcc/testsuite/
      	* gcc.target/s390/20030123-1.c: Add missing "volatile".
      
      From-SVN: r187064
      Ulrich Weigand committed
    • re PR lto/52605 (LTO -g ICE when looking up context of VMTs of classes defined within functions) · d282264e
      2012-05-02  Martin Jambor  <mjambor@suse.cz>
      
      	PR lto/52605
      	* dwarf2out.c (dwarf2out_decl): Only lookup die representing context
      	of a variable when the contect is a function.
      
      	* gcc/testsuite/g++.dg/lto/pr52605_0.C: New test.
      
      From-SVN: r187063
      Martin Jambor committed
    • crossconfig.m4: Since we know that all TPF builds are cross- builds and cannot run... · 40f93bb5
      * crossconfig.m4: Since we know that all TPF builds are cross-
      builds and cannot run configuration-time link tests, do not
      allow it; just go with known supported linker options.
      * configure: Regenerate (called as GLIBCXX_CROSSCONFIG).
      
      From-SVN: r187062
      DJ Delorie committed
    • dwarf2.def: Remove DW_FORM_GNU_ref_index, replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base. · 43f7c432
      include/
      
      	* dwarf2.def: Remove DW_FORM_GNU_ref_index,
      	replace DW_AT_GNU_ref_base with DW_AT_GNU_ranges_base.
      
      From-SVN: r187061
      Cary Coutant committed
    • Properly initialize cpp_context in destringize_and_run · 3ad64f53
      destringize_and_run forgets to initialize all the fields of the
      cpp_context that it pushes.  Later _cpp_pop_context then gets confused
      when it accesses context->tokens_kind via the call to macro_of_context
      on context->prev.
      
      The first hunk of this patch is the real obvious fix.  The second hunk
      is just an assert that I am adding to err on the safe side.
      
      Tested by on x86_64-unknown-linux-gnu against trunk by running the
      test gcc.dg/gomp/macro-4.c under Valgrind, and bootstrapped.
      
      libcpp/
      
      	* directives.c (destringize_and_run): Properly initialize the new
      	context.
      	* macro.c (_cpp_pop_context): Assert that we shouldn't try to pop
      	the initial base context, which has the same life time as the
      	current instance of cpp_file.
      
      From-SVN: r187054
      Dodji Seketeli committed
    • coretypes.h (gimple_seq, [...]): Typedef as gimple. · 355a7673
      	* coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
      	* gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
      	(const_gimple_seq_node): Remove.
      	(gimple_seq_node): Typedef as gimple.
      	(struct gimple_statement_base): Add next and prev members,
      	adjust all WORD markers in using structs.
      	(union gimple_statement_d): Link via gsbase.next field for GC and PCH.
      	(gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
      	gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
      	gimple are the same.
      	(gimple_seq_set_last, gimple_seq_set_first): Don't allocate
      	gimple_seq, adjust.
      	(gimple_init_singleton): New function.
      	(gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
      	(gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
      	(gsi_stmt): Adjust.
      	(gsi_stmt_ptr): Remove.
      	(enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
      
      	* gimple-iterator.c (update_bb_for_stmts): Take last parameter
      	again, adjust for above changes.
      	(update_call_edge_frequencies): Adjust for above changes.
      	(gsi_insert_seq_nodes_before): Rewrite for new data structure.
      	(gsi_insert_seq_nodes_after): Ditto.
      	(gsi_split_seq_after): Ditto.
      	(gsi_set_stmt): Ditto.
      	(gsi_split_seq_before): Ditto.
      	(gsi_remove): Ditto.
      	(gsi_insert_seq_before_without_update): Don't free sequence.
      	(gsi_insert_seq_after_without_update): Ditto.
      	(gsi_replace): Assert some more invariants.
      	(gsi_insert_before_without_update, gsi_insert_after_without_update):
      	Tidy.
      	(gsi_for_stmt): Don't search for stmt.
      	(gsi_insert_on_edge_immediate): Tidy.
      
      	* gimple.c (gimple_alloc_k): Remove "sequences".
      	(gimple_seq_cache): Remove.
      	(gimple_alloc_stat): Make stmt a singleton sequence.
      	(gimple_seq_alloc, gimple_seq_free): Remove.
      	(gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
      	(gimple_copy): Ditto.
      	* gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
      	create iterator from correct sequence.
      	* tree-phinodes.c (make_phi_node): Make stmt a singleton.
      
      
      	* gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
      	gimple_seq.
      	(gimple_seq_set_last, gimple_seq_set_first): Take pointer to
      	sequence, lazily allocate it.
      	(bb_seq_addr): New function.
      	(gsi_start_1): Rename from gsi_start, but take pointer to sequence.
      	(gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
      	(gsi_none): New function.
      	(gsi_start_bb): Adjust.
      	(gsi_last_1): Rename from gsi_last, but take pointer to sequence.
      	(gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
      	(gsi_last_bb): Adjust.
      	(gsi_seq): Adjust.
      	* tree-flow-inline.h (phi_nodes_ptr): New function.
      
      	* gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to 
      	datastructure and interface change.
      	(gsi_insert_seq_before_without_update): Ditto.
      	(gsi_insert_seq_nodes_after): Ditto.
      	(gsi_insert_seq_after_without_update): Ditto.
      	(gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
      	(gsi_split_seq_before): Ditto.
      	(gsi_start_phis): Adjust.
      	* tree-vect-loop.c (vect_determine_vectorization_factor): Use
      	gsi_none.
      	(vect_transform_loop): Ditto.
      	* gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
      	gimple_seq_copy): Don't use gimple_seq_alloc.
      	* gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
      	(gimplify_seq_add_seq): Ditto.
      	* lto-streamer-in.c (make_new_block): Ditto.
      	* tree-cfg.c (create_bb): Ditto.
      	* tree-sra.c (initialize_parameter_reductions): Ditto.
      
      
      	* gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
      	gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
      	gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
      	set_bb_seq): Move down to after gimple_statement_d definition.
      
      
      	* gimple-fold.c (gimplify_and_update_call_from_tree): Use
      	gsi_replace_with_seq, instead of inserting itself.
      	* gimple-iterator.c (gsi_replace_with_seq): New function.
      	* tree-ssa-forwprop.c (forward_propagate_comparison): Take
      	iterator instead of statement, advance it.
      	(ssa_forward_propagate_and_combine): Adjust call to above.
      
      
      	* tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
      	gimple_seq_alloc.
      	* omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
      	* tree-nested.c (walk_gimple_omp_for): Ditto.
      	* trans-mem.c (lower_transaction): Ditto.
      	* tree-eh.c (do_return_redirection): Ditto.
      	(do_goto_redirection): Ditto.
      	(lower_try_finally_switch): Ditto.
      	* gimplify.c (gimplify_stmt): Ditto.
      	(gimplify_scan_omp_clauses): Ditto.
      	(gimplify_omp_for): Ditto.
      	(gimplify_function_tree): Ditto.
      	* gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
      	* tree-mudflap.c (mf_decl_cache_locals): Ditto.
      	(mf_build_check_statement_for): Ditto.
      	(mx_register_decls): Ditto.
      	* graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
      	and don't use itertors to append.
      	(insert_stmts): Ditto.
      	(insert_out_of_ssa_copy): Ditto.
      	(insert_out_of_ssa_copy_on_edge): Ditto.
      
      
      	* gimple.h (gimple_bind_body_ptr): New function.
      	(gimple_bind_body): Use it.
      	(gimple_catch_handler): Use gimple_catch_handler_ptr.
      	(gimple_eh_filter_failure_ptr): New function.
      	(gimple_eh_filter_failure): Use it.
      	(gimple_eh_else_n_body_ptr): New function.
      	(gimple_eh_else_n_body): Use it.
      	(gimple_eh_else_e_body_ptr): New function.
      	(gimple_eh_else_e_body): Use it.
      	(gimple_try_eval_ptr): New function.
      	(gimple_try_eval): Use it.
      	(gimple_try_cleanup_ptr): New function.
      	(gimple_try_cleanup): Use it.
      	(gimple_wce_cleanup_ptr): New function.
      	(gimple_wce_cleanup): Use it.
      	(gimple_omp_body_ptr): New function.
      	(gimple_omp_body): Use it.
      	(gimple_omp_for_pre_body_ptr): New function.
      	(gimple_omp_for_pre_body): Use it.
      	(gimple_transaction_body_ptr): New function.
      	(gimple_transaction_body): Use it.
      	(gsi_split_seq_before): Adjust to return nothing and take pointer
      	to sequence.
      	(gsi_set_stmt): Declare.
      	(gsi_replace_with_seq): Declare.
      	(walk_gimple_seq_mod): Declare.
      	* function.h (struct function <gimple_body>): Use typedef gimple_seq.
      
      	* gimple-iterator.c (gsi_set_stmt): New function.
      	(gsi_split_seq_before): Return new sequence via pointer argument.
      	(gsi_replace): Use gsi_set_stmt.
      
      	* tree-ssa-loop-im.c (move_computations_stmt): First remove
      	then insert stmt.
      	* tree-complex.c (update_complex_components_on_edge): Don't
      	copy gsi.
      	* tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
      	return new stmt.
      	(reserve_phi_args_for_new_edge): Change call to above,
      	use gsi_set_stmt.
      
      	* omp-low.c (lower_omp): Change prototype to take pointer to
      	sequence.
      	(lower_rec_input_clauses): Use gimple_seq_add_seq instead of
      	iterators.  Adjust call to lower_omp.
      	(lower_lastprivate_clauses): Adjust call to lower_omp.
      	(lower_reduction_clauses): Ditto.
      	(expand_omp_taskreg): Nullify non-cfg body of child_fn.
      	(lower_omp_sections): Don't explicitely count sequence length,
      	nullify lowered bodies earlier, ensure stmts are part of only
      	one sequence, adjust call to lower_omp.
      	(lower_omp_single): Ensure stmts are part of only one sequence,
      	adjust call to lower_omp.
      	(lower_omp_master): Ditto.
      	(lower_omp_ordered): Ditto.
      	(lower_omp_critical): Ditto.
      	(lower_omp_for): Ditto.
      	(lower_omp_taskreg): Ditto, tidy.
      	(lower_omp_1): Adjust calls to lower_omp.
      	(execute_lower_omp): Ditto.
      	(lower_omp): Adjust to take pointer to sequence.
      	(diagnose_sb_2): Use walk_gimple_seq_mod.
      	(diagnose_omp_structured_block_errors): Ditto and set possibly
      	changed function body.
      	* gimple-low.c (lower_function_body): Set function body after
      	it stabilizes.
      	(lower_sequence): Adjust to take pointer to sequence.
      	(lower_omp_directive): Ensure stmt isn't put twice into the
      	sequence, adjust call to lower_sequence.
      	(lower_stmt): Adjust calls to lower_sequence.
      	(lower_gimple_bind): Ditto.
      	(gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
      	* tree-nested.c (walk_body): Take pointer to sequence, use
      	walk_gimple_seq_mod.
      	(walk_function): Adjust call to walk_body, set possibly changed
      	body.
      	(walk_gimple_omp_for): Adjust calls to walk_body.
      	(convert_nonlocal_omp_clauses): Ditto.
      	(convert_nonlocal_reference_stmt): Ditto.
      	(convert_local_omp_clauses): Ditto.
      	(convert_local_reference_stmt): Ditto.
      	(convert_tramp_reference_stmt): Ditto.
      	(convert_gimple_call): Ditto.
      	(convert_nl_goto_reference): Use local iterator copy.
      	* gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
      	but taking pointer to sequence, ensure gsi_start is called with
      	callers lvalue.
      	(walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
      	asserting that the sequence head didn't change.
      	(walk_gimple_stmt): Replace all calls to walk_gimple_seq with
      	walk_gimple_seq_mod.
      	* trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
      	(execute_lower_tm): Ditto, and set possibly changed body.
      	* tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
      	call gsi_start with that lvalue.
      	(replace_goto_queue_stmt_list): Ditto.
      	(replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
      	(replace_goto_queue): Ditto.
      	(lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
      	(lower_try_finally_onedest): Ditto.
      	(lower_try_finally_copy): Ditto.
      	(lower_try_finally_switch): Ditto.
      	(lower_try_finally): Ditto.
      	(lower_eh_filter): Ditto.
      	(lower_eh_must_not_throw): Ditto.
      	(lower_cleanup): Ditto.
      	(lower_eh_constructs_2): Ditto.
      	(lower_catch): Ditto, and ensure gsi_start is called with lvalue.
      	(lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
      	set possibly changed body.
      	(optimize_double_finally): Call gsi_start with lvalue.
      
      	* tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
      	(gimple_split_block): Ditto.
      	(gimple_merge_blocks): Use gsi_start_phis.
      	(move_stmt_r): Use walk_gimple_seq_mod.
      	* tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
      	* cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
      	(rebuild_cgraph_edges): Ditto.
      	(cgraph_rebuild_references): Ditto.
      	* ipa-prop.c (ipa_analyze_params_uses): Ditto.
      	* tree-inline.c (copy_phis_for_bb): Ditto.
      	* tree-ssa-dce.c: Ditto.
      
      	* cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
      
      From-SVN: r187053
      Michael Matz committed
    • hashtable_policy.h: Correct namepace nesting for _Hashtable forward declaration. · 63dc7fbe
      2012-05-02  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* include/bits/hashtable_policy.h: Correct namepace nesting for
      	_Hashtable forward declaration.
      
      From-SVN: r187052
      Benjamin Kosnik committed
    • ChangeLog entry: · 5dcfdccd
              * coretypes (MEMMODEL_MASK): New.
              * builtins.c (get_memmodel): Add val. Call target.memmodel_check
              and return new variable.
              (expand_builtin_atomic_exchange):  Mask memmodel values.
              (expand_builtin_atomic_compare_exchange): Ditto.
              (expand_builtin_atomic_load): Ditto.
              (expand_builtin_atomic_store): Ditto.
              (expand_builtin_atomic_clear): Ditto.
              * doc/extend.texi: Mention port-dependent memory model flags.
              * config/i386/cpuid.h (bit_HLE): New.
              * config/i386/driver-i386.c (host_detect_local_cpu): Detect
              HLE support.
              * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
              * config/i386/i386-c.c (ix86_target_macros_internal): Set
              HLE defines.
              (ix86_target_string)<-mhle>: New.
              (ix86_valid_target_attribute_inner_p)<OPT_mhle>: Ditto.
              * config/i386/i386.c (ix86_target_string)<OPTION_MASK_ISA_HLE>:
              New.
              (ix86_valid_target_attribute_inner_p)<OPT_mhle>: Ditto.
              (ix86_option_override_internal)<PTA_HLE>: New switch, set it
              enabled for generic, generic64 and core-avx2.
              (ix86_print_operand): Generate HLE lock prefixes.
              (ix86_memmodel_check): New.
              (TARGET_MEMMODEL_CHECK): Ditto.
              * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
              (IX86_HLE_ACQUIRE): Ditto.
              (IX86_HLE_RELEASE): Ditto.
              * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
              * config/i386/i386.opt (mhle): Ditto.
              * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
              success model to instruction emitter.
              (atomic_fetch_add<mode>): Ditto.
              (atomic_exchange<mode>): Ditto.
              (atomic_add<mode>): Ditto.
              (atomic_sub<mode>): Ditto.
              (atomic_<code><mode>): Ditto.
              (*atomic_compare_and_swap_doubledi_pic): Ditto.
              (atomic_compare_and_swap_single<mode>): Define and use argument
              for success model.
              (atomic_compare_and_swap_double<mode>): Ditto.
              * configure.ac: Check if assembler support HLE prefixes.
              * configure: Regenerate.
              * config.in: Ditto.
      
      testsuite/ChangeLog entry:
      
              * gcc.target/i386/hle-cmpxchg-acq-1.c: New.
              * gcc.target/i386/hle-cmpxchg-rel-1.c: Ditto.
              * gcc.target/i386/hle-add-acq-1.c: Ditto.
              * gcc.target/i386/hle-add-rel-1.c: Ditto.
              * gcc.target/i386/hle-and-acq-1.c: Ditto.
              * gcc.target/i386/hle-and-rel-1.c: Ditto.
              * gcc.target/i386/hle-or-acq-1.c: Ditto.
              * gcc.target/i386/hle-or-rel-1.c: Ditto.
              * gcc.target/i386/hle-sub-acq-1.c: Ditto.
              * gcc.target/i386/hle-sub-rel-1.c: Ditto.
              * gcc.target/i386/hle-xadd-acq-1.c: Ditto.
              * gcc.target/i386/hle-xadd-rel-1.c: Ditto.
              * gcc.target/i386/hle-xchg-acq-1.c: Ditto.
              * gcc.target/i386/hle-xchg-rel-1.c: Ditto.
              * gcc.target/i386/hle-xor-acq-1.c: Ditto.
              * gcc.target/i386/hle-xor-rel-1.c: Ditto.
      
      
      
      Co-Authored-By: Andi Kleen <ak@linux.intel.com>
      
      From-SVN: r187051
      Kirill Yukhin committed
    • re PR middle-end/53153 (ice in tree_low_cst, at tree.c:6569) · 68e72840
      gcc/
      	PR middle-end/53153
      	* gimplify.c (preprocess_case_label_vec_for_gimple): New function,
      	split out from ...
      	(gimplify_switch_expr): ... here.
      	* gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
      	* tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
      	to clean up case labels with values outside the index type range.
      	(simplify_gimple_switch): Call it if something changed.
      	Remove strange and unnecessary assert.
      
      testsuite/
      	PR middle-end/53153
      	* gcc.dg/pr53153.c: New test.
      
      From-SVN: r187048
      Steven Bosscher committed
    • Revert 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com> · 69416e98
      gcc/ada/
      
      2012-05-02  Pascal Obry  <obry@adacore.com>
      
      	Revert 2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      libada/
      
      2012-05-02  Pascal Obry  <obry@adacore.com>
      
      	Revert 2012-02-24  Dave Korn  <dave.korn.cygwin@gmail.com>
      
      From-SVN: r187047
      Arnaud Charlet committed
    • tree.c (valid_constant_size_p): New function. · 56099f00
      2012-05-02  Richard Guenther  <rguenther@suse.de>
      
      	* tree.c (valid_constant_size_p): New function.
      	* tree.h (valid_constant_size_p): Declare.
      	* cfgexpand.c (expand_one_var): Adjust check for too large
      	variables by using valid_constant_size_p.
      	* varasm.c (assemble_variable): Likewise.
      
      	c/
      	* c-decl.c (grokdeclarator): Properly check for sizes that
      	cover more than half of the address-space.
      
      	cp/
      	* decl.c (grokdeclarator): Properly check for sizes that
      	cover more than half of the address-space.
      
      2012-05-02  Richard Guenther  <rguenther@suse.de>
      
      	* fold-const.c (div_if_zero_remainder): sizetypes no longer
      	sign-extend.
      	(int_const_binop_1): New worker for int_const_binop with
      	overflowable parameter.  Pass it through
      	to force_fit_type_double.
      	(int_const_binop): Wrap around int_const_binop_1 with overflowable
      	equal to one.
      	(size_binop_loc): Call int_const_binop_1 with overflowable equal
      	to minus one, forcing overflow detection for even unsigned types.
      	(extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
      	(fold_binary_loc): Call try_move_mult_to_index with signed offset.
      	* stor-layout.c (initialize_sizetypes): sizetypes no longer
      	sign-extend.
      	(layout_type): For zero-sized arrays ignore overflow on the
      	size calculations.
      	* tree-ssa-ccp.c (bit_value_unop_1): Likewise.
      	(bit_value_binop_1): Likewise.
      	* tree.c (double_int_to_tree): Likewise.
      	(double_int_fits_to_tree_p): Likewise.
      	(force_fit_type_double): Likewise.
      	(host_integerp): Likewise.
      	(int_fits_type_p): Likewise.
      	* varasm.c (output_constructor_regular_field): Sign-extend the
      	field-offset to cater for negative offsets produced by the Ada frontend.
      	* omp-low.c (extract_omp_for_data): Convert the loop step to
      	signed for pointer adjustments.
      
      	* g++.dg/tree-ssa/pr19807.C: Adjust.
      
      From-SVN: r187042
      Richard Guenther committed
    • re PR tree-optimization/53163 (crash due to null ptr deref) · 795e8869
      	PR tree-optimization/53163
      	* tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
      	return value from compute_all_dependences.
      
      	* gcc.c-torture/compile/pr53163.c: New test.
      
      From-SVN: r187038
      Jakub Jelinek committed
    • re PR rtl-optimization/53160 (likely wrong code bug) · 6aae324c
      	PR rtl-optimization/53160
      	* ree.c (combine_reaching_defs): Handle the case where cand->insn
      	has been modified by ree pass already.
      
      	* gcc.c-torture/execute/pr53160.c: New test.
      
      From-SVN: r187035
      Jakub Jelinek committed
    • Daily bump. · 481c45f6
      From-SVN: r187034
      GCC Administrator committed
  3. 01 May, 2012 11 commits
    • re PR c/37303 (const compound initializers in structs are written to .data instead of .rodata) · a845a7f5
      gcc/:
      	PR c/37303
      	* c-decl.c (build_compound_literal): Make the decl readonly if it
      	an array of a readonly type.
      	* gimplify.c (gimplify_compound_literal_expr): Add fallback
      	parameter.  Change all callers.  If the decl is not addressable
      	and is not an l-value, make it readonly.
      gcc/testsuite:
      	PR c/37303
      	* gcc.dg/pr37303.c: New test.
      
      From-SVN: r187027
      Ian Lance Taylor committed
    • re PR libstdc++/53115 (_Hashtable::_M_rehash_aux(false_type) is broken) · b7a9facb
      2012-05-01  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/53115
      	* include/bits/hashtable.h
      	(_Hashtable<>::_M_rehash_aux(size_type, false_type)): Fix buckets
      	after insertion of several equivalent elements.
      	* testsuite/23_containers/unordered_multiset/insert/53115.cc: New.
      	* testsuite/23_containers/unordered_multimap/insert/53115.cc: New.
      
      From-SVN: r187025
      François Dumont committed
    • ira.c (allocated_reg_info_size): New static variable. · fb99ee9b
      	* ira.c (allocated_reg_info_size): New static variable.
      	(expand_reg_info): Manage it. Call
      	setup_preferred_alternate_classes_for_new_pseudos.
      	(ira): Don't do it here.  Remove local allocated_reg_info_size,
      	set the global before calling find_moveable_pseudos.
      	(find_moveable_pseudos): Call expand_reg_info rather than
      	resize_reg_info.
      
      From-SVN: r187019
      Bernd Schmidt committed
    • Add libatomic as a target library. · 48310492
      From-SVN: r187018
      Richard Henderson committed
    • Add -fno-sync-libcalls. · e8053cf5
              * common.opt (fsync-libcalls): New.
              * doc/invoke.texi: Document it.
              * optabs.c (init_sync_libfuncs): Honor it.
      
      From-SVN: r187017
      Richard Henderson committed
    • * lib/target-supports.exp · 0f2f3389
              (check_effective_target_sync_long_long_runtime): True for
              check_effective_target_powerpc64.
      
      From-SVN: r187016
      Richard Henderson committed
    • Makefile.in (lower-subreg.o, [...]): Depend on lower-subreg.h. · af4ba423
      gcc/
      2012-03-31  Kenneth Zadeck  <zadeck@naturalbridge.com>
      	    Richard Sandiford  <r.sandiford@uk.ibm.com>
      
      	* Makefile.in (lower-subreg.o, target-globals.o): Depend on
      	lower-subreg.h.
      	* lower-subreg.h: New file.
      	* target-globals.h (this_target_lower_subreg): Declare.
      	(target_globals): Add lower_subreg;
      	(restore_target_globals): Restore this_target_lower_subreg.
      	* target-globals.c: Include it.
      	(default_target_globals): Add default_target_lower_subreg.
      	(save_target_globals): Initialize target_lower_subreg.
      	* rtl.h (init_lower_subreg): Added declaration.
      	* toplev.c (backend_init_target): Call initializer for lower-subreg
      	pass.
      	* lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
      	(default_target_lower_subreg): New variable.
      	(this_target_lower_subreg): Likewise.
      	(twice_word_mode, choices): New macros.
      	(shift_cost, compute_splitting_shift, compute_costs)
      	(init_lower_subreg): New functions.
      	(resolve_simple_move): Add speed_p argument.  Check choices.
      	(find_pseudo_copy): Don't check the mode size here.
      	(resolve_simple_move): Assert the mode size.
      	(find_decomposable_shift_zext): Add speed_p argument and return
      	a bool.  Check choices.
      	(resolve_shift_zext): Add comment.
      	(dump_shift_choices, dump_choices): New functions.
      	(decompose_multiword_subregs): Dump list of profitable
      	transformations.  Add code to skip non profitable transformations.
      	Update calls to simple_move and find_decomposable_shift_zext.
      
      Co-Authored-By: Richard Sandiford <r.sandiford@uk.ibm.com>
      
      From-SVN: r187015
      Kenneth Zadeck committed
    • arm-protos.h (thumb_unexpanded_epilogue): Rename to... · 90911ab6
      2012-05-01  Ian Bolton  <ian.bolton@arm.com>
                  Sameera Deshpande  <sameera.deshpande@arm.com>
                  Greta Yorsh  <greta.yorsh@arm.com>
      
      	* config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
              (thumb1_unexpanded_epilogue): ...this.
      	* config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
              (thumb1_unexpanded_epilogue): ...this.
      	* config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
              (thumb1_unexpanded_epilogue): ...this.
      
      
      
      Co-Authored-By: Greta Yorsh <greta.yorsh@arm.com>
      Co-Authored-By: Sameera Deshpande <sameera.deshpande@arm.com>
      
      From-SVN: r187014
      Ian Bolton committed
    • MAINTAINERS (Write After Approval): Add myself. · 77f496df
      2012-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>
      
      	* MAINTAINERS (Write After Approval): Add myself.
      
      From-SVN: r187013
      Greta Yorsh committed
    • linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef comparing enumeration values. · 6302b84b
      	* arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
      	comparing enumeration values.  Update comments.
      
      From-SVN: r187012
      Richard Earnshaw committed
    • re PR target/53038 (cfi_restore for cr before cr is actually restored) · 56ca756c
      	PR target/53038
      	* config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
      	load_cr_save, add_crlr_cfa_restore): New functions.
      	(rs6000_restore_saved_cr): Rename to..
      	(restore_saved_cr): ..this.  Add cfa_restore notes for cr.
      	(rs6000_emit_epilogue): Use new functions.  Adjust condition
      	for emitting lr and cr cfa_restore.  Emit cfa_restores for fp
      	regs when using out-of-line restore only when shrink wrapping.
      
      From-SVN: r187010
      Alan Modra committed