Commit Graph

143070 Commits

Author SHA1 Message Date
Ilya Enkovich
da33235f37 i386.c (ix86_get_mask_mode): Use scalar modes for 32 and 16 byte boolean vectors when possible.
gcc/

	* config/i386/i386.c (ix86_get_mask_mode): Use scalar
	modes for 32 and 16 byte boolean vectors when possible.

gcc/testsuite/

	* gcc.dg/vect/vect-32-chars.c: New test.

From-SVN: r231553
2015-12-11 09:43:52 +00:00
Segher Boessenkool
5d59ed6332 Fix shrink-wrapping bug (PR67778, PR68634)
After shrink-wrapping has found the "tightest fit" for where to place
the prologue, it tries move it earlier (so that frame saves are run
earlier) -- but without copying any more basic blocks.

Unfortunately a candidate block we select can be inside a loop, and we
will still allow it (because the loop always exits via our previously
chosen block).  We can do that just fine if we make a duplicate of the
block, but we do not want to here.

So we need to detect this situation.  We can place the prologue at a
previous block PRE only if PRE dominates every block reachable from
it, because then we will never need to duplicate that block (it will
always be executed with prologue).


2015-12-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/67778
	PR rtl-optimization/68634
	* shrink-wrap.c (try_shrink_wrapping): Add a comment about why we want
	to put the prologue earlier.  When determining if an earlier block is
	suitable, make sure it dominates every block reachable from it.

From-SVN: r231552
2015-12-11 01:27:14 +01:00
GCC Administrator
9c7163d0bf Daily bump.
From-SVN: r231551
2015-12-11 00:16:12 +00:00
Jan Hubicka
958a627f88 re PR lto/61886 (LTO breaks fread with _FORTIFY_SOURCE=2)
PR ipa/61886
	* lto-symtab.c (lto_symtab_merge_p): Avoid merging across different
	values of error and warning attributes.
	* gcc.dg/lto/pr61886_0.c: New testcase

From-SVN: r231548
2015-12-10 23:57:15 +00:00
Segher Boessenkool
0c91a1fb3c rtlanal: Fix bits/bytes confusion in set_noop_p (PR68814)
The meaning of ZERO_EXTRACT depends on BITS_BIG_ENDIAN, not on
BYTES_BIG_ENDIAN.  This caused PR68814.


2015-12-11  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/68814
	* rtlanal.c (set_noop_p): Use BITS_BIG_ENDIAN instead of
	BYTES_BIG_ENDIAN.

From-SVN: r231547
2015-12-11 00:47:31 +01:00
Nathan Sidwell
e74f7152e8 nvptx.c (nvptx_function_arg, [...]): Move earlier.
* config/nvptx/nvptx.c (nvptx_function_arg,
	nvptx_function_incoming_arg, nvptx_function_arg_advance,
	nvptx_strict_argument_naming, nvptx_function_arg_boundary,
	nvptx_libcall_value, nvptx_function_value,
	nvptx_function_value_regno_p, nvptx_pass_by_reference,
	nvptx_return_in_memory, nvptx_promote_function_mode,
	nvptx_static_chain): Move earlier.
	(write_one_arg): Break out as helper fn for ...
	(write_arg): ... this new function.  Adjust all callers.

From-SVN: r231543
2015-12-10 20:13:14 +00:00
Jan Hubicka
35bd8e8fb6 * lto-streamer-out.c (wrap_refs): Only wrap public decls.
From-SVN: r231541
2015-12-10 19:21:31 +00:00
Jan Hubicka
5af56ae8f8 ipa-cp.c (ipcp_cloning_candidate_p): Use node->optimize_for_size_p.
* ipa-cp.c (ipcp_cloning_candidate_p): Use node->optimize_for_size_p.
	(good_cloning_opportunity_p): Likewise.
	(gather_context_independent_values): Do not return true when
	polymorphic call context is known or when we have known aggregate
	value of unused parameter.
	(estimate_local_effects): Try to create clone for all context
	when either some params are substituted or devirtualization is possible
	or some params can be removed; use local flag instead of
	node->will_be_removed_from_program_if_no_direct_calls_p.
	(identify_dead_nodes): Likewise.

	* gcc.c-torture/execute/20010122-1.c: Disable cloning.

From-SVN: r231540
2015-12-10 19:20:14 +00:00
David Malcolm
f6069ccc2b Add -Wmisleading-indentation to -Wall
gcc/c-family/ChangeLog:
	* c.opt (Wmisleading-indentation): Add to -Wall for C and C++.

gcc/ChangeLog:
	* doc/invoke.texi (-Wall): Add -Wmisleading-indentation to the
	list.
	(-Wmisleading-indentation): Update documentation to reflect
	being enabled by -Wall in C/C++.

From-SVN: r231539
2015-12-10 18:21:00 +00:00
Vladimir Makarov
684ffdc9af re PR rtl-optimization/68691 (ICE at -O3 with -g enabled on x86_64-linux-gnu in alter_subregs, at lra-spills.c:610 (in 32-bit mode))
2015-12-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68691
	* lra-spills.c (lra_final_code_change): Check pseudo occurrence
	number in non-debug insns and remove debug insns if necessary.

2015-12-10  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/68691
	* gcc.target/i386/pr68691.c: New.

From-SVN: r231538
2015-12-10 18:00:47 +00:00
Martin Sebor
0da4edf76d invoke.texi (Warning Options): Update -Wall options.
* invoke.texi (Warning Options): Update -Wall options.  Clarify
        when some -Wextra options are enabled.  Add -Wplacement-new example.

From-SVN: r231533
2015-12-10 10:16:32 -07:00
Uros Bizjak
3dec93d59c re PR tree-optimization/68619 (error: loop with header 6 not in loop tree)
PR tree-optimization/68619
	* graphite-scop-detection.c (gather_bbs::before_dom_children):
	Change return type to an edge.  Always return NULL.

From-SVN: r231532
2015-12-10 18:14:07 +01:00
David Malcolm
b5b44c62e6 testsuite/lib/multline.exp: show test name and line numbers
gcc/testsuite/ChangeLog:
	* lib/multiline.exp (_multiline_expected_outputs): Update comment.
	(dg-end-multiline-output): Capture line numbers within
	_multiline_expected_outputs.
	(handle-multiline-outputs): Access global $testname_with_flags
	and add it as a prefix to pass/fail results.  Extract line numbers
	from $_multiline_expected_outputs and print them within pass/fail
	results, replacing the printing of $index.  Consolidate the
	string prefix shared between pass/fail into a new local ($title).

From-SVN: r231530
2015-12-10 17:12:38 +00:00
Jeff Law
3daacdcd5f re PR tree-optimization/68619 (error: loop with header 6 not in loop tree)
2015-12-10  Jeff Law  <law@redhat.com>

	PR tree-optimization/68619
	* tree-ssa-dom.c (dom_opt_dom_walker::before_dom_children): Propgate
	return value from optimize_stmt.
	(dom_opt_dom_walker): Add new argument to dom_walker constructor.
	(pass_dominator:execute): If a block has an unreachable edge,
	remove all jump threads through any successor of the affected block.
	(record_equivalences_from_phis): Ignore alternative if the edge
	does not have EDGE_EXECUTABLE set.
	(single_incoming_edge_ignoring_loop_edges): Similarly.
	(optimize_stmt): If a gimple_code has a compile-time constant
	condition, return the edge taken for that constant value.  Also
	change the condition to true/false as necessary.
	* domwalk.h (dom_walker::dom_walker): Add new argument
	skip_unreachable_blocks.  Don't provide empty constructor body.
	(dom_walker::before_dom_children): Change return type.
	(dom_walker::bb_reachable): Declare new private method.
	(dom_walker::propagate_unreachable_to_edges): Likewise.
	(dom_walker::m_unreachable_dom): Declare new private data member.
	(dom_walker::m_skip_unreachable_blocks): Likewise.
	* domwalk.c: Include dumpfile.h.
	(dom_walker::dom_walker): New constructor.  Initialize private data
	members.  If needed, set EDGE_EXECUTABLE for all edges in the CFG,
	extracted from tree-ssa-sccvn.c.
	(dom_walker::bb_reachable): New method extracted from tree-ssa-sccvn.c
	(dom_walker::propagate_unreachable_to_edges): Likewise.
	(dom_walker::walk): Only call before_dom_children on reachable
	blocks.  If before_dom_children returns an edge, then clear
	EDGE_EXECUTABLE for all other outgoing edges from the same block.
	For unreachable blocks, call propagate_unreachable_to_edges.
	Similarly, only call after_dom_children on reachable blocks.  For
	unreachable blocks, conditionally clear m_unreachable_dom.
	* tree-ssa-sccvn.c (sccvn_dom_walker::unreachable_dom): Remove
	private data member.
	(sccvn_dom_walker::after_dom_children): Use methods from dom_walker
	class.
	(run_scc_vn): Likewise.
	(sccvn_dom_walker::before_dom_children): Likewise.  Return the taken
	outgoing edge if a COND, SWITCH, or GOTO are optimized.
	* compare-elim.c (find_comparison_dom_walker::before_dom_children):
	Change return type to an edge.  Always return NULL.
	* fwprop.c (single_def_use_dom_walker::before_dom_children): Likewise.
	* gimple-ssa-strength-reduction.c
	(find_candidates_dom_walker::before_dom_children): Likewise.
	* ipa-prop.c (analysis_dom_walker::before_dom_children): Likewise.
	(ipcp_modif_dom_walker::before_dom_children): Likewise.
	* tree-into-ssa.c (rewrite_dom_walker::before_dom_children): Likewise.
	(rewrite_update_dom_walker::before_dom_children): Likewise.
	(mark_def_dom_children::before_dom_children): Likewise.
	* tree-ssa-dse.c (dse_dom_walker::before_dom_children): Likewise.
	* tree-ssa-loop-im.c
	(invariantness_dom_walker::before_dom_children): Likewise.
	(move_computations_dom_walker::before_dom_walker): Likewise.
	* tree-ssa-phiopt.c
	(nontrapping_dom_walker::before_dom_children): Likewise.
	* tree-ssa-pre.c
	(eliminate_dom_walker::before_dom_children): Likewise.
	* tree-ssa-propagate.c
	(substitute_and_fold_dom_walker::before_dom_children): Likewise.
	* tree-ssa-strlen.c
	(strlen_dom_walker::before_dom_children): Likewise.
	* tree-ssa-uncprop.c
	(uncprop_dom_walker::before_dom_children): Likewise.

	PR tree-optimization/68619
	* gcc.dg/tree-ssa/pr68619-1.c: New test.
	* gcc.dg/tree-ssa/pr68619-2.c: New test.
	* gcc.dg/tree-ssa/pr68619-3.c: New test.
	* gcc.dg/tree-ssa/pr68619-4.c: New test.
	* gcc.dg/tree-ssa/pr68619-5.c: New test.

From-SVN: r231527
2015-12-10 09:34:43 -07:00
Jakub Jelinek
9dd920ab70 re PR rtl-optimization/68376 (wrong code at -O1 and above on x86_64-linux-gnu)
PR rtl-optimization/68376
	PR rtl-optimization/68670
	* ifcvt.c (noce_try_abs): For one_cmpl allow < 0, >= 0
	or > -1 conditions regardless of negate, and disallow
	all other conditions.

	* gcc.c-torture/execute/pr68376-2.c (f5, f6, f7, f8): New
	tests.
	(main): Call them.
	* gcc.dg/pr68670-1.c: New test.
	* gcc.dg/pr68670-2.c: New test.

From-SVN: r231526
2015-12-10 17:11:49 +01:00
Ilya Enkovich
64a948e9c2 tree-chkp.c (chkp_call_returns_bounds_p): Return true for VA_ARG call.
gcc/

	* tree-chkp.c (chkp_call_returns_bounds_p): Return true
	for VA_ARG call.
	(chkp_fixup_inlined_call): New.
	* tree-chkp.h (chkp_fixup_inlined_call): New.
	* tree-stdarg.c: Include tree-chkp.h.
	(expand_ifn_va_arg_1): Fixup bndret calls for removed
	VA_ARG calls.

From-SVN: r231525
2015-12-10 16:01:42 +00:00
Marek Polacek
da8006f341 re PR c++/68348 (ICE: segfault in cxx_eval_constant_expression at cp/constexpr.c:3172)
PR c++/68348
	* g++.dg/cpp0x/pr68348.C: New test.

From-SVN: r231524
2015-12-10 15:45:49 +00:00
Martin Jambor
f680334141 tree-inline.c (duplicate_remap_omp_clause_seq): New function.
2015-12-10  Martin Jambor  <mjambor@suse.cz>

	* tree-inline.c (duplicate_remap_omp_clause_seq): New function.
	(replace_locals_op): Duplicate gimple sequences in OMP clauses.

From-SVN: r231523
2015-12-10 16:40:57 +01:00
David Malcolm
4c1ca083ca Fix -Wmisleading-indentation warning in graphite-optimize-isl.c
../../../src/gcc/graphite-optimize-isl.c: In function ‘isl_union_set* scop_get_domains(scop_p)’:
../../../src/gcc/graphite-optimize-isl.c:362:5: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
     return res;
     ^~~~~~

In file included from ../../../src/gcc/hash-table.h:236:0,
                 from ../../../src/gcc/coretypes.h:348,
                 from ../../../src/gcc/graphite-optimize-isl.c:28:
../../../src/gcc/vec.h:1343:3: note: ...this ‘for’ clause, but it is not
   for (I = 0; (V).iterate ((I), &(P)); ++(I))
   ^

../../../src/gcc/graphite-optimize-isl.c:359:3: note: in expansion of macro ‘FOR_EACH_VEC_ELT’
   FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
   ^~~~~~~~~~~~~~~~

   351  static isl_union_set *
   352  scop_get_domains (scop_p scop ATTRIBUTE_UNUSED)
   353  {
   354    int i;
   355    poly_bb_p pbb;
   356    isl_space *space = isl_set_get_space (scop->param_context);
   357    isl_union_set *res = isl_union_set_empty (space);
   358
   359    FOR_EACH_VEC_ELT (scop->pbbs, i, pbb)
   360      res = isl_union_set_add_set (res, isl_set_copy (pbb->domain));
   361
   362      return res;
            ^ warning is here
   363  }

gcc/ChangeLog:
	* graphite-optimize-isl.c (scop_get_domains): Fix indentation.

From-SVN: r231522
2015-12-10 15:20:53 +00:00
David Malcolm
4d1b9fe067 Fix -Wmisleading-indentation warning in ifcvt.c
../../../src/gcc/ifcvt.c: In function ‘bool noce_try_inverse_constants(noce_if_info*)’:
../../../src/gcc/ifcvt.c:1233:2: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
  seq = end_ifcvt_sequence (if_info);
  ^~~

../../../src/gcc/ifcvt.c:1230:7: note: ...this ‘if’ clause, but it is not
       if (target != if_info->x)
       ^~

due to the lack of an outdent after the conditional at lines 1230-1:

  1220    if (target)
  1221      {
  1222        rtx_insn *seq = get_insns ();
  1223
  1224        if (!seq)
  1225          {
  1226            end_sequence ();
  1227            return false;
  1228          }
  1229
>>1230        if (target != if_info->x)
>>1231          noce_emit_move_insn (if_info->x, target);
  1232
>>1233          seq = end_ifcvt_sequence (if_info);
  1234
  1235          if (!seq)
  1236            return false;
  1237
  1238          emit_insn_before_setloc (seq, if_info->jump,
  1239                                   INSN_LOCATION (if_info->insn_a));
  1240          return true;
  1241      }

gcc/ChangeLog:
	* ifcvt.c (noce_try_inverse_constants): Fix indentation.

From-SVN: r231521
2015-12-10 15:18:26 +00:00
David Malcolm
5b1fb88a8a Fix -Wmisleading-indentation warning in gcc/regrename.c
../../../src/gcc/regrename.c: In function ‘void scan_rtx_address(rtx_insn*, rtx_def**, reg_class, scan_actions, machine_mode, addr_space_t)’:
../../../src/gcc/regrename.c:1314:7: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
       break;
       ^
../../../src/gcc/regrename.c:1311:5: note: ...this ‘if’ clause, but it is not
     if (!AUTO_INC_DEC)
     ^

gcc/ChangeLog:
	* regrename.c (scan_rtx_address): Fix indentation.

From-SVN: r231520
2015-12-10 15:13:49 +00:00
David Malcolm
d47ddea195 Fix misleading indentation in gcc/fortran/io.c
Fix this warning:
../../../src/gcc/fortran/io.c: In function ‘match gfc_match_open()’:
../../../src/gcc/fortran/io.c:2003:4: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
    if (!compare_to_allowed_values ("DELIM", delim, NULL, NULL,
    ^
../../../src/gcc/fortran/io.c:2000:2: note: ...this ‘if’ clause, but it is not
  if (!is_char_type ("DELIM", open->delim))
  ^

gcc/fortran/ChangeLog:
	* io.c (gfc_match_open): Fix indentation.

From-SVN: r231519
2015-12-10 15:11:37 +00:00
David Malcolm
a589e68fd0 Fix -Wmisleading-indentation warning in function.c
Fix this warning:
../../../src/gcc/function.c: In function ‘void locate_and_pad_parm(machine_mode, tree, int, int, int, tree, args_size*, locate_and_pad_arg_data*)’:
../../../src/gcc/function.c:4123:2: error: statement is indented as if it were guarded by... [-Werror=misleading-indentation]
  {
  ^
../../../src/gcc/function.c:4119:7: note: ...this ‘if’ clause, but it is not
       if (initial_offset_ptr->var)
       ^

gcc/ChangeLog:
	* function.c (locate_and_pad_parm): Fix indentation.

From-SVN: r231518
2015-12-10 15:06:05 +00:00
Jonathan Wakely
b2a485f2b0 Change tests to use -std=gnu++14 not -std=gnu++1y
* testsuite/experimental/memory/shared_ptr/assign/assign.cc: Replace
	-std=gnu++1y with -std=gnu++14.
	* testsuite/experimental/memory/shared_ptr/cast/cast.cc: Likewise.
	* testsuite/experimental/memory/shared_ptr/comparison/comparison.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/alias_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/alloc_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/default_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/pointer_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/unique_ptr_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/cons/weak_ptr_ctor.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/dest/dest.cc: Likewise.
	* testsuite/experimental/memory/shared_ptr/modifiers/reset.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/modifiers/swap.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/bool_conv.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/operators.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/owner_before.cc:
	Likewise.
	* testsuite/experimental/memory/shared_ptr/observers/use_count.cc:
	Likewise.

From-SVN: r231517
2015-12-10 14:39:07 +00:00
Jonathan Wakely
aca12aff8b Fix dejagnu directives in shared_ptr test
PR libstdc++/68825
	* include/experimental/bits/shared_ptr.h (__shared_ptr, __weak_ptr,
	experimental::shared_ptr, experimental::weak_ptr): Constrain
	assignment operators.
	* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
	Change to a compile-only test and change dg-excess-errors to dg-error.

From-SVN: r231516
2015-12-10 14:32:16 +00:00
Eric Botcazou
102a163189 re PR ada/48013 (generic instantiation breaks the No_Elaboration_Code restriction)
PR ada/48013
	* gcc-interface/trans.c (empty_stmt_list_p): New predicate.
	(gigi): Invoke it to compute the No_Elaboration_Code property.
	(insert_code_for): Do not insert the code if it's empty.

From-SVN: r231515
2015-12-10 14:20:50 +00:00
Richard Biener
47e5754e17 tree-ssa-structalias.c (struct variable_info): Add is_ipa_escape_point flag.
2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (struct variable_info): Add
	is_ipa_escape_point flag.
	(new_var_info): Initialize to false.
	(find_func_aliases): Generate escape constraints for stores
	properly in IPA mode.
	(ipa_pta_execute): Compute is_ipa_escape_point for globals.

From-SVN: r231514
2015-12-10 14:15:34 +00:00
Eric Botcazou
d747d0057c trans.c (Call_to_gnu): Remove guard for NULL_EXPR.
* gcc-interface/trans.c (Call_to_gnu): Remove guard for NULL_EXPR.
	* gcc-interface/utils2.c (gnat_rewrite_reference) <ERROR_MARK>: Return
	the reference unmodified.
	<NULL_EXPR>: New case.  Likewise.

From-SVN: r231513
2015-12-10 14:06:15 +00:00
Jonathan Wakely
6b4f890601 Improve generated libstdc++ API docs
* doc/doxygen/user.cfg.in: Use EXTENSION_MAPPING tag. Add new headers
	to INPUT. Remove obsolete XML_SCHEMA and XML_DTD tags. Update
	PREDEFINED macros. Set BRIEF_MEMBER_DESC for man-pages.
	* include/backward/strstream: Correct @file comment.
	* include/bits/forward_list.h: Improve Doxygen comments.
	* include/bits/locale_facets_nonio.h: Likewise.
	* include/bits/mutex.h: Likewise.
	* include/bits/shared_ptr.h: Likewise.
	* include/bits/stl_deque.h: Likewise.
	* include/debug/vector (_Safe_vector): Add @brief section to comment.
	* include/experimental/bits/fs_dir.h: Correct @file comment.
	* include/experimental/bits/fs_fwd.h: Likewise.
	* include/experimental/bits/fs_ops.h: Likewise.
	* include/experimental/bits/fs_path.h: Likewise.
	* include/experimental/bits/string_view.tcc: Likewise.
	* include/experimental/optional: Document experimental status.
	* include/experimental/string_view: Correct @file comment.
	* include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Reduce
	whitespace to avoid Doxygen bug.
	* include/std/bitset: Remove redundant @class Doxygen command. Add
	parentheses to avoid Doxygen bug.
	* include/std/mutex: Improve Doxygen comments.
	* include/tr2/dynamic_bitset: Add missing @param documentation.
	* scripts/run_doxygen: Rename man pages for std::experimental types.

From-SVN: r231512
2015-12-10 14:02:52 +00:00
Eric Botcazou
2ade427a37 gigi.h (create_var_decl): Adjust comment.
* gcc-interface/gigi.h (create_var_decl): Adjust comment.
	(create_subprog_decl): Likewise.
	* gcc-interface/utils.c (create_var_decl): Likewise.
	(create_subprog_decl): Likewise.

From-SVN: r231511
2015-12-10 13:46:38 +00:00
Claudiu Zissulescu
daf9817c1c [ARC] Add support for atomic memory built-in. Add atomic.md file.
gcc/

2015-12-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/atomic.md: Add new file.

From-SVN: r231510
2015-12-10 14:40:21 +01:00
Claudiu Zissulescu
b8a64b7f5d [ARC] Add support for atomic memory built-in.
gcc/

2015-12-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_expand_atomic_op): Prototype.
	(arc_split_compare_and_swap): Likewise.
	(arc_expand_compare_and_swap): Likewise.
	* config/arc/arc.c (arc_init): Check usage atomic option.
	(arc_pre_atomic_barrier): New function.
	(arc_post_atomic_barrier): Likewise.
	(emit_unlikely_jump): Likewise.
	(arc_expand_compare_and_swap_qh): Likewise.
	(arc_expand_compare_and_swap): Likewise.
	(arc_split_compare_and_swap): Likewise.
	(arc_expand_atomic_op): Likewise.
	* config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): New C macro.
	(ASM_SPEC): Enable mlock option when matomic is used.
	* config/arc/arc.md (UNSPEC_ARC_MEMBAR): Define.
	(VUNSPEC_ARC_CAS): Likewise.
	(VUNSPEC_ARC_LL): Likewise.
	(VUNSPEC_ARC_SC): Likewise.
	(VUNSPEC_ARC_EX): Likewise.
	* config/arc/arc.opt (matomic): New option.
	* config/arc/constraints.md (ATO): New constraint.
	* config/arc/predicates.md (mem_noofs_operand): New predicate.
	* doc/invoke.texi: Document -matomic.
	* config/arc/atomic.md: New file.

gcc/testsuite

2015-12-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* lib/target-supports.exp (check_effective_target_arc_atomic): New
	function.
	(check_effective_target_sync_int_long): Add checks for ARC atomic
	feature.
	(check_effective_target_sync_char_short): Likewise.

From-SVN: r231509
2015-12-10 14:32:21 +01:00
Richard Biener
41eefe133f re PR tree-optimization/68817 (internal compiler error: Segmentation fault (program f951))
2015-12-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68817
	* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Detect
	gaps early.

	* gfortran.dg/pr68817.f90: New testcase.

From-SVN: r231508
2015-12-10 13:23:22 +00:00
Christophe Lyon
a868fff102 Revert [testsuite][ARM target attributes] Fix effective_target tests
From-SVN: r231507
2015-12-10 14:11:27 +01:00
Eric Botcazou
e2f4c6385e * alias.c (get_alias_set): Add cut-off for recursion.
From-SVN: r231505
2015-12-10 12:12:59 +00:00
Christian Bruel
f9e71dceda fix typo in date format
From-SVN: r231504
2015-12-10 12:41:38 +01:00
Ilya Enkovich
2dab46d5fc tree-vect-stmts.c (vectorizable_assignment): Support useless boolean conversion.
gcc/

	* tree-vect-stmts.c (vectorizable_assignment): Support
	useless boolean conversion.

From-SVN: r231503
2015-12-10 11:23:50 +00:00
Alan Lawrence
17cfefad6d Correct previous ChangeLog (targets is correct, not hosts)
From-SVN: r231501
2015-12-10 10:49:52 +00:00
Alan Lawrence
2f7693bfd3 [install.texi] Add note against GNAT 4.8 on ARM targets
* doc/install/texi: Add note against GNAT 4.8 on ARM hosts.

From-SVN: r231500
2015-12-10 10:48:08 +00:00
Jakub Jelinek
1ff0a84c3d re PR middle-end/68785 (valgrind reports issues with folding on x86_64)
PR tree-optimization/68785
	* gimple-fold.c (fold_ctor_reference): Pass return value from
	native_encode_expr to native_interpret_expr.
	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise.

	* gcc.dg/pr68785.c: New test.

From-SVN: r231499
2015-12-10 11:14:38 +01:00
Richard Biener
ee7d29b43f re PR ipa/68331 ([meta-bug] fipa-pta issues)
2015-12-10  Richard Biener  <rguenther@suse.de>

	PR ipa/68331
	* tree-ssa-structalias.c (set_uids_in_ptset): Add fndecl
	parameter and make vars_contains_nonlocal properly have
	function-scope semantics in IPA mode.
	(find_what_var_points_to): Add fndecl parameter.
	(find_what_p_points_to): Likewise.
	(pt_solution_includes_global): Remove IPA PTA early out.
	(compute_points_to_sets): Adjust.
	(ipa_pta_execute): Likewise.  Clear final_solutions after
	each function.

	* gcc.dg/torture/ipa-pta-3.c: New testcase.
	* g++.dg/ipa/ipa-pta-1.C: Likewise.

From-SVN: r231498
2015-12-10 09:41:08 +00:00
Tom de Vries
e53ed9f4c5 Fix warnings from including fdl.texi into gnat-style.texi
2015-12-10  Tom de Vries  <tom@codesourcery.com>

	PR ada/65102
	* doc/include/fdl.texi: Add nodefaultgnufreedocumentationlicensenode
	ifdef to allow disabling default @node GNU Free Documentation License.

	* gnat-style.texi: Set nodefaultgnufreedocumentationlicensenode and
	define @node GNU Free Documentation License locally.

From-SVN: r231497
2015-12-10 09:19:04 +00:00
Richard Biener
580a4eedb9 tree-ssa-structalias.c (create_function_info_for): Add missing constraint from nonlocal for DECL_RESULT.
2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-ssa-structalias.c (create_function_info_for): Add missing
	constraint from nonlocal for DECL_RESULT.

From-SVN: r231496
2015-12-10 09:12:46 +00:00
Richard Biener
2c3903c73b tree-if-conv.c: Include params.h.
2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-if-conv.c: Include params.h.
	(ifcvt_memrefs_wont_trap): Use PARAM_ALLOW_STORE_DATA_RACES
	instead of flag_tree_loop_if_convert_stores to guard cases
	we'd introduce store-data-races.

From-SVN: r231495
2015-12-10 09:10:40 +00:00
Richard Biener
d4f4e71c84 re PR ipa/68721 (wrong code at -Os and above on x86_64-linux-gnu)
2015-12-10  Richard Biener  <rguenther@suse.de>

	PR ipa/68721
	* ipa-split.c (split_function): Record return value properly
	when the split part doesn't set it.

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

From-SVN: r231494
2015-12-10 09:05:58 +00:00
Richard Biener
77ad31753c re PR tree-optimization/68806 (internal compiler error: Segmentation fault)
2015-12-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68806
	* tree-vect-loop.c (vect_analyze_loop_2): Properly detect
	reduction chains and ignore SLP reductions.

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

From-SVN: r231493
2015-12-10 09:00:58 +00:00
Richard Biener
a839a8f708 tree-if-conv.c (if_convertible_loop_p_1): Do not compute dependences.
2015-12-10  Richard Biener  <rguenther@suse.de>

	* tree-if-conv.c (if_convertible_loop_p_1): Do not compute
	dependences.
	(if_convertible_loop_p): Adjust.

From-SVN: r231492
2015-12-10 09:00:07 +00:00
Tom de Vries
08628df3c0 Remove invalid assert in find_func_aliases_for_builtin_call
2015-12-10  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Remove
	invalid assert.

From-SVN: r231491
2015-12-10 08:56:14 +00:00
Martin Liska
99dcb4ea03 Fix memory leaks in tree-vect-data-refs.c
* tree-vect-data-refs.c: Free an overwritten dataref.

From-SVN: r231490
2015-12-10 08:40:35 +00:00
John David Anglin
787c102712 fptr.c (__canonicalize_funcptr_for_compare): Remove code to initialize call to __dl_fixup once.
* config/pa/fptr.c (__canonicalize_funcptr_for_compare): Remove code
	to initialize call to __dl_fixup once.

From-SVN: r231486
2015-12-10 01:32:10 +00:00