Commit Graph

126443 Commits

Author SHA1 Message Date
Jeff Law b11b9adbb1 tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump threading paths first, then perform PHI node checks if applicable.
* tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
        threading paths first, then perform PHI node checks if applicable.

From-SVN: r204659
2013-11-10 20:04:57 -07:00
GCC Administrator eef5b2855b Daily bump.
From-SVN: r204658
2013-11-11 00:16:51 +00:00
Paolo Carlini f61af651e2 cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before maybe_warn_zero_as_null_pointer_constant to avoid...
2013-11-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before
	maybe_warn_zero_as_null_pointer_constant to avoid duplicate
	-Wzero-as-null-pointer-constant diagnostics.

	* typeck.c (build_ptrmemfunc): Use cp_build_c_cast.

From-SVN: r204655
2013-11-10 23:40:57 +00:00
Janne Blomqvist c20fdb917f Set close-on-exec flag when opening files.
2013-11-10  Janne Blomqvist  <jb@gcc.gnu.org>

	* configure.ac: Check presence of mkostemp.
	* io/unix.c (set_close_on_exec): New function.
	(tempfile_open): Use mkostemp and O_CLOEXEC if available, fallback
	to calling set_close_on_exec.
	(regular_file): Add O_CLOEXEC to flags if defined.
	(open_external): Call set_close_on_exec if O_CLOEXEC is not
	defined.
	* config.h.in: Regenerated.
	* configure: Regenerated.
	* Makefile.in: Regenerated.
	* aclocal.m4: Regenerated.

From-SVN: r204654
2013-11-10 22:34:29 +02:00
Kai Tietz 8d44833878 Fixed typo about bug-number ...
PR plugin/52872
        * configure.ac: Adding for exported symbols check
        and for rdynamic-check executable-extension.
        * configure: Regenerated.

From-SVN: r204651
2013-11-10 20:27:38 +01:00
Karlson2k 93acd176ce re PR plugins/52872 (--enable-plugin; incorrect test for "exported symbols" and "-rdynamic" in gcc/configure.ac)
PR plugin/52862
        * configure.ac: Adding for exported symbols check
        and for rdynamic-check executable-extension.
        * configure: Regenerated.

Co-Authored-By: Kai Tietz <ktietz@redhat.com>

From-SVN: r204650
2013-11-10 20:24:43 +01:00
Uros Bizjak 611a4849b4 mode-switching.c (optimize_mode_switching): Mark block as nontransparent, if last_mode at block exit is different from no_mode.
* mode-switching.c (optimize_mode_switching): Mark block as
	nontransparent, if last_mode at block exit is different from no_mode.

From-SVN: r204649
2013-11-10 19:38:36 +01:00
Kai Tietz cabeea52a7 cygming-crtbegin.c (__gcc_register_frame): Increment load-count on use of LIBGCC_SONAME DLL.
2013-11-10  Kai Tietz  <ktietz@redhat.com>

	* config/i386/cygming-crtbegin.c (__gcc_register_frame):
	Increment load-count on use of LIBGCC_SONAME DLL.
	(hmod_libgcc): New static variable to hold handle of
	LIBGCC_SONAME DLL.
	(__gcc_deregister_frame): Decrement load-count of
	LIBGCC_SONAME DLL.

From-SVN: r204635
2013-11-10 12:47:18 +01:00
Uros Bizjak 6fbf987777 fenv.c: New file.
* config/x86/fenv.c: New file.

From-SVN: r204634
2013-11-10 12:45:42 +01:00
GCC Administrator d859c1b8c0 Daily bump.
From-SVN: r204623
2013-11-10 00:16:57 +00:00
Jan-Benedict Glaw 8a6ce562e5 function.c (NAME__MAIN): Move to...
2013-11-09  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* function.c (NAME__MAIN): Move to...
	* cfgexpand.c (NAME__MAIN): ...here.

[BR]: http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01003.html

From-SVN: r204620
2013-11-09 20:12:59 +00:00
Joseph Myers 6b28e19721 c-common.c (atomic_size_supported_p): New function.
* c-common.c (atomic_size_supported_p): New function.
	(resolve_overloaded_atomic_exchange)
	(resolve_overloaded_atomic_compare_exchange)
	(resolve_overloaded_atomic_load, resolve_overloaded_atomic_store):
	Use it instead of comparing size with a local list of sizes.

From-SVN: r204618
2013-11-09 16:32:34 +00:00
Ian Lance Taylor 86dedeba36 runtime: Correct flag (FlagNoGC => FlagNoInvokeGC).
From-SVN: r204617
2013-11-09 16:23:00 +00:00
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