Commit Graph

126380 Commits

Author SHA1 Message Date
Jonathan Wakely
5275f3e546 re PR libstdc++/58982 (std::vector<std::atomic<int>> vai(10); does not compile anymore)
PR libstdc++/58982
	* include/bits/stl_algobase.h (__copy_move::__copy_m): Use assertion
	to prevent using memmove() on non-assignable types.
	(__copy_move_backward::__copy_move_b): Likewise.
	* include/bits/stl_uninitialized.h (uninitialized_copy
	uninitialized_copy_n, uninitialized_fill, uninitialized_fill_n,
	__uninitialized_default, __uninitialized_default_n): Check for
	assignable as well as trivial.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy/
	58982.cc: New.
	* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
	58982.cc: New.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill/
	58982.cc: New.
	* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
	58982.cc: New.
	* testsuite/25_algorithms/copy/58982.cc: New.
	* testsuite/25_algorithms/copy_n/58982.cc: New.

From-SVN: r204615
2013-11-09 12:38:00 +00:00
Richard Sandiford
1d0216c8b7 target.def (can_use_doloop_p): New hook.
gcc/
	* target.def (can_use_doloop_p): New hook.
	* doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add.
	* doc/tm.texi: Regenerate.
	* doc/md.texi (doloop_begin, doloop_end): Update documentation.
	* hooks.h (hook_bool_dint_dint_uint_true): Declare.
	* hooks.c (hook_bool_dint_dint_uint_true): New function.
	* targhooks.h (can_use_doloop_if_innermost): Declare.
	* targhooks.c (can_use_doloop_if_innermost): New function.
	* target.h: Include double-int.h.
	* loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p.
	Remove iteration count, maximum iteration count, loop depth and
	enter-at-top inputs from doloop_begin and doloop_end.
	* config/arc/arc.md (doloop_begin, doloop_end): Update for new
	interface.
	* config/arc/arc.c (arc_can_use_doloop_p): New function.
	(TARGET_CAN_USE_DOLOOP_P): Define.
	* config/arm/thumb2.md (doloop_end): Update for new interface.
	* config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define.
	* config/bfin/bfin.md (doloop_end): Update for new interface.
	* config/bfin/bfin.c (bfin_can_use_doloop_p): New function.
	(TARGET_CAN_USE_DOLOOP_P): Define.
	* config/c6x/c6x.md (doloop_end): Update for new interface.
	* config/ia64/ia64.md (doloop_end): Update for new interface.
	* config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define.
	* config/mep/mep.md (doloop_begin, doloop_end): Update for new
	interface.
	* config/mep/mep.c (mep_emit_doloop): Likewise.
	(TARGET_CAN_USE_DOLOOP_P): Define.
	* config/rs6000/rs6000.md (doloop_end): Update for new interface.
	* config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define.
	* config/s390/s390.md (doloop_end): Update for new interface.
	* config/sh/sh.md (doloop_end): Likewise.
	* config/spu/spu.md (doloop_end): Likewise.
	* config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define.
	* config/tilegx/tilegx.md (doloop_end): Update for new interface.
	* config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define.
	* config/tilepro/tilepro.md (doloop_end): Update for new interface.
	* config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define.
	* config/v850/v850.md (doloop_begin, doloop_end): Update for new
	interface.
	* config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define.

From-SVN: r204614
2013-11-09 11:42:16 +00:00
GCC Administrator
12929715b1 Daily bump.
From-SVN: r204611
2013-11-09 00:16:56 +00:00
Diego Novillo
862d0b359f Re-factor tree.h - Part 1.
This is the first patch in a series of patches to cleanup tree.h to
reduce the exposure it has all over the compiler.

In this patch, I'm moving functions that are used once into the files
that use them, and make them private to that file. These functions
were declared extern in tree.h and called from exactly one place.

The patch does not move EVERY function. This usually happens
when the function uses private state from its original file, and
moving that private state would mean moving other functions that made
no sense to move.

Additionally, the patch removes functions that were never used.

In subsequent patches, I will be moving out of tree.h extern definitions
that should be grouped in other files (e.g., all functions defined in
some FOO.c will be moved to the corresponding FOO.h). This will allow
me to remove the inclusion of tree.h from some files.

    * attribs.c (lookup_scoped_attribute_spec): Make static.
    (get_attribute_namespace): Likewise.
    * builtins.c (more_const_call_expr_args_p): Move from
    tree.h.
    (validate_arglist): Move earlier in the file. Make static.
    (expand_stack_restore): Move from stmt.c
    (expand_stack_save): Move from stmt.c
    (rewrite_call_expr_array): Move earlier in the file.
    (rewrite_call_expr_valist): Likewise.
    * cfgexpand.c: Include hard-reg-set.h before tree.h
    Include recog.h.
    Include output.h.
    (expand_asm_loc): Move from stmt.c.
    (n_occurrences): Move from stmt.c.
    (check_operand_nalternatives): Move from stmt.c.
    (tree_conflicts_with_clobbers_p): Move from stmt.c.
    (expand_asm_operands): Move from stmt.c
    (expand_asm_stmt): Move from stmt.c
    (expand_computed_goto): Move from stmt.c
    (expand_goto): Move from stmt.c
    (expand_null_return_1): Move from stmt.c
    (expand_null_return): Move from stmt.c
    (expand_value_return): Move from stmt.c
    (expand_return): Move from stmt.c
    (expand_main_function): Move from function.c
    (stack_protect_prologue): Move from function.c
    * cgraphclones.c (build_function_type_skip_args): Move from tree.c.
    (build_function_decl_skip_args): Move from tree.c.
    * explow.c (tree_expr_size): Move from tree.c.
    * expr.c (addr_expr_of_non_mem_decl_p): Remove.
    (fields_length): Move from tree.c.
    * fold-const.c (size_low_cst): Move from tree.c.
    (tree_expr_nonzero_warnv_p): Make static. Move earlier in the file.
    (tree_expr_nonzero_p): Make static. Move earlier in the file.
    (fold_build3_initializer_loc): Remove.
    (tree_invalid_nonnegative_warnv_p): Make static.
    * function.c (expand_main_function): Move to cfgexpand.c.
    (stack_protect_prologue): Move to cfgexpand.c.
    (set_insn_locations): Move earlier in the file.
    * gimple-fold.c: Include langhooks.h.
    (truth_type_for): Move from tree.c.
    * print-tree.c (print_vec_tree): Remove.
    * stmt.c (expand_computed_goto): Move to cfgexpand.c.
    (expand_goto): Move to cfgexpand.c.
    (n_occurrences): Move to cfgexpand.c.
    (expand_asm_loc): Move to cfgexpand.c
    (tree_conflicts_with_clobbers_p): Move to cfgexpand.c.
    (expand_asm_operands): Move to cfgexpand.c.
    (expand_asm_stmt): Move to cfgexpand.c.
    (check_operand_nalternatives): Move to cfgexpand.c
    (expand_null_return): Move to cfgexpand.c.
    (expand_value_return): Move to cfgexpand.c.
    (expand_null_return_1): Move to cfgexpand.c.
    (expand_return): Move to cfgexpand.c.
    (expand_stack_save): Move to builtins.c.
    (expand_stack_restore): Move to builtins.c
    * symtab.c: Include output.h.
    (decl_assembler_name_hash): Move from tree.c.
    (decl_assembler_name_equal): Move from tree.c.
    * trans-mem.c (is_tm_safe_or_pure): Move from tree.h.
    * tree-eh.c (in_array_bounds_p): Move from tree.c.
    (range_in_array_bounds_p): Move from tree.c.
    * tree-object-size.c (fini_object_sizes): Make static.
    * tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h.
    * tree-vrp.c (ssa_name_nonnegative_p): Remove.
    * tree.c (decl_assembler_name_equal): Move to symtab.c.
    (tree_expr_size): Move to explow.c.
    (decl_assembler_name_hash): Move to symtab.c.
    (real_twop): Remove.
    (tree_expr_size): Move to explow.c.
    (stabilize_reference_1): Move earlier in the file. Make static.
    (omp_remove_redundant_declare_simd_attrs): Remove.
    (simple_cst_list_equal): Move earlier in the file. Make static.
    (size_low_cst): Move to fold-const.c.
    (build_type_no_quals): Remove.
    (build_function_type_skip_args): Move to cgraphclones.c.
    (build_function_decl_skip_args): Move to cgraphclones.c.
    (in_array_bounds_p): Move to tree-eh.c.
    (range_in_array_bounds_p): Move to tree-eh.c.
    (truth_type_for): Move to gimple-fold.c.
    (list_equal_p): remove.
    * tree.h (decl_assembler_name_equal): Remove.
    (decl_assembler_name_hash): Remove.
    (truth_type_for): Remove.
    (build_type_no_quals): Remove.
    (build_function_decl_skip_args): Remove.
    (in_array_bounds_p): Remove.
    (range_in_array_bounds_p): Remove.
    (size_low_cst): Remove.
    (omp_remove_redundant_declare_simd_attrs): Remove.
    (tree_expr_size): Remove.
    (fields_length): Remove.
    (stabilize_reference_1): Remove.
    (expand_goto): Remove.
    (expand_stack_save): Remove.
    (expand_stack_restore): Remove.
    (expand_return): Remove.
    (fold_build3_initializer_loc): Remove.
    (tree_expr_nonzero_p): Remove.
    (tree_invalid_nonnegative_warnv_p): Remove.
    (tree_expr_nonzero_warnv_p): Remove.
    (fold_builtin_snprintf_chk): Remove.
    (validate_arglist): Remove.
    (iterative_hash_exprs_commutative): Move to tree-ssa-dom.c.
    (simple_cst_list_equal): Remove.
    (real_twop): Remove.
    (expand_main_function): Remove.
    (stack_protect_prologue): Remove.
    (print_vec_tree): Remove.
    (lookup_scoped_attribute_spec): Remove.
    (get_attribute_namespace): Remove.
    (expand_computed_goto): Remove.
    (expand_asm_stmt): Remove.
    (list_equal_p): Remove.
    (ssa_name_nonnegative_p): Remove.
    (fini_object_sizes): Remove.
    (addr_expr_of_non_mem_decl_p): Remove.
    (is_tm_safe_or_pure): Move to trans-mem.c.
    (more_const_call_expr_args_p): Remove.
    (save_vtable_map_decl): Remove.

From-SVN: r204606
2013-11-08 17:46:16 -05:00
H.J. Lu
f0e56cd667 Move Cilk Plus Builtins node before Other Builtins node
PR other/59055
	* doc/extend.texi: Move Cilk Plus Builtins node before Other
	Builtins node.

From-SVN: r204604
2013-11-08 14:16:59 -08:00
Joseph Myers
39b2468cf6 [multiple changes]
2013-11-08  Andrew MacLeod  <amacleod@redhat.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* ginclude/stdatomic.h: New file.
	* Makefile.in (USER_H): Add stdatomic.h.

testsuite:
2013-11-08  Joseph Myers  <joseph@codesourcery.com>

	* gcc.dg/atomic/stdatomic-compare-exchange-1.c,
	gcc.dg/atomic/stdatomic-compare-exchange-2.c,
	gcc.dg/atomic/stdatomic-compare-exchange-3.c,
	gcc.dg/atomic/stdatomic-compare-exchange-4.c,
	gcc.dg/atomic/stdatomic-exchange-1.c,
	gcc.dg/atomic/stdatomic-exchange-2.c,
	gcc.dg/atomic/stdatomic-exchange-3.c,
	gcc.dg/atomic/stdatomic-exchange-4.c,
	gcc.dg/atomic/stdatomic-fence.c, gcc.dg/atomic/stdatomic-flag.c,
	gcc.dg/atomic/stdatomic-generic.c,
	gcc.dg/atomic/stdatomic-kill-dep.c,
	gcc.dg/atomic/stdatomic-load-1.c,
	gcc.dg/atomic/stdatomic-load-2.c,
	gcc.dg/atomic/stdatomic-load-3.c,
	gcc.dg/atomic/stdatomic-load-4.c,
	gcc.dg/atomic/stdatomic-lockfree.c,
	gcc.dg/atomic/stdatomic-op-1.c, gcc.dg/atomic/stdatomic-op-2.c,
	gcc.dg/atomic/stdatomic-op-3.c, gcc.dg/atomic/stdatomic-op-4.c,
	gcc.dg/atomic/stdatomic-store-1.c,
	gcc.dg/atomic/stdatomic-store-2.c,
	gcc.dg/atomic/stdatomic-store-3.c,
	gcc.dg/atomic/stdatomic-store-4.c, gcc.dg/c11-stdatomic-1.c: New
	tests.

From-SVN: r204603
2013-11-08 22:15:09 +00:00
François Dumont
9fc0e24b6c safe_iterator.h (_BeforeBeginHelper<>::_S_Is): Take only a const safe iterator reference.
2013-11-08  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/safe_iterator.h (_BeforeBeginHelper<>::_S_Is):
	Take only a const safe iterator reference.
	(_BeforeBeginHelper<>::_S_Is_beginnest): Likewise.
	(__get_distance): Take only one type of iterator.
	(_Safe_iterator<>::_M_valid_range<>): Not template anymore.
	(_Safe_iterator<>::_M_get_sequence()): Return pointer to const
	sequence from a const_iterator and a pointer to sequence from an
	iterator.
	* include/debug/safe_iterator.tcc: Adapt.
	* include/debug/safe_local_iterator.h
	(_Safe_local_iterator<>::_M_valid_range<>): Not template anymore.
	(_Safe_local_iterator<>::_M_get_sequence()): Return pointer to
	const sequence from a const_iterator and a pointer to sequence
	from an iterator.
	* include/debug/safe_local_iterator.tcc: Adapt.
	* include/debug/forward_list
	(_BeforeBeginHelper<std::__debug::forward_list<>>): Adapt.

From-SVN: r204598
2013-11-08 21:03:58 +00:00
Balaji V. Iyer
d53b3432e2 +2013-11-08 Balaji V.
+2013-11-08  Balaji V. Iyer  <balaji.v.iyer@intel.com>
+
+       PR c/59039
+       * runtime/cilk_fiber-unix.cpp: Fixed a crash in run() function
+       when optimization is turned on.
+

From-SVN: r204592
2013-11-08 11:52:27 -08:00
Cong Hou
3361dd3a6d re PR tree-optimization/58508 ([Missed-Optimization] Redundant vector load of "actual" loop invariant in loop body.)
2013-11-08  Cong Hou  <congh@google.com>

	PR tree-optimization/58508
	* gcc.dg/vect/pr58508.c: Update.

From-SVN: r204590
2013-11-08 13:44:46 -05:00
Kyrylo Tkachov
438a7ecd23 arm.c (arm_new_rtx_costs): Break after handling comparisons.
* config/arm/arm.c (arm_new_rtx_costs): Break after handling
	comparisons.

From-SVN: r204584
2013-11-08 17:36:21 +00:00
Ian Lance Taylor
6860705512 compiler: Fix bogus init loop error with struct composite literal.
This should eventually be bug482.go in the master testsuite.

From-SVN: r204583
2013-11-08 17:35:24 +00:00
Jonathan Wakely
e15c474a34 regex_compiler.h (__detail::__has_contiguous_iter): vector<bool> storage is not contiguous.
* include/bits/regex_compiler.h (__detail::__has_contiguous_iter):
	vector<bool> storage is not contiguous.

From-SVN: r204582
2013-11-08 17:33:31 +00:00
Jeff Law
f0bc3cc0ea tree-ssa-threadupdate.h (delete_thread_path): Declare.
* tree-ssa-threadupdate.h (delete_thread_path): Declare.
        * tree-ssa-threadupdate.c (delete_thread_path): New function.
        (ssa_redirect_edges, thread_block_1): Use it.
        (thread_through_loop_header, mark_threaded_blocks): Likewise.
        (thread_through_all_blocks, register_jump_thread): Likewise.
        * tree-ssa-threadedge.c (thread_across_edge): Likewise.

From-SVN: r204579
2013-11-08 09:24:06 -07:00
James Greenhalgh
df023e0f3e [ARM, AArch64] Make aarch-common.c files more robust.
gcc/
	* config/arm/aarch-common.c
	(search_term): New typedef.
	(shift_rtx_costs): New array.
	(arm_rtx_shift_left_p): New.
	(arm_find_sub_rtx_with_search_term): Likewise.
	(arm_find_sub_rtx_with_code): Likewise.
	(arm_early_load_addr_dep): Add sanity checking.
	(arm_no_early_alu_shift_dep): Likewise.
	(arm_no_early_alu_shift_value_dep): Likewise.
	(arm_no_early_mul_dep): Likewise.
	(arm_no_early_store_addr_dep): Likewise.

From-SVN: r204575
2013-11-08 15:09:50 +00:00
Jonathan Wakely
34d1ff06bf regex_compiler.h (__detail::__compile_nfa): Overload so that std::basic_string<C> and std::vector<C> iterators dispatch to...
* include/bits/regex_compiler.h (__detail::__compile_nfa): Overload
	so that std::basic_string<C> and std::vector<C> iterators dispatch to
	the const C* compiler.

From-SVN: r204574
2013-11-08 14:30:40 +00:00
Jonathan Wakely
bb038ece8f regex_compiler.h (__detail::_AnyMatcher, [...]): Remove redundant _CharT template parameters.
* include/bits/regex_compiler.h (__detail::_AnyMatcher,
	__detail::_CharMatcher, __detail::_BracketMatcher): Remove redundant
	_CharT template parameters.
	* include/bits/regex_compiler.tcc: Likewise.

From-SVN: r204573
2013-11-08 14:30:34 +00:00
Jonathan Wakely
68e69ce27f regex_automaton.h (__detail::_State, [...]): Remove redundant _CharT template parameters.
* include/bits/regex_automaton.h (__detail::_State, __detail::_NFA,
	__detail::_StateSeq): Remove redundant _CharT template parameters.
	* include/bits/regex_automaton.tcc: Likewise.
	* include/bits/regex_compiler.h (__detail::_Compiler): Likewise.
	(__compile_nfa): Add object generator for _Compiler.
	* include/bits/regex_compiler.tcc: Remove _CharT template parameters.
	* include/bits/regex_executor.h: Likewise.
	* include/bits/regex_executor.tcc: Likewise.
	* include/bits/regex.h (basic_regex): Assert char_type matches. Use
	__compile_nfa object generator. Remove _CharT template parameter.

From-SVN: r204572
2013-11-08 14:30:29 +00:00
Jonathan Wakely
7d9d218516 regex_automaton.h (__detail::_State): Split non-dependent parts into new _State_base.
* include/bits/regex_automaton.h (__detail::_State): Split
	non-dependent parts into new _State_base.
	(__detail::_NFA): Likewise for _NFA_base. Use std::move() to avoid
	copies when inserting _MatcherT and _StateT objects.
	* include/bits/regex_automaton.tcc: Move member definitions to base
	class. Qualify dependent names.
	* include/bits/regex_compiler.h (__detail::_Compiler::_M_get_nfa): Make
	non-const and use std::move to avoid copying.
	* include/bits/regex_compiler.tcc: Likewise.
	* include/bits/regex_executor.h (__detail::_Executor::_M_is_word): Use
	array, so past-the-end iterator is valid.

From-SVN: r204571
2013-11-08 14:30:22 +00:00
Richard Biener
cb3d1e3e87 re PR tree-optimization/59047 (wrong code for bitfields at -O3 on x86_64-linux-gnu)
2013-11-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59047
	* tree-predcom.c (ref_at_iteration): Handle bitfield accesses
	properly.

	* gcc.dg/torture/pr59047.c: New testcase.

From-SVN: r204566
2013-11-08 12:49:10 +00:00
Ilya Enkovich
05ff747002 common.opt (fcheck-pointer-bounds): Move to ...
* common.opt (fcheck-pointer-bounds): Move to ...
        * c-family/c.opt: ... here.
        * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
        (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
        * langhooks.h (lang_hooks): Remove chkp_supported field.
        * toplev.c (process_options): Remove chkp_supported check.

From-SVN: r204563
2013-11-08 10:57:54 +00:00
Bernhard Reutner-Fischer
ac088ba1f0 libgcc: check for fenv.h in dfp configure check
uClibc can be built without fenv support, extend the configure check for
decimal floating point to probe the existance of fenv.h, too.

libgcc/ChangeLog:

2013-03-24  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

	* configure.ac (libgcc_cv_dfp): Extend check to probe fenv.h
	availability.
	* configure: Regenerate

From-SVN: r204562
2013-11-08 11:18:27 +01:00
Richard Biener
2cf19e2664 re PR tree-optimization/59038 (r204398 causes 186.crafty init.c to be miscompiled)
2013-11-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/59038
	PR tree-optimization/58955
	* tree-loop-distribution.c (pg_add_dependence_edges): Revert
	previous change.  Handle known dependences correctly.

	* gcc.dg/torture/pr59038.c: New testcase.

From-SVN: r204561
2013-11-08 08:44:02 +00:00
Ian Lance Taylor
7d6c5039bb compiler: Correct types when type conversion makes backend call.
From-SVN: r204559
2013-11-08 05:46:22 +00:00
Tom de Vries
26e3d0ae64 Remove duplicate contents in gcc/config/rs6000/t-xilinx
2013-11-08  Tom de Vries  <tom@codesourcery.com>

	* config/rs6000/t-xilinx: Remove duplicate contents.

From-SVN: r204555
2013-11-08 00:38:08 +00:00
GCC Administrator
a5bebf9ea4 Daily bump.
From-SVN: r204554
2013-11-08 00:16:23 +00:00
Ian Lance Taylor
f671b58945 runtime: Fixes for Alpha.
From-SVN: r204551
2013-11-07 23:38:47 +00:00
Janus Weil
50c7654b96 re PR fortran/58471 (ICE on invalid with missing type constructor and -Wall)
2013-11-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/58471
	* primary.c (gfc_expr_attr): Check for result symbol.

2013-11-07  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/58471
	* gfortran.dg/constructor_9.f90: New.

From-SVN: r204547
2013-11-07 23:39:15 +01:00
Uros Bizjak
9de84e84f2 sfp-exceptions.c (__sfp_handle_exceptions): Rewrite FP_EX_INEXACT handling.
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Rewrite
	FP_EX_INEXACT handling.

From-SVN: r204546
2013-11-07 22:53:54 +01:00
Joseph Myers
722516b81f atomic-compare-exchange-1.c, [...]: Declare main as returning int.
* gcc.dg/atomic-compare-exchange-1.c,
	gcc.dg/atomic-compare-exchange-2.c,
	gcc.dg/atomic-compare-exchange-3.c,
	gcc.dg/atomic-compare-exchange-4.c,
	gcc.dg/atomic-compare-exchange-5.c, gcc.dg/atomic-exchange-1.c,
	gcc.dg/atomic-exchange-2.c, gcc.dg/atomic-exchange-3.c,
	gcc.dg/atomic-exchange-4.c, gcc.dg/atomic-exchange-5.c,
	gcc.dg/atomic-fence.c, gcc.dg/atomic-flag.c,
	gcc.dg/atomic-generic.c, gcc.dg/atomic-invalid.c,
	gcc.dg/atomic-load-1.c, gcc.dg/atomic-load-2.c,
	gcc.dg/atomic-load-3.c, gcc.dg/atomic-load-4.c,
	gcc.dg/atomic-load-5.c, gcc.dg/atomic-lockfree.c,
	gcc.dg/atomic-noinline.c, gcc.dg/atomic-op-1.c,
	gcc.dg/atomic-op-2.c, gcc.dg/atomic-op-3.c, gcc.dg/atomic-op-4.c,
	gcc.dg/atomic-op-5.c, gcc.dg/atomic-param.c,
	gcc.dg/atomic-store-1.c, gcc.dg/atomic-store-2.c,
	gcc.dg/atomic-store-3.c, gcc.dg/atomic-store-4.c,
	gcc.dg/atomic-store-5.c: Declare main as returning int.
	* gcc.dg/atomic-exchange-1.c, gcc.dg/atomic-exchange-2.c,
	gcc.dg/atomic-exchange-3.c, gcc.dg/atomic-exchange-4.c,
	gcc.dg/atomic-exchange-5.c: Separate increments of count from
	expression using value of count.

From-SVN: r204545
2013-11-07 21:20:18 +00:00
Joseph Myers
267bac1078 tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
gcc:
2013-11-05  Andrew MacLeod  <amacleod@redhat.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
	(enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
	TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
	(struct tree_base): Add atomic_flag field.
	* tree.h (TYPE_ATOMIC): New accessor macro.
	(TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
	(TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
	(atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
	(atomicDI_type_node, atomicTI_type_node): New macros for type
	nodes.
	* tree.c (set_type_quals): Set TYPE_ATOMIC.
	(find_atomic_core_type): New function.
	(build_qualified_type): Adjust alignment for qualified types.
	(build_atomic_base): New function
	(build_common_tree_nodes): Build atomicQI_type_node,
	atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
	atomicTI_type_node.
	* print-tree.c (print_node): Print atomic qualifier.
	* tree-pretty-print.c (dump_generic_node): Print atomic type
	attribute.
	* target.def (atomic_assign_expand_fenv): New hook.
	* doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
	* doc/tm.texi: Regenerate.
	* targhooks.c (default_atomic_assign_expand_fenv): New function.
	* targhooks.h (default_atomic_assign_expand_fenv): Declare.
	* sync-builtins.def (__atomic_feraiseexcept): New built-in
	function.
	* config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New
	function type.
	* config/i386/i386.c (enum ix86_builtins): Add
	IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and
	IX86_BUILTIN_FNCLEX.
	(bdesc_special_args): Add __builtin_ia32_fnstenv,
	__builtin_ia32_fldenv, __builtin_ia32_fnstsw and
	__builtin_ia32_fnclex.
	(ix86_expand_builtin): Handle the new built-in functions.
	(ix86_atomic_assign_expand_fenv): New function.
	(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro.
	* config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV)
	(UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs.
	(fnstenv, fldenv, fnstsw, fnclex): New insns.

gcc/c-family:
2013-11-05  Andrew MacLeod  <amacleod@redhat.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* c-common.h (enum rid): Add RID_ATOMIC.
	* c-common.c (c_common_reswords): Add _Atomic.
	(sync_resolve_params): Use TYPE_MAIN_VARIANT on pointer argument.
	(keyword_is_type_qualifier): Accept RID_ATOMIC.
	* c-format.c (check_format_types): Check for extra _Atomic
	qualifiers in format argument.
	* c-pretty-print.c (pp_c_cv_qualifiers): Handle atomic qualifier.
	(pp_c_type_qualifier_list): Mention _Atomic in comment.

gcc/c:
2013-11-05  Joseph Myers  <joseph@codesourcery.com>
	    Andrew MacLeod  <amacleod@redhat.com>

	* c-aux-info.c (gen_type): Handle atomic qualifier.
	* c-decl.c (validate_proto_after_old_defn): Do not remove atomic
	qualifiers when compating types.
	(shadow_tag_warned): Handle atomic_p in declspecs.
	(quals_from_declspecs): Likewise.
	(start_decl): Use c_type_promotes_to when promoting argument
	types.
	(grokdeclarator): Handle _Atomic.
	(get_parm_info): Diagnose any qualifier on "void" as only
	parameter.
	(store_parm_decls_oldstyle): Do not remove atomic qualifiers when
	comparing types.  Use c_type_promotes_to when promoting argument
	types.
	(finish_function): Use c_type_promotes_to when promoting argument
	types.
	(build_null_declspecs): Handle atomic_p in declspecs.
	(declspecs_add_qual): Handle RID_ATOMIC.
	* c-parser.c (c_token_starts_typename, c_token_is_qualifier)
	(c_token_starts_declspecs): Handle RID_ATOMIC.
	(c_parser_declspecs): Handle atomic type specifiers and
	qualifiers.
	(c_parser_typeof_specifier): Remove const and _Atomic qualifiers
	from types of expressions with atomic type.
	(c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
	(c_parser_attribute_any_word): Handle RID_ATOMIC.
	(c_parser_initializer, c_parser_initelt, c_parser_initval)
	(c_parser_statement_after_labels, c_parser_switch_statement)
	(c_parser_for_statement, c_parser_expr_no_commas)
	(c_parser_conditional_expression, c_parser_binary_expression)
	(c_parser_cast_expression, c_parser_unary_expression)
	(c_parser_postfix_expression)
	(c_parser_postfix_expression_after_primary, c_parser_expression):
	Use convert_lvalue_to_rvalue.
	(c_parser_expression_conv, c_parser_expr_list): Document
	conversion of lvalues to rvalues.  Use convert_lvalue_to_rvalue.
	(c_parser_objc_synchronized_statement): Use
	convert_lvalue_to_rvalue.
	(c_parser_objc_selector): Handle RID_ATOMIC.
	(c_parser_objc_receiver, c_parser_array_notation): Use
	convert_lvalue_to_rvalue.
	* c-tree.h (ctsk_typeof): Adjust comment to mention use for
	_Atomic (type-name).
	(struct c_declspecs): Add atomic_p field.
	(convert_lvalue_to_rvalue): Declare.
	* c-typeck.c (c_type_promotes_to): Promote atomic types to
	corresponding atomic types.
	(qualify_type): Don't add _Atomic qualifiers from second argument.
	(comp_target_types): Do not allow _Atomic mismatches.
	(type_lists_compatible_p): Do not remove atomic qualifiers when
	comparing types.
	(really_atomic_lvalue, convert_lvalue_to_rvalue)
	(build_atomic_assign): New functions.
	(build_unary_op): Use build_atomic_assign for atomic increment and
	decrement.
	(build_conditional_expr): Do not treat _Atomic void as a qualified
	version of void.
	(build_modify_expr): Use build_atomic_assign for atomic LHS.
	(find_anonymous_field_with_type, convert_to_anonymous_field)
	(convert_for_assignment): Do not remove atomic qualifiers when
	comparing types.
	(digest_init): Do not accept initialization of arrays of atomic
	elements by string constants.
	(build_asm_expr): Use convert_lvalue_to_rvalue.
	(build_binary_op): Do not treat _Atomic void as a qualified
	version of void.

gcc/objc:
2013-11-05  Andrew MacLeod  <amacleod@redhat.com>

	* objc-act.c (objc_push_parm): Handle atomic qualifier.

gcc/testsuite:
2013-11-05  Joseph Myers  <joseph@codesourcery.com>

	* lib/target-supports.exp
	(check_effective_target_fenv_exceptions): New function.
	* lib/atomic-dg.exp, gcc.dg/atomic/atomic.exp: New files.
	* gcc.dg/atomic/c11-atomic-exec-1.c,
	gcc.dg/atomic/c11-atomic-exec-2.c,
	gcc.dg/atomic/c11-atomic-exec-3.c,
	gcc.dg/atomic/c11-atomic-exec-4.c,
	gcc.dg/atomic/c11-atomic-exec-5.c, gcc.dg/c11-atomic-1.c,
	gcc.dg/c11-atomic-2.c, gcc.dg/c11-atomic-3.c,
	gcc.dg/c90-atomic-1.c, gcc.dg/c99-atomic-1.c: New tests.

libatomic:
2013-11-05  Joseph Myers  <joseph@codesourcery.com>

	* fenv.c: New file.
	* libatomic.map (LIBATOMIC_1.1): New symbol version.  Include
	__atomic_feraiseexcept.
	* configure.ac (libtool_VERSION): Change to 2:0:1.
	(fenv.h): Test for header.
	* Makefile.am (libatomic_la_SOURCES): Add fenv.c.
	* Makefile.in, auto-config.h.in, configure: Regenerate.

From-SVN: r204544
2013-11-07 21:15:25 +00:00
Steve Ellcey
07cb5010c8 mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
2013-11-07  Steve Ellcey  <sellcey@mips.com>

	* config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
	* config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag.
	(MULTILIB_DIRNAMES): Add fp64 directory.
	(MULTILIB_EXCEPTIONS): Add new exclusions.

From-SVN: r204542
2013-11-07 20:42:51 +00:00
Aldy Hernandez
b3b6e1f280 gimplify.c (gimple_regimplify_operands): Do not set SSA_NAME_DEF_STMT.
* gimplify.c (gimple_regimplify_operands): Do not set
	SSA_NAME_DEF_STMT.
	* graphite-sese-to-poly.c (remove_simple_copy_phi): Same.
	(rewrite_close_phi_out_of_ssa): Same.
	(rewrite_phi_out_of_ssa): Same.
	(rewrite_degenerate_phi): Same.
	(handle_scalar_deps_crossing_scop_limits): Same.
	* tree-if-conv.c (predicate_scalar_phi): Same.
	* tree-parloops.c (create_loads_for_reductions): Same.
	(create_final_loads_for_reduction): Same.
	(create_loads_and_stores_for_name): Same.
	(transform_to_exit_first_loop): Same.
	(create_parallel_loop): Same.
	* tree-ssa-loop-im.c
	(move_computations_dom_walker::before_dom_children): Same.
	* tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same.
	* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
	Same.
	* tree-ssa-propagate.c (substitute_and_fold): Same.
	* tree-vect-loop.c (vect_finalize_reduction): Same.
	* tree-vect-stmts.c (vectorizable_call): Same.

From-SVN: r204541
2013-11-07 20:20:48 +00:00
Uros Bizjak
d59a8fcce6 sfp-exceptions.c (__sfp_handle_exceptions): Handle FP_EX_DENORM.
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Handle
	FP_EX_DENORM.  Store result to volatile location after SSE division
	to close interrupt window.  Remove unneeded fwait after x87
	division since interrupt window will be closed by emitted fstp.

From-SVN: r204540
2013-11-07 20:45:28 +01:00
Mike Stump
f6de942eeb pdp11.c: Include dbxout.h.
* config/pdp11/pdp11.c: Include dbxout.h.
	* config/picochip/picochip.c: Likewise.

From-SVN: r204539
2013-11-07 19:35:03 +00:00
Cong Hou
a05a89fa70 re PR tree-optimization/56764 (vect_prune_runtime_alias_test_list not smart enough)
2013-11-07  Cong Hou  <congh@google.com>

	PR tree-optimization/56764
	* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
  	Combine alias checks if it is possible to amortize the runtime
  	overhead.  Return the number of alias checks after merging.
  	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
    	Use the function vect_create_cond_for_alias_checks () to check
    	the number of alias checks.

2013-11-07  Cong Hou  <congh@google.com>

    	* gcc.dg/vect/vect-alias-check.c: New.

From-SVN: r204538
2013-11-07 14:29:45 -05:00
Jeff Law
6d0b710573 * varpool.c (ctor_for_folding): Fix typo in comment.
From-SVN: r204537
2013-11-07 12:26:25 -07:00
Thomas Schwinge
76c79d3307 Makefile.in: Regenerate.
* Makefile.in: Regenerate.

Follow-up to r204173.

From-SVN: r204536
2013-11-07 19:09:31 +01:00
Joern Rennecke
9bf218f918 arc.c (arc_ifcvt): Use commutativity, e.g.: reg_a := reg_b + reg_a ==> reg_a := reg_a + reg_b
* config/arc/arc.c (arc_ifcvt): Use commutativity, e.g.:
        reg_a := reg_b + reg_a  ==>  reg_a := reg_a + reg_b

From-SVN: r204534
2013-11-07 17:37:11 +00:00
Jeff Law
89d3d605c3 invoke.texi (-fisolate-erroneous-paths): Document.
* doc/invoke.texi (-fisolate-erroneous-paths): Document.

	* gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
	No longer check if we have __builtin_trap, assume it's
	available.

java/

	* builtins.c (initialize_builtins): Provide __builtin_trap.

From-SVN: r204533
2013-11-07 10:05:18 -07:00
Thomas Schwinge
0d40ed4302 sourcebuild.texi (Top Level): GNU ld can use linker plugins, too.
gcc/
	* doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use
	linker plugins, too.

From-SVN: r204521
2013-11-07 16:08:22 +01:00
Thomas Schwinge
32e6ed9287 Makefile.tpl: Fix typo.
* Makefile.tpl: Fix typo.
	* Makefile.in: Regenerate.

From-SVN: r204520
2013-11-07 16:08:10 +01:00
Thomas Schwinge
1707a5de88 libgomp: Prepare for testcases without -fopenmp.
libgomp/
	* testsuite/lib/libgomp.exp (libgomp_init): Don't add -fopenmp to
	ALWAYS_CFLAGS.
	* testsuite/libgomp.c++/c++.exp (ALWAYS_CFLAGS): Add -fopenmp.
	* testsuite/libgomp.c/c.exp (ALWAYS_CFLAGS): Likewise.
	* testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
	* testsuite/libgomp.graphite/graphite.exp (ALWAYS_CFLAGS):
	Likewise.

From-SVN: r204519
2013-11-07 16:07:58 +01:00
Thomas Schwinge
70f05c4362 Add missing include.
libgomp/
	* libgomp_g.h: Include <stddef.h> for size_t.

From-SVN: r204518
2013-11-07 16:07:46 +01:00
Thomas Schwinge
de14871c88 Generally link to libgomp for -ftree-parallelize-loops=*.
gcc/
	* config/arc/arc.h (LINK_COMMAND_SPEC): For
	-ftree-parallelize-loops=*, link to libgomp and its dependencies.
	* config/ia64/hpux.h (LIB_SPEC): Likewise.
	* config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
	* config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
	* gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's
	dependencies.
	libgomp/
	* libgomp.spec.in: Update comment about libgomp's dependencies.
	* configure.ac: Likewise.
	* configure: Regenerate.

From-SVN: r204517
2013-11-07 16:07:34 +01:00
Jakub Jelinek
7190fdc190 tree-ssa-loop-niter.c: Include tree-ssanames.h.
* tree-ssa-loop-niter.c: Include tree-ssanames.h.
	(determine_value_range): Add loop argument.  Use get_range_info to
	improve range.
	(bound_difference): Adjust caller.

	* gcc.dg/tree-ssa/loop-39.c: New test.

From-SVN: r204516
2013-11-07 15:31:00 +01:00
Jakub Jelinek
d23c0a32ab tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop latches from header PHI arguments from the latch...
* tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop
	latches from header PHI arguments from the latch edge.

        * gcc.dg/unroll_1.c: Add -fno-tree-vrp to dg-options.
        * gcc.dg/unroll_2.c: Likewise.
        * gcc.dg/unroll_3.c: Likewise.
        * gcc.dg/unroll_4.c: Likewise.
	* gcc.dg/vrp90.c: New test.

From-SVN: r204515
2013-11-07 15:28:57 +01:00
Paolo Carlini
fe79fc067e re PR c++/58176 (ICE in output_constant, at varasm.c:4658)
2013-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58176
	* varasm.c (output_constant): Handle NULLPTR_TYPE.

/testsuite
2013-11-07  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/58176
	* g++.dg/cpp0x/nullptr30.C: New.

From-SVN: r204514
2013-11-07 14:26:17 +00:00
H.J. Lu
cb9426fc9a Don't set misaligned_prologue_used twice
* config/i386/i386.c (ix86_expand_set_or_movmem): Don't set
	misaligned_prologue_used when it has been set.

From-SVN: r204512
2013-11-07 05:59:22 -08:00
Yury Gribov
66aa538fc8 Fixed typo in ChangeLog.
From-SVN: r204509
2013-11-07 12:55:42 +00:00
Yury Gribov
77e83307fe Allow integer literals as addresses in instrumented builtins.
gcc/
	PR sanitizer/59029
	* gcc/asan.c (get_mem_refs_of_builtin_call): Allow
	integer literals as addresses in instrumented builtins.

gcc-testsuite/
	PR sanitizer/59029
	* c-c++-common/asan/pr59029.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r204508
2013-11-07 12:04:45 +00:00