gcc.git
7 years agoS/390: Use wfc for scalar vector compares
Andreas Krebbel [Fri, 24 Mar 2017 13:58:41 +0000 (13:58 +0000)]
S/390: Use wfc for scalar vector compares

The z13 vector support used the vector style comparison instructions
also for the scalar compares in vector registers.  However, it is much
more convenient to just use the compare scalar instruction for that
purpose.  The advantage is that this instruction generates a CC result
as our compares usually do.  So this results in quite some code to be
removed from the backend.

Regression tested on s390x.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/2964.md: Remove the single element vector compare
instructions which are no longer used.
* config/s390/s390.c (s390_select_ccmode): Remove handling of
vector CCmodes.
(s390_canonicalize_comparison): Remove handling of DFmode
compares.
(s390_expand_vec_compare_scalar): Remove function.
(s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
* config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
pattern.
("*cmp<mode>_ccs"): Add wfcdb instruction.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/vector/vec-scalar-cmp-1.c: Adjust for the
comparison instructions used from now on.

From-SVN: r246450

7 years agoS/390: Move and rename vector check.
Andreas Krebbel [Fri, 24 Mar 2017 13:57:58 +0000 (13:57 +0000)]
S/390: Move and rename vector check.

Move the target support routine for the vector facility to the common
code file.  This is required to enable the generic vectorization tests
on S/390.  While doing this the too generic name for the check (vector)
is changed to s390_vx.  The renaming required to modify all the
testcases currently using that check.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/s390.exp (check_effective_target_vector):
Include target-supports.exp and move target_vector check routine
...
* lib/target-supports.exp (check_effective_target_s390_vx): ... to
here and rename it.
* gcc.target/s390/htm-builtins-z13-1.c: Rename effective target
check from vector to s390_vx.
* gcc.target/s390/target-attribute/tpragma-struct-vx-1.c: Likewise.
* gcc.target/s390/target-attribute/tpragma-struct-vx-2.c: Likewise.
* gcc.target/s390/vector/stpcpy-1.c: Likewise.
* gcc.target/s390/vector/vec-abi-vararg-1.c: Likewise.
* gcc.target/s390/vector/vec-clobber-1.c: Likewise.
* gcc.target/s390/vector/vec-genbytemask-1.c: Likewise.
* gcc.target/s390/vector/vec-genmask-1.c: Likewise.
* gcc.target/s390/vector/vec-nopeel-1.c: Likewise.
* gcc.target/s390/vector/vec-vrepi-1.c: Likewise.

From-SVN: r246449

7 years agoS/390: movdf improvements
Andreas Krebbel [Fri, 24 Mar 2017 13:57:19 +0000 (13:57 +0000)]
S/390: movdf improvements

This patch add the vector load element from immediate instruction to the
movdf/dd pattern for loading a FP zero and it removes the vector
instructions from the mov<mode>_64 pattern. These were pointless in
there because z13 support implies DFP support so these instructions will
always be matched in the mov<mode>_64dfp pattern instead.

Regression tested on s390x

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
FP zero.
("*mov<mode>_64" DD_DF): Remove the vector instructions. These
will anyway by matched by mov<mode>_64dfp.

From-SVN: r246448

7 years agoS/390: movsf/sd pattern fixes.
Andreas Krebbel [Fri, 24 Mar 2017 13:55:41 +0000 (13:55 +0000)]
S/390: movsf/sd pattern fixes.

The SD/SFmode move pattern used a wrong mnemonic for vector load
element.
On the vector load element instruction was an operand missing.

Regression tested on s390x.

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
vlef/vstef.  Add missing operand to vleif.

From-SVN: r246447

7 years agoS/390: vec_init improvements
Andreas Krebbel [Fri, 24 Mar 2017 13:54:23 +0000 (13:54 +0000)]
S/390: vec_init improvements

This enables the vec_init pattern also for V4SF, V1TI, and V1TF.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/vector/vec-init-2.c: New test.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.c (s390_expand_vec_init): Enable vector load
pair for all vector types with 64 bit elements.
* config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
* config/s390/vector.md (V_HW_64): ... here.
(V_128_NOSINGLE): New mode iterator.
("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
("*vec_load_pairv2di"): Change to ...
("*vec_load_pair<mode>"): ... this one.

From-SVN: r246446

7 years agoS/390: Improve support of 128 bit vectors in GPRs
Andreas Krebbel [Fri, 24 Mar 2017 13:53:43 +0000 (13:53 +0000)]
S/390: Improve support of 128 bit vectors in GPRs

This patch improves the handling of 128 bit vectors residing in GPRs
by adding more alternatives to the move pattern.

Regression tested on s390x.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/constraints.md: Add comments.
(jKK): Reject element sizes > 8 bytes.
* config/s390/s390.c (s390_split_ok_p): Enable splitting also for
s_operands.
* config/s390/s390.md: Add the s_operand checks formerly in
s390_split_ok_p to various splitters where they are still
required.
* config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
for 128 bit vectors.  Plus two splitters.

From-SVN: r246445

7 years agoS/390: Rename cpu facility vec to vx.
Andreas Krebbel [Fri, 24 Mar 2017 13:53:08 +0000 (13:53 +0000)]
S/390: Rename cpu facility vec to vx.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/s390.md: Rename the cpu facilty vec to vx throughout
the file.

From-SVN: r246444

7 years agoS/390: PR79904: Disallow reg + sym_ref literal pool addresses.
Andreas Krebbel [Fri, 24 Mar 2017 13:52:30 +0000 (13:52 +0000)]
S/390: PR79904: Disallow reg + sym_ref literal pool addresses.

We accept reg + sym_ref as valid address if sym_ref is a literal pool
reference knowing that it will be rewritten as r13 + reg + offset.
However, annotate_constant_pool_refs was never able to handle that.

With the patch only single sym_refs are accepted.

Regression tested on s390x.

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/79904
* config/s390/s390.c (s390_decompose_address): Reject reg +
sym_ref literal pool references.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.dg/ubsan/pr79904-2.c: New test.

From-SVN: r246443

7 years agoS/390: PR79893: Add diagnostics vec_load_bndry builtin.
Andreas Krebbel [Fri, 24 Mar 2017 13:51:32 +0000 (13:51 +0000)]
S/390: PR79893: Add diagnostics vec_load_bndry builtin.

The boundary argument of the vec_load_bndry builtin needs to be
rewritten.  At that point it must be constant already.  The current
diagnostics in s390_expand_builtins is too late for this.  The patch
adds an additional check for that builtin which will be triggered
already during preprocessing.

Regression tested on s390x.

gcc/testsuite/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/79893
* gcc.target/s390/zvector/pr79893.c: New test.

gcc/ChangeLog:

2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

PR target/79893
* config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
error if the boundary argument is not constant.

From-SVN: r246442

7 years agore PR rtl-optimization/80112 (ICE in doloop_condition_get at loop-doloop.c:158)
Jakub Jelinek [Fri, 24 Mar 2017 13:37:01 +0000 (14:37 +0100)]
re PR rtl-optimization/80112 (ICE in doloop_condition_get at loop-doloop.c:158)

PR rtl-optimization/80112
* loop-doloop.c (doloop_condition_get): Don't check condition
if cmp isn't SET with IF_THEN_ELSE src.

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

From-SVN: r246441

7 years agoAdjust c-c++-common/Wimplicit-fallthrough-7.c etc. line numbers
Rainer Orth [Fri, 24 Mar 2017 12:57:14 +0000 (12:57 +0000)]
Adjust c-c++-common/Wimplicit-fallthrough-7.c etc. line numbers

* c-c++-common/Wimplicit-fallthrough-7.c: Adjust dg-warning
etc. line numbers.
* gcc.dg/Walloca-1.c: Likewise.
* gcc.dg/Walloca-2.c: Likewise.
* gcc.dg/Wvla-larger-than-2.c: Likewise.

From-SVN: r246440

7 years agore PR tree-optimization/80158 (ICE in all_phi_incrs_profitable)
Bill Schmidt [Fri, 24 Mar 2017 12:34:19 +0000 (12:34 +0000)]
re PR tree-optimization/80158 (ICE in all_phi_incrs_profitable)

2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/80158
* gimple-ssa-strength-reduction.c (replace_mult_candidate): When
replacing a candidate statement, also replace it for the
candidate's alternate interpretation.
(replace_rhs_if_not_dup): Likewise.
(replace_one_candidate): Likewise.

* gfortran.fortran-torture/compile/pr80158.f: New file.

From-SVN: r246439

7 years agore PR tree-optimization/80167 (ICE in translate_isl_ast_to_gimple::is_valid_rename...
Richard Biener [Fri, 24 Mar 2017 12:16:43 +0000 (12:16 +0000)]
re PR tree-optimization/80167 (ICE in translate_isl_ast_to_gimple::is_valid_rename at gcc/graphite-isl-ast-to-gimple.c:1139)

2017-03-24  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80167
* graphite-isl-ast-to-gimple.c
(translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
properly.
(translate_isl_ast_to_gimple::get_rename): Likewise.

* gcc.dg/graphite/pr80167.c: New testcase.

From-SVN: r246438

7 years agoRequire effective target global_constructor for two testcases
Tom de Vries [Fri, 24 Mar 2017 06:29:06 +0000 (06:29 +0000)]
Require effective target global_constructor for two testcases

2017-03-24  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80092
* gcc.dg/no_profile_instrument_function-attr-1.c: Add
dg-require-effective-target global_constructor.
* gcc.dg/tls/emutls-2.c: Same.

From-SVN: r246436

7 years agoRequire effective target indirect_jump in Wimplicit-fallthrough-34.c
Tom de Vries [Fri, 24 Mar 2017 06:28:53 +0000 (06:28 +0000)]
Require effective target indirect_jump in Wimplicit-fallthrough-34.c

2017-03-24  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80092
* c-c++-common/Wimplicit-fallthrough-34.c: Add
dg-require-effective-target indirect_jumps.

From-SVN: r246435

7 years agoRequire effective target nonlocal_goto in pr79244.c
Tom de Vries [Fri, 24 Mar 2017 06:28:42 +0000 (06:28 +0000)]
Require effective target nonlocal_goto in pr79244.c

2017-03-24  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80092
* gcc.dg/torture/pr79244.c: Add dg-require-effective-target
nonlocal_goto.

From-SVN: r246434

7 years agoAdd missing dg-require-effective-target alloca in gcc testsuite
Tom de Vries [Fri, 24 Mar 2017 06:28:12 +0000 (06:28 +0000)]
Add missing dg-require-effective-target alloca in gcc testsuite

2017-03-24  Tom de Vries  <tom@codesourcery.com>

PR testsuite/80092
* gcc.dg/Walloca-7.c: Add dg-require-effective-target alloca.
* gcc.dg/Walloca-12.c: Same.
* gcc.dg/attr-alloc_size-8.c: Same.
* gcc.dg/Walloca-4.c: Same.
* gcc.dg/Walloca-8.c: Same.
* gcc.dg/Walloca-13.c: Same.
* gcc.dg/Walloca-14.c: Same.
* gcc.dg/attr-alloc_size-9.c: Same.
* gcc.dg/Walloca-1.c: Same.
* gcc.dg/tree-ssa/builtin-sprintf-warn-3.c: Same.
* gcc.dg/Walloca-5.c: Same.
* gcc.dg/Walloca-10.c: Same.
* gcc.dg/Walloca-9.c: Same.
* gcc.dg/attr-alloc_size-6.c: Same.
* gcc.dg/Wvla-larger-than-1.c: Same.
* gcc.dg/torture/pr71881.c: Same.
* gcc.dg/torture/pr71901.c: Same.
* gcc.dg/torture/pr78742.c: Same.
* gcc.dg/builtin-alloc-size.c: Same.
* gcc.dg/Walloca-2.c: Same.
* gcc.dg/Walloca-6.c: Same.
* gcc.dg/Walloca-11.c: Same.
* gcc.dg/attr-alloc_size-7.c: Same.
* gcc.dg/Wvla-larger-than-2.c: Same.
* gcc.dg/Walloca-3.c: Same.
* c-c++-common/Wimplicit-fallthrough-7.c: Same.
* gcc.c-torture/compile/pr79413.c: Same.
* gcc.c-torture/compile/pr78439.c: Same.

From-SVN: r246433

7 years agoDaily bump.
GCC Administrator [Fri, 24 Mar 2017 00:16:24 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246431

7 years agop9-options-1.c: New test.
Kelvin Nilsen [Thu, 23 Mar 2017 22:12:06 +0000 (22:12 +0000)]
p9-options-1.c: New test.

gcc/testsuite/ChangeLog:

2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/p9-options-1.c: New test.

gcc/ChangeLog:

2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000.c (rs6000_option_override_internal): Change
handling of certain combinations of target options, including the
combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
-mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.

From-SVN: r246428

7 years agoFix Debug Mode test failures
Jonathan Wakely [Thu, 23 Mar 2017 19:40:41 +0000 (19:40 +0000)]
Fix Debug Mode test failures

* testsuite/23_containers/array/tuple_interface/
tuple_element_debug_neg.cc: Adjust dg-error.
* testsuite/23_containers/list/operations/78389.cc: Fix less-than to
define a valid strict weak ordering.
* testsuite/23_containers/priority_queue/67085.cc: Disable test for
Debug Mode, due to debug checks making extra copies of predicate.
* testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc:
Likewise.

From-SVN: r246426

7 years agoFix broken links in manual and remove outdated info
Jonathan Wakely [Thu, 23 Mar 2017 19:40:21 +0000 (19:40 +0000)]
Fix broken links in manual and remove outdated info

* doc/xml/faq.xml: Add link.
* doc/xml/manual/backwards_compatibility.xml: Remove outdated
information on pre-ISO headers. Replace broken link to C++ FAQ Lite.
* doc/xml/manual/io.xml: Update broken link.
* doc/html/*: Regenerate.

From-SVN: r246425

7 years agoImplement LWG 2686, std::hash<error_condition>, for C++17
Daniel Kruegler [Thu, 23 Mar 2017 19:40:16 +0000 (19:40 +0000)]
Implement LWG 2686, std::hash<error_condition>, for C++17

2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>

Implement LWG 2686, Why is std::hash specialized for error_code,
but not error_condition?
* include/std/system_error (hash<error_condition>): Define for C++17.
* testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>):
Instantiate test for error_condition.
* testsuite/20_util/hash/requirements/explicit_instantiation.cc
(hash<error_condition>): Instantiate hash<error_condition>.

From-SVN: r246424

7 years agoImplement P0607R0 "Inline Variables for Standard Library" for C++17
Daniel Kruegler [Thu, 23 Mar 2017 19:40:07 +0000 (19:40 +0000)]
Implement P0607R0 "Inline Variables for Standard Library" for C++17

2017-03-23  Daniel Kruegler  <daniel.kruegler@gmail.com>

* include/bits/c++config (_GLIBCXX17_INLINE): Define.
* include/bits/regex_constants.h (All std::regex_constants constants):
Add _GLIBCXX17_INLINE as per P0607R0.
* include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock):
Likewise.
* include/bits/stl_pair.h (piecewise_construct): Likewise.
* include/bits/uses_allocator.h (allocator_arg, uses_allocator_v)
(__is_uses_allocator_constructible_v)
(__is_nothrow_uses_allocator_constructible_v): Likewise.
* include/std/chrono (treat_as_floating_point_v): Likewise.
* include/std/functional (is_bind_expression_v, is_placeholder_v):
Likewise.
* include/std/optional (nullopt): Likewise.
* include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v)
ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise.
* include/std/system_error (is_error_code_enum_v)
(is_error_condition_enum_v): Likewise.
* include/std/tuple (tuple_size_v, ignore): Likewise.
(ignore): Declare ignore constexpr as per LWG 2773, declare assignment
constexpr as per LWG 2933.
* include/std/type_traits (All variable templates): Add
_GLIBCXX17_INLINE as per P0607R0.
* include/std/variant (variant_size_v, variant_npos, __index_of_v)
(__tuple_count_v, __exactly_once): Likewise.
* testsuite/18_support/headers/new/synopsis.cc
(hardware_destructive_interference_size)
(hardware_constructive_interference_size): Likewise for commented-out
variables.
* testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new
test function for constexpr std::ignore (LWG 2773).
* testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New
test for LWG 2933.

From-SVN: r246423

7 years agoPR c++/80150 - ICE with overloaded variadic deduction.
Jason Merrill [Thu, 23 Mar 2017 18:23:25 +0000 (14:23 -0400)]
PR c++/80150 - ICE with overloaded variadic deduction.

* pt.c (try_one_overload): Remove asserts.

From-SVN: r246422

7 years ago[ARM] PR target/71436: Restrict *load_multiple pattern till after LRA
Kyrylo Tkachov [Thu, 23 Mar 2017 14:55:48 +0000 (14:55 +0000)]
[ARM] PR target/71436: Restrict *load_multiple pattern till after LRA

PR target/71436
* config/arm/arm.md (*load_multiple): Add reload_completed to
matching condition.

* gcc.c-torture/compile/pr71436.c: New test.

From-SVN: r246419

7 years agore PR tree-optimization/79908 (ICE in gimplify_expr (gimplify.c:12155) gimplification...
William Schmidt [Thu, 23 Mar 2017 13:13:44 +0000 (13:13 +0000)]
re PR tree-optimization/79908 (ICE in gimplify_expr (gimplify.c:12155) gimplification failed)

[gcc]

2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
            Richard Biener  <rguenth@suse.com>

PR tree-optimization/79908
PR tree-optimization/80136
* tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
been cast away, gimplify_and_add suffices.

[gcc/testsuite]

2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
            Richard Biener  <rguenther@suse.de>

PR tree-optimization/79908
PR tree-optimization/80136
* gcc.dg/torture/pr79908.c: New file.

From-SVN: r246418

7 years agoPR c++/77563 - missing ambiguous conversion error.
Jason Merrill [Thu, 23 Mar 2017 12:50:55 +0000 (08:50 -0400)]
PR c++/77563 - missing ambiguous conversion error.

* call.c (convert_like_real): Use LOOKUP_IMPLICIT.

From-SVN: r246417

7 years agoc-tree.h: Remove a C_RID_YYCODE reference.
Marek Polacek [Thu, 23 Mar 2017 12:29:28 +0000 (12:29 +0000)]
c-tree.h: Remove a C_RID_YYCODE reference.

* c-tree.h: Remove a C_RID_YYCODE reference.

* cp-tree.h: Remove a C_RID_YYCODE reference.

From-SVN: r246416

7 years agoFix memory leak in identify_jump_threads()
Markus Trippelsdorf [Thu, 23 Mar 2017 12:23:58 +0000 (12:23 +0000)]
Fix memory leak in identify_jump_threads()

* tree-vrp.c (identify_jump_threads): Delete avail_exprs.

From-SVN: r246415

7 years agore PR tree-optimization/80032 (C++ excessive stack usage (no stack reuse))
Richard Biener [Thu, 23 Mar 2017 08:33:41 +0000 (08:33 +0000)]
re PR tree-optimization/80032 (C++ excessive stack usage (no stack reuse))

2017-03-23  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80032
* gimplify.c (gimple_push_cleanup): Forced unconditional
cleanups still have to go to the conditional_cleanups
sequence.

From-SVN: r246414

7 years agoDaily bump.
GCC Administrator [Thu, 23 Mar 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246413

7 years agointernal/syscall/unix: add randomTrap for m68k
Ian Lance Taylor [Wed, 22 Mar 2017 23:51:35 +0000 (23:51 +0000)]
internal/syscall/unix: add randomTrap for m68k

    Patch by Andrwas Schwab.

    Reviewed-on: https://go-review.googlesource.com/38456

From-SVN: r246410

7 years agoAlso fixed by revision r246391.
Dominique d'Humieres [Wed, 22 Mar 2017 22:04:27 +0000 (23:04 +0100)]
Also fixed by revision r246391.

2017-03-22  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/79838
* module.c: Remove trailing period.

From-SVN: r246409

7 years agore PR tree-optimization/80072 (ICE in gimple_build_assign_1 with -O3 -march=broadwell...
Jakub Jelinek [Wed, 22 Mar 2017 21:52:13 +0000 (22:52 +0100)]
re PR tree-optimization/80072 (ICE in gimple_build_assign_1 with -O3 -march=broadwell/skylake-avx512)

PR tree-optimization/80072
* tree-ssa-reassoc.c (struct operand_entry): Change id field type
to unsigned int.
(next_operand_entry_id): Change type to unsigned int.
(sort_by_operand_rank): Make sure to return the right return value
even if unsigned fields are bigger than INT_MAX.
(struct oecount): Change cnt and id type to unsigned int.
(oecount_hasher::equal): Formatting fix.
(oecount_cmp): Make sure to return the right return value
even if unsigned fields are bigger than INT_MAX.
(undistribute_ops_list): Change next_oecount_id type to unsigned int.

From-SVN: r246408

7 years agocompiler: initialize gogo fields
Ian Lance Taylor [Wed, 22 Mar 2017 21:02:53 +0000 (21:02 +0000)]
compiler: initialize gogo fields

    A couple of the data members in the Gogo class were not
    being initialized properly. This was causing "uninitialized value"
    errors during Valgrind memcheck runs. This patch insures that
    all of the fields receive an initial value.

    Reviewed-on: https://go-review.googlesource.com/38470

From-SVN: r246407

7 years agore PR fortran/39239 (Reject SAVEd variables EQUIVALENCEd to a COMMON)
Nicolas Koenig [Wed, 22 Mar 2017 19:12:24 +0000 (19:12 +0000)]
re PR fortran/39239 (Reject SAVEd variables EQUIVALENCEd to a COMMON)

2017-03-12 Nicolas Koenig <koenigni@student.ethz.ch>

PR fortran/39239
fortran/Changelog:  Add entry for rev. 246284.

From-SVN: r246406

7 years agore PR fortran/39239 (Reject SAVEd variables EQUIVALENCEd to a COMMON)
Nicolas Koenig [Wed, 22 Mar 2017 19:08:36 +0000 (20:08 +0100)]
re PR fortran/39239 (Reject SAVEd variables EQUIVALENCEd to a COMMON)

2017-03-22 Nicolas Koenig <koenigni@student.ethz.ch>

PR fortran/39239
* gfortran.dg/equiv_constraint_bind_c.f90: New test.

From-SVN: r246405

7 years agoChangeLog: Add forgotten entry for r246322.
Nicolas Koenig [Wed, 22 Mar 2017 19:03:50 +0000 (19:03 +0000)]
ChangeLog: Add forgotten entry for r246322.

2017-03-21  Nicolas Koenig  <koenigni@student.ethz.ch>

* fortran/ChangeLog: Add forgotten entry for r246322.
* testsuite/ChangeLog: Likewise.

From-SVN: r246404

7 years agore PR c++/80141 (ICE with pragma omp declare)
Jakub Jelinek [Wed, 22 Mar 2017 18:53:47 +0000 (19:53 +0100)]
re PR c++/80141 (ICE with pragma omp declare)

PR c++/80141
* semantics.c (finish_omp_clause) <case OMP_CLAUSE_SIMDLEN,
case OMP_CLAUSE_ALIGNED>: Call maybe_constant_value only when not
processing_template_decl.

* g++.dg/gomp/pr80141.C: New test.

From-SVN: r246403

7 years agore PR sanitizer/78158 (Strange data race detection with thread sanitizer)
Jakub Jelinek [Wed, 22 Mar 2017 18:46:54 +0000 (19:46 +0100)]
re PR sanitizer/78158 (Strange data race detection with thread sanitizer)

PR sanitizer/78158
* tsan/tsan_interface_atomic.cc: Cherry-pick upstream r298378.

From-SVN: r246402

7 years agore PR c++/80129 (wrong code with ternary struct assignment to const)
Jakub Jelinek [Wed, 22 Mar 2017 18:45:48 +0000 (19:45 +0100)]
re PR c++/80129 (wrong code with ternary struct assignment to const)

PR c++/80129
* gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
TREE_READONLY on result if writing it more than once.

* g++.dg/torture/pr80129.C: New test.

From-SVN: r246401

7 years agore PR sanitizer/80110 (error: statement marked for throw, but doesn’t w/ -fsanitize...
Jakub Jelinek [Wed, 22 Mar 2017 18:35:43 +0000 (19:35 +0100)]
re PR sanitizer/80110 (error: statement marked for throw, but doesn’t w/ -fsanitize=thread)

PR sanitizer/80110
* doc/invoke.texi (-fsanitize=thread): Document that with
-fnon-call-exceptions atomics are not able to throw
exceptions.

From-SVN: r246400

7 years agore PR sanitizer/80110 (error: statement marked for throw, but doesn’t w/ -fsanitize...
Jakub Jelinek [Wed, 22 Mar 2017 18:34:44 +0000 (19:34 +0100)]
re PR sanitizer/80110 (error: statement marked for throw, but doesn’t w/ -fsanitize=thread)

PR sanitizer/80110
* tsan.c: Include tree-eh.h.
(instrument_builtin_call): Call maybe_clean_eh_stmt or
maybe_clean_or_replace_eh_stmt where needed.
(instrument_memory_accesses): Add cfg_changed argument.
Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
if it returned true.
(tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.

* g++.dg/tsan/pr80110.C: New test.

From-SVN: r246399

7 years agore PR rtl-optimization/63191 (32-bit gcc uses excessive memory during dead store...
Jakub Jelinek [Wed, 22 Mar 2017 18:33:37 +0000 (19:33 +0100)]
re PR rtl-optimization/63191 (32-bit gcc uses excessive memory during dead store elimination with -fPIC)

PR rtl-optimization/63191
* config/i386/i386.c (ix86_delegitimize_address): Turn into small
wrapper function, moved the whole old content into ...
(ix86_delegitimize_address_1): ... this.  New inline function.
(ix86_find_base_term): Use ix86_delegitimize_address_1 with
true as last argument instead of ix86_delegitimize_address.

From-SVN: r246398

7 years agoRecently we've put a lot of effort into improving ifcvt to use CSEL on AArch64.
Wilco Dijkstra [Wed, 22 Mar 2017 18:12:05 +0000 (18:12 +0000)]
Recently we've put a lot of effort into improving ifcvt to use CSEL on AArch64.

In  https://gcc.gnu.org/ml/gcc-patches/2015-11/msg01639.html James determined
the best value for AArch64 code generation.  Although this setting is used when
explicitly targeting Cortex cores, it is not otherwise used.  This means by
default GCC will not use (F)CSEL in many common cases.

Change the generic_branch_cost to be the same as cortexa57_branch_cost so that
all supported cores benefit from CSEL.  This is generally faster and smaller.
On one benchmark the new setting fixes a regression since GCC6 and improves
performance by 49%.

    gcc/
* config/aarch64/aarch64.c (generic_branch_cost):
Copy cortexa57_branch_cost.

From-SVN: r246397

7 years agoconfigure.ac: Enable LTO by default on darwin >= 9.
Francois-Xavier Coudert [Wed, 22 Mar 2017 17:51:18 +0000 (17:51 +0000)]
configure.ac: Enable LTO by default on darwin >= 9.

* configure.ac: Enable LTO by default on darwin >= 9.
* configure: Regenerate.

From-SVN: r246396

7 years agoMany supported cores implement fusion of AES instructions.
Wilco Dijkstra [Wed, 22 Mar 2017 17:51:12 +0000 (17:51 +0000)]
Many supported cores implement fusion of AES instructions.

Many supported cores implement fusion of AES instructions.  When fusion
happens it can give a significant performance gain.  If not, scheduling
fusion candidates next to each other has almost no effect on performance.
Due to the high benefit/low cost it makes sense to enable AES fusion with
-mcpu=generic so that cores that support it always benefit.

    gcc/
* config/aarch64/aarch64.c (generic_tunings): Add AES fusion.

From-SVN: r246395

7 years agore PR target/80123 (libgomp tests pr66199-2.c and pr66199-5.c fail with -mcpu=power9)
Aaron Sawdey [Wed, 22 Mar 2017 17:47:55 +0000 (17:47 +0000)]
re PR target/80123 (libgomp tests pr66199-2.c and pr66199-5.c fail with -mcpu=power9)

2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

PR target/80123
* doc/md.texi (Constraints): Document wA constraint.
* config/rs6000/constraints.md (wA): New.
* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
(rs6000_init_hard_regno_mode_ok): Init wA constraint.
* config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
* config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.

From-SVN: r246394

7 years agore PR fortran/79602 (translation: globally replace '%s' with %qs)
Dominique d'Humieres [Wed, 22 Mar 2017 16:29:30 +0000 (17:29 +0100)]
re PR fortran/79602 (translation: globally replace '%s' with %qs)

2017-03-22  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/79602
* decl.c: Replace '%s' with %qs.
* expr.c: Likewise.
* interface.c: Likewise.
* match.c: Likewise.
* primary.c: Likewise.
* resolve.c: Likewise.

PR fortran/79844
PR fortran/80011
* io.c: Remove trailing spaces.
* match.c: Likewise.
* openmp.c: Likewise.
* resolve.c: Likewise.
* trans-intrinsic.c: Likewise.

PR fortran/79853
* expr.c: Remove a double spaces.

PR fortran/79859
* primary.c: Remove spurious quotes around %qs.

From-SVN: r246391

7 years agoAdd deduction guides for C++17 (P0433R2, partial)
Jonathan Wakely [Wed, 22 Mar 2017 15:58:35 +0000 (15:58 +0000)]
Add deduction guides for C++17 (P0433R2, partial)

* include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction
guides for C++17.
* include/bits/std_function.h (function): Likewise.
* include/bits/stl_pair.h (pair): Likewise.
* include/debug/array (__gnu_debug::array): Likewise.
* include/std/array (array): Likewise.
* include/std/functional (make_default_searcher)
(make_boyer_moore_searcher, make_boyer_moore_horspool_searcher):
Remove generator functions.
* include/std/tuple (tuple): Add deduction guides.
* include/std/valarray (valarray): Likewise.
* testsuite/20_util/function_objects/searchers.cc: Adjust to use
class template argument deduction instead of generator functions.
* testsuite/20_util/function/cons/deduction.cc: New test.
* testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ...
* testsuite/20_util/optional/cons/deduction.cc: ... here.
* testsuite/20_util/pair/cons/deduction.cc: New test.
* testsuite/20_util/shared_ptr/cons/deduction.cc: New test.
* testsuite/20_util/tuple/cons/deduction.cc: New test.
* testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error.
* testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test.
* testsuite/20_util/weak_ptr/cons/deduction.cc: New test.
* testsuite/23_containers/array/cons/deduction.cc: New test.
* testsuite/23_containers/array/cons/deduction_neg.cc: New test.
* testsuite/23_containers/array/tuple_interface/get_debug_neg.cc:
Adjust dg-error.
* testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc:
Likewise.
* testsuite/26_numerics/valarray/deduction.cc: New test.
* testsuite/30_threads/lock_guard/cons/deduction.cc: New test.
* testsuite/30_threads/scoped_lock/cons/deduction.cc: New test.
* testsuite/30_threads/unique_lock/cons/deduction.cc: New test.

From-SVN: r246389

7 years agore PR fortran/80142 (Warning: No location in expression ... with -O / -ffrontend...
Thomas Koenig [Wed, 22 Mar 2017 15:20:17 +0000 (15:20 +0000)]
re PR fortran/80142 (Warning: No location in expression ... with -O / -ffrontend-optimize)

2017-03-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/80142
* frontend-passes.c (combine_array_constructor): Take
location of new expression from constructor expression instead
of constructor.

2017-03-22  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/80142
* gfortran.dg/any_loc.f90: New test case.

From-SVN: r246388

7 years agore PR go/80128 (go1: internal compiler error: in write_specific_type_functions, at...
Ian Lance Taylor [Wed, 22 Mar 2017 13:59:01 +0000 (13:59 +0000)]
re PR go/80128 (go1: internal compiler error: in write_specific_type_functions, at go/gofrontend/types.cc:2002)

PR go/80128
    compiler: check backend alignment for memequalNN functions

    The code was assuming the usual required alignment for the memequalNN
    functions (16 bits for int16, 32 for int32, etc.). However, on m68k
    the required alignment of int32 is only 16 bits. Assuming the
    memequalNN alignment caused the compiler to incorrectly decide that
    int32 required a specially generated function rather than calling
    memequal32. This then crashed if the type descriptor were generated
    after type-specific functions had been written.

    Fixes GCC PR 80128.

    Reviewed-on: https://go-review.googlesource.com/38433

From-SVN: r246382

7 years agore PR c++/80029 (valgrind error in new_omp_context(omp_region_type) (gimplify.c:400))
Cesar Philippidis [Wed, 22 Mar 2017 13:52:10 +0000 (06:52 -0700)]
re PR c++/80029 (valgrind error in new_omp_context(omp_region_type) (gimplify.c:400))

PR c++/80029

gcc/
* gimplify.c (is_oacc_declared): New function.
(oacc_default_clause): Use it to set default flags for acc declared
variables inside parallel regions.
(gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
declared variables.
(gimplify_oacc_declare): Gimplify the declare clauses.  Add the
declare attribute to any decl as necessary.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/declare-vla.c: New test.

From-SVN: r246381

7 years agoFix PR80082: LDRD erronously used for 64bit load on ARMv7-R
Thomas Preud'homme [Wed, 22 Mar 2017 11:35:15 +0000 (11:35 +0000)]
Fix PR80082: LDRD erronously used for 64bit load on ARMv7-R

2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR target/80082
    * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
    (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
    * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
    (arm_arch_lpae): This.
    * config/arm/arm.c (arm_arch7ve): Rename into ...
    (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
    * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
    arm_arch_lpae.

    gcc/testsuite/
    PR target/80082
    * gcc.target/arm/atomic_loaddi_10.c: New testcase.
    * gcc.target/arm/atomic_loaddi_11.c: Likewise.

From-SVN: r246365

7 years agoError message on target attribute on power target (PR target/79906)
Martin Liska [Wed, 22 Mar 2017 09:21:56 +0000 (10:21 +0100)]
Error message on target attribute on power target (PR target/79906)

2017-03-22  Martin Liska  <mliska@suse.cz>

PR target/79906
* config/rs6000/rs6000.c (rs6000_inner_target_options): Show
error message instead of an ICE.
2017-03-22  Martin Liska  <mliska@suse.cz>

PR target/79906
* g++.dg/ext/mv8.C: Add power* targets.

From-SVN: r246345

7 years agoextend.texi (6.11 Additional Floating Types): Revise.
Bill Schmidt [Wed, 22 Mar 2017 01:45:49 +0000 (01:45 +0000)]
extend.texi (6.11 Additional Floating Types): Revise.

2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

* doc/extend.texi (6.11 Additional Floating Types): Revise.

From-SVN: r246343

7 years agoDaily bump.
GCC Administrator [Wed, 22 Mar 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246342

7 years agors6000-c.c (rs6000_target_modify_macros): Add comments.
Kelvin Nilsen [Wed, 22 Mar 2017 00:01:19 +0000 (00:01 +0000)]
rs6000-c.c (rs6000_target_modify_macros): Add comments.

gcc/ChangeLog:

2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
comments.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
comments.

From-SVN: r246339

7 years agoPR c++/79548 - missing -Wunused-variable on a typedef'd variable in a function template
Martin Sebor [Tue, 21 Mar 2017 22:33:39 +0000 (22:33 +0000)]
PR c++/79548 - missing -Wunused-variable on a typedef'd variable in a function template

gcc/c-family/ChangeLog:

PR c++/79548
* c-common.c (set_underlying_type): Mark type used only when
original del is declared unused.

gcc/testsuite/ChangeLog:

PR c++/79548
* g++.dg/warn/Wunused-var-26.C: New test.

From-SVN: r246335

7 years agoUse the more formal "cannot" instead of the informal "can't."
Martin Sebor [Tue, 21 Mar 2017 21:37:29 +0000 (21:37 +0000)]
Use the more formal "cannot" instead of the informal "can't."

gcc/ChangeLog:
* doc/extend.texi: Use "cannot" instead of "can't."
* doc/hostconfig.texi: Same.
* doc/install.texi: Same.
* doc/invoke.texi: Same.
* doc/loop.texi: Same.
* doc/md.texi: Same.
* doc/objc.texi: Same.
* doc/rtl.texi: Same.
* doc/tm.texi: Same.
* doc/tm.texi.in: Same.
* doc/trouble.texi: Same.

From-SVN: r246334

7 years ago[PR63238] include alignment debug information in DIE checksum
Alexandre Oliva [Tue, 21 Mar 2017 18:28:06 +0000 (18:28 +0000)]
[PR63238] include alignment debug information in DIE checksum

Add DW_AT_alignment to the DIE checksum.

for gcc/ChangeLog

PR debug/63238
* dwarf2out.c (struct checksum_attributes): Add at_alignment.
(collect_checksum_attributes): Set it.
(die_checksum_ordered): Use it.

From-SVN: r246331

7 years agore PR tree-optimization/79908 (ICE in gimplify_expr (gimplify.c:12155) gimplification...
Bill Schmidt [Tue, 21 Mar 2017 18:14:42 +0000 (18:14 +0000)]
re PR tree-optimization/79908 (ICE in gimplify_expr (gimplify.c:12155) gimplification failed)

[gcc]

2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/79908
* tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
change: For a VA_ARG whose LHS has been cast away, use
force_gimple_operand to construct the side effects.

[gcc/testsuite]

2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/79908
* gcc.dg/torture/pr79908.c: Revert addition of new file.

From-SVN: r246330

7 years agoomp-offload.c: translation fixes (PR translation/80001)
David Malcolm [Tue, 21 Mar 2017 16:26:09 +0000 (16:26 +0000)]
omp-offload.c: translation fixes (PR translation/80001)

gcc/ChangeLog:
PR translation/80001
* omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
more amenable to translation.
(oacc_loop_auto_partitions): Likewise.

From-SVN: r246326

7 years agore PR tree-optimization/80109 (ICE in get_range_info, at tree-ssanames.c:375)
Marek Polacek [Tue, 21 Mar 2017 16:21:14 +0000 (16:21 +0000)]
re PR tree-optimization/80109 (ICE in get_range_info, at tree-ssanames.c:375)

PR tree-optimization/80109
* gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
on INTEGRAL_TYPE_P.

* gcc.dg/Walloca-14.c: New test.

Co-Authored-By: Martin Sebor <msebor@redhat.com>
From-SVN: r246325

7 years agore PR target/80125 (r246297 causes segfault in reg_used_between_p())
Jakub Jelinek [Tue, 21 Mar 2017 14:49:51 +0000 (15:49 +0100)]
re PR target/80125 (r246297 causes segfault in reg_used_between_p())

PR target/80125
* combine.c (can_combine_p): Revert the 2017-03-20 change, only
check reg_used_between_p between insn and one of succ or succ2
depending on if succ is artificial insn not inserted into insn
stream.

* gcc.target/powerpc/pr80125.c: New test.

Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org>
From-SVN: r246323

7 years agore PR fortran/69498 (ICE on disjunct cases with displaced or incomplete embedded...
Nicolas Koenig [Tue, 21 Mar 2017 14:49:21 +0000 (14:49 +0000)]
re PR fortran/69498 (ICE on disjunct cases with displaced or incomplete embedded statement)

2017-03-18  Nicolas Koenig  <koenigni@student.ethz.ch>

                PR fortran/69498
                * decl.c (add_hidden_procptr_result): Fixed Refs count of the created "ppr@" symbol.

2017-03-18  Nicolas Koenig  <koenigni@student.ethz.ch>

                PR fortran/69498
                * gfortran.dg/unexp_attribute.f90: New test

From-SVN: r246322

7 years agoDocument gcov-dump and fix installation of gcov-tool (PR gcov-profile/80081).
Martin Liska [Tue, 21 Mar 2017 14:41:11 +0000 (15:41 +0100)]
Document gcov-dump and fix installation of gcov-tool (PR gcov-profile/80081).

2017-03-21  Martin Liska  <mliska@suse.cz>

PR gcov-profile/80081
* Makefile.in: Add gcov-dump and fix installation of gcov-tool.
* doc/gcc.texi: Include gcov-dump stuff.
* doc/gcov-dump.texi: New file.

From-SVN: r246321

7 years agoApply temporary fix for PR rtl-optimization/79150.
Toma Tabacu [Tue, 21 Mar 2017 14:00:19 +0000 (14:00 +0000)]
Apply temporary fix for PR rtl-optimization/79150.

gcc/
PR rtl-optimization/79150
* config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
conditional jump, if the jump is the last insn of the loop.

From-SVN: r246320

7 years agore PR tree-optimization/79908 (ICE in gimplify_expr (gimplify.c:12155) gimplification...
Bill Schmidt [Tue, 21 Mar 2017 13:57:20 +0000 (13:57 +0000)]
re PR tree-optimization/79908 (ICE in gimplify_expr (gimplify.c:12155) gimplification failed)

[gcc]

2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
            Richard Biener  <rguenth@suse.com>

PR tree-optimization/79908
* tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
been cast away, use force_gimple_operand to construct the side
effects.

[gcc/testsuite]

2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
            Richard Biener  <rguenther@suse.de>

PR tree-optimization/79908
* gcc.dg/torture/pr79908.c: New file.

Co-Authored-By: Richard Biener <rguenth@suse.com>
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r246319

7 years agoFix failing overflow-1.c for avr
Senthil Kumar Selvaraj [Tue, 21 Mar 2017 12:05:09 +0000 (12:05 +0000)]
Fix failing overflow-1.c for avr

The test assumes 32 bit ints, and expects a constant in the
dump that is only valid for 32 bit ints. Fix by explicitly
specifying __UINT32_TYPE__.

gcc/testsuite/

2017-03-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>

* gcc.dg/tree-ssa/overflow-1.c: Use __UINT32_TYPE__ for targets
with sizeof(int) < 4.

From-SVN: r246318

7 years agoFix another profiledbootstrap warning (PR libfortran/79956).
Martin Liska [Tue, 21 Mar 2017 12:04:17 +0000 (13:04 +0100)]
Fix another profiledbootstrap warning (PR libfortran/79956).

2017-03-21  Martin Liska  <mliska@suse.cz>

PR libfortran/79956
* simplify-rtx.c (simplify_immed_subreg): Initialize a variable
to NULL.

From-SVN: r246317

7 years agoFix dg-error for a test
Martin Liska [Tue, 21 Mar 2017 12:01:40 +0000 (13:01 +0100)]
Fix dg-error for a test

2017-03-21  Martin Liska  <mliska@suse.cz>

* gcc.target/i386/pr65044.c: Add '.' in order to catch
apostrophes.

From-SVN: r246316

7 years agore PR plugins/80094 (GCC plugin hash table corruption on hash table expansion (>10...
Brad Spengler [Tue, 21 Mar 2017 11:50:18 +0000 (11:50 +0000)]
re PR plugins/80094 (GCC plugin hash table corruption on hash table expansion (>10 plugins) on GCC 4.5+)

2017-03-21  Brad Spengler <spender@grsecurity.net>

PR plugins/80094
* plugin.c (htab_hash_plugin): New function.
(add_new_plugin): Use it and adjust.
(parse_plugin_arg_opt): Adjust.
(init_one_plugin): Likewise.

From-SVN: r246315

7 years agore PR tree-optimization/80032 (C++ excessive stack usage (no stack reuse))
Richard Biener [Tue, 21 Mar 2017 11:43:45 +0000 (11:43 +0000)]
re PR tree-optimization/80032 (C++ excessive stack usage (no stack reuse))

2017-03-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80032
* gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
if set force the cleanup to happen unconditionally.
(gimplify_target_expr): Push inserted clobbers with force_uncond
to avoid them being removed by control-dependent DCE.

* g++.dg/opt/pr80032.C: New testcase.

From-SVN: r246314

7 years agore PR tree-optimization/80122 (__builtin_va_arg_pack() and __builtin_va_arg_pack_len...
Richard Biener [Tue, 21 Mar 2017 11:42:22 +0000 (11:42 +0000)]
re PR tree-optimization/80122 (__builtin_va_arg_pack() and __builtin_va_arg_pack_len() does not work correctly)

2017-03-21  Richard Biener  <rguenther@suse.de>

PR tree-optimization/80122
* tree-inline.c (copy_bb): Do not expans va-arg packs or
va_arg_pack_len when the inlined call stmt requires pack
expansion itself.
* tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.

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

From-SVN: r246313

7 years agoFix search_line_fast for aarch64/ILP32
Andreas Schwab [Tue, 21 Mar 2017 11:10:17 +0000 (11:10 +0000)]
Fix search_line_fast for aarch64/ILP32

* lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]:
Convert 64-bit value to boolean before passing to
__builtin_expect.

From-SVN: r246312

7 years agoSkip gcc.dg/pic-2.c and gcc.dg/pie-2.c for MIPS.
Toma Tabacu [Tue, 21 Mar 2017 11:07:19 +0000 (11:07 +0000)]
Skip gcc.dg/pic-2.c and gcc.dg/pie-2.c for MIPS.

gcc/testsuite/

* gcc.dg/pic-2.c: Skip for MIPS.
* gcc.dg/pie-2.c: Skip for MIPS.

From-SVN: r246311

7 years agore PR c++/77752 (ICE on C++ code on x86_64-linux-gnu (internal compiler error: Segmen...
Paolo Carlini [Tue, 21 Mar 2017 10:18:51 +0000 (10:18 +0000)]
re PR c++/77752 (ICE on C++ code on x86_64-linux-gnu (internal compiler error: Segmentation fault, build_list_conv, implicit_conversion))

/cp
2017-03-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/77752
* name-lookup.c (pushtag_1): Add check for bogus, non template,
std::initializer_list.

/testsuite
2017-03-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/77752
* g++.dg/cpp0x/initlist97.C: New.
* g++.dg/cpp0x/initlist85.C: Update.

From-SVN: r246310

7 years agore PR sanitizer/78158 (Strange data race detection with thread sanitizer)
Jakub Jelinek [Tue, 21 Mar 2017 08:22:57 +0000 (09:22 +0100)]
re PR sanitizer/78158 (Strange data race detection with thread sanitizer)

PR sanitizer/78158
* tsan.c (instrument_builtin_call): If the memory model argument
is not a constant, assume it is valid.

From-SVN: r246306

7 years agore PR middle-end/67338 (fold-const sanitizer runtime error in roundup_loc)
Jakub Jelinek [Tue, 21 Mar 2017 08:10:30 +0000 (09:10 +0100)]
re PR middle-end/67338 (fold-const sanitizer runtime error  in roundup_loc)

PR c/67338
* fold-const.c (round_up_loc): Negate divisor in unsigned type to
avoid UB.

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

From-SVN: r246305

7 years agoFix CL.
Marek Polacek [Tue, 21 Mar 2017 07:50:14 +0000 (07:50 +0000)]
Fix CL.

From-SVN: r246304

7 years agore PR c++/35878 ([LWG 2302] Useless NULL pointer check when constructing object)
Jakub Jelinek [Tue, 21 Mar 2017 07:30:48 +0000 (08:30 +0100)]
re PR c++/35878 ([LWG 2302] Useless NULL pointer check when constructing object)

PR c++/35878
* init.c (std_placement_new_fn_p, build_new_1): Formatting fixes.

* g++.dg/init/pr35878_1.C: Rewrite directives to scan optimized
dump instead of assembler.
* g++.dg/init/pr35878_2.C: Likewise.
* g++.dg/init/pr35878_3.C: Likewise.

From-SVN: r246303

7 years agore PR c/80097 (internal compiler error in c_fully_fold_internal with std=c89 and...
Jakub Jelinek [Tue, 21 Mar 2017 07:01:05 +0000 (08:01 +0100)]
re PR c/80097 (internal compiler error in c_fully_fold_internal with std=c89 and -fsanitize=float-divide-by-zero)

PR c/80097
* c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
optional COMPOUND_EXPR with ubsan instrumentation.

* gcc.dg/ubsan/pr80097.c: New test.

From-SVN: r246302

7 years agore PR c++/35878 ([LWG 2302] Useless NULL pointer check when constructing object)
Ville Voutilainen [Tue, 21 Mar 2017 06:36:22 +0000 (08:36 +0200)]
re PR c++/35878 ([LWG 2302] Useless NULL pointer check when constructing object)

gcc/

PR c++/35878
* cp/init.c (std_placement_new_fn_p): New.
(build_new_1): Call it.

testsuite/

PR c++/35878
* g++.dg/init/pr35878_1.C: New.
* g++.dg/init/pr35878_2.C: Likewise.
* g++.dg/init/pr35878_3.C: Likewise.

From-SVN: r246301

7 years agoDaily bump.
GCC Administrator [Tue, 21 Mar 2017 00:16:18 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r246300

7 years agocombine: Fix 79910
Segher Boessenkool [Mon, 20 Mar 2017 23:08:16 +0000 (00:08 +0100)]
combine: Fix 79910

If the dest of an I0 or I1 is used in an insn before I2, as can happen
in various uncommon cases, and we manage to do the combination, the set
is moved to I2, which is wrong.  Don't allow combining the insns in this
case.

PR rtl-optimization/79910
* combine.c (can_combine_p): Do not allow combining an I0 or I1
if its dest is used by an insn before I2 (other than the combined
insns themselves, which are properly handled already).

From-SVN: r246297

7 years agoRevert:
Segher Boessenkool [Mon, 20 Mar 2017 23:06:35 +0000 (00:06 +0100)]
Revert:

2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>

* combine.c (record_used_regs): New static function.
(try_combine): Handle situations where there is an additional
instruction between I2 and I3 which needs to have a LOG_LINK
updated.

Revert:
2017-03-17  Jim Wilson  <jim.wilson@linaro.org>

* combine.c (try_combine): Delete redundant i1 test.  Call
prev_nonnote_nondebug_insn instead of prev_nonnote_insn.

From-SVN: r246296

7 years ago* de.po, fr.po: Update.
Joseph Myers [Mon, 20 Mar 2017 22:17:50 +0000 (22:17 +0000)]
* de.po, fr.po: Update.

From-SVN: r246295

7 years agostl_deque.h (deque): Access allocator value_type only if concept checks are enabled.
François Dumont [Mon, 20 Mar 2017 20:51:40 +0000 (20:51 +0000)]
stl_deque.h (deque): Access allocator value_type only if concept checks are enabled.

2017-03-20  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/stl_deque.h (deque): Access allocator value_type only if
concept checks are enabled.
* include/bits/stl_stack.h (stack): Likewise.
* include/bits/stl_vector.h (vector): Likewise.
* include/bits/stl_list.h (list): Likewise and check
_SGIAssignableConcept only in C++03.
* include/bits/stl_map.h (map): Likewise.
* include/bits/stl_set.h (set): Likewise.
* include/bits/stl_multimap.h (multimap): Likewise.
* include/bits/stl_multiset.h (multiset): Likewise.
* include/bits/stl_queue.h (queue, priority_queue): Likewise.

From-SVN: r246294

7 years agore PR target/80083 (libgomp doacross2.f90 regtest fails with -mcpu=power9 -O1)
Aaron Sawdey [Mon, 20 Mar 2017 20:43:44 +0000 (20:43 +0000)]
re PR target/80083 (libgomp doacross2.f90 regtest fails with -mcpu=power9 -O1)

2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

PR target/80083
* config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
alternatives 13/14.

From-SVN: r246293

7 years agoPR c++/80096 - ICE with C++17 non-type auto.
Jason Merrill [Mon, 20 Mar 2017 20:36:54 +0000 (16:36 -0400)]
PR c++/80096 - ICE with C++17 non-type auto.

* pt.c (tsubst): Delay tsubst of type of template non-type
parameter.

From-SVN: r246292

7 years agoPR c++/79519 - ICE with deleted template friend.
Jason Merrill [Mon, 20 Mar 2017 20:36:46 +0000 (16:36 -0400)]
PR c++/79519 - ICE with deleted template friend.

* decl.c (grokdeclarator): Complain about misplaced function
definition using =, as well.

From-SVN: r246291

7 years agore PR tree-optimization/80054 (ICE in verify_ssa with -O3 -march=broadwell/skylake...
Bill Schmidt [Mon, 20 Mar 2017 20:04:25 +0000 (20:04 +0000)]
re PR tree-optimization/80054 (ICE in verify_ssa with -O3 -march=broadwell/skylake-avx512)

[gcc]

2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/80054
* gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
the optimization if a PHI or any of its arguments is not dominated
by the candidate's basis.  Use gphi* rather than gimple* as
appropriate.
(replace_profitable_candidates): Clean up a gimple* variable that
should be a gphi* variable.

[gcc/testsuite]

2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

PR tree-optimization/80054
* g++.dg/torture/pr80054.C: New file.

From-SVN: r246290

7 years agoPR c++/79640 - infinite recursion with generic lambda.
Jason Merrill [Mon, 20 Mar 2017 18:49:10 +0000 (14:49 -0400)]
PR c++/79640 - infinite recursion with generic lambda.

* pt.c (tsubst_copy) [VAR_DECL]: Register the dummy instantiation
before substituting its initializer.

From-SVN: r246289

7 years agoPR c++/52477 - Wrong initialization order __attribute__((constructor)) vs static...
Martin Sebor [Mon, 20 Mar 2017 18:33:31 +0000 (18:33 +0000)]
PR c++/52477 - Wrong initialization order __attribute__((constructor)) vs static data access

* doc/extend.texi (attribute constructor): Document present limitation.

From-SVN: r246288

7 years agore PR target/79963 (vec_eq_any extracts wrong CR bit when compiling with -mcpu=power9)
Kelvin Nilsen [Mon, 20 Mar 2017 18:05:00 +0000 (18:05 +0000)]
re PR target/79963 (vec_eq_any extracts wrong CR bit when compiling with -mcpu=power9)

gcc/testsuite/ChangeLog:

2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/79963
* gcc.target/powerpc/vsu/vec-any-eq-10.c: Add scan-assembler
directive to assure selection of proper bit using rlwinm insn.
* gcc.target/powerpc/vsu/vec-any-eq-14.c: Likewise.
* gcc.target/powerpc/vsu/vec-any-eq-7.c: Likewise.
* gcc.target/powerpc/vsu/vec-any-eq-8.c: Likewise.
* gcc.target/powerpc/vsu/vec-any-eq-9.c: Likewise.

gcc/ChangeLog:

2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>

PR target/79963
* config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
__POWER9_VECTOR__ #ifdef control, change template definition to
use Power9-specific built-in function.
(vec_any_eq): Likewise.
* config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
to control outcomes from this test.
(vector_ae_<mode>p): For VEC_F modes, likewise.

From-SVN: r246287

7 years agoi386.c (ix86_function_regparm): Save an extra register for -fsplit-stack with DECL_ST...
Ian Lance Taylor [Mon, 20 Mar 2017 17:43:08 +0000 (17:43 +0000)]
i386.c (ix86_function_regparm): Save an extra register for -fsplit-stack with DECL_STATIC_CHAIN.

* config/i386/i386.c (ix86_function_regparm): Save an extra
register for -fsplit-stack with DECL_STATIC_CHAIN.

From-SVN: r246286

7 years agore PR fortran/39239 (Reject SAVEd variables EQUIVALENCEd to a COMMON)
Nicolas Koenig [Mon, 20 Mar 2017 16:50:00 +0000 (16:50 +0000)]
re PR fortran/39239 (Reject SAVEd variables EQUIVALENCEd to a COMMON)

2017-03-12 Nicolas Koenig <koenigni@student.ethz.ch>

PR fortran/39239
* symbol.c (check_conflict): report an error if an EQUIVALENCE variable is BIND(C).

2017-03-12 Nicolas Koenig <koenigni@student.ethz.ch>

PR fortran/39239
* gfortran.dg/equiv_constraint_bind_c.f90: New test.

From-SVN: r246284

7 years agoRISC-V: Don't prefer FP_REGS for integers
Palmer Dabbelt [Mon, 20 Mar 2017 16:43:21 +0000 (16:43 +0000)]
RISC-V: Don't prefer FP_REGS for integers

On RISC-V we can't store integers in floating-point registers as this is
forbidden by the ISA.  We've always disallowed this, but we were
setting the preferred mode to FP_REGS for some integer modes.  This
caused the LRA to blow up with some hard to read error messages.

This patch removes the prefered mode hook, as the right thing to do here
is nothing.

Thanks to Kito for finding the bug, and mpf for the fix.  See also
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79912>.

PR target/79912

From-SVN: r246283

7 years agoUse more conservative fences on RISC-V
Palmer Dabbelt [Mon, 20 Mar 2017 16:43:17 +0000 (16:43 +0000)]
Use more conservative fences on RISC-V

The RISC-V memory model is still in the process of being formally
specified, so for now we're going to be safe and add the I/O bits to
userspace fences because there's no way to know if userspace is touching
memory-mapped I/O regions at compile time.

This will have no impact on existing microarchitecutres because they
treat all fences conservatively.

gcc/ChangeLog:

2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>

        * config/riscv/riscv.c (riscv_print_operand): Use "fence
        iorw,ow".
        * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
        iorw,iorw".

From-SVN: r246282