gcc.git
8 years agoRework C/C++ OpenACC routine parsing
Thomas Schwinge [Thu, 4 Aug 2016 13:35:30 +0000 (15:35 +0200)]
Rework C/C++ OpenACC routine parsing

gcc/c/
* c-parser.c (struct oacc_routine_data): Add error_seen and
fndecl_seen members.
(c_finish_oacc_routine): Use these.
(c_parser_declaration_or_fndef): Adjust.
(c_parser_oacc_routine): Likewise.  Support more C language
constructs, and improve diagnostics.  Move pragma context
checking...
(c_parser_pragma): ... here.
gcc/cp/
* parser.c (cp_ensure_no_oacc_routine): Improve diagnostics.
(cp_parser_late_parsing_cilk_simd_fn_info): Fix diagnostics.
(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
Simplify code, and improve diagnostics.
(cp_parser_oacc_routine): Likewise.  Move pragma context
checking...
(cp_parser_pragma): ... here.
gcc/testsuite/
* c-c++-common/goacc/routine-5.c: Update.

From-SVN: r239128

8 years agoC/C++: Simplify handling of location information for OpenACC routine directives
Thomas Schwinge [Thu, 4 Aug 2016 13:35:19 +0000 (15:35 +0200)]
C/C++: Simplify handling of location information for OpenACC routine directives

gcc/c/
* c-parser.c (struct oacc_routine_data): New.
(c_parser_declaration_or_fndef, c_parser_oacc_routine): Use it.
Simplify code.
(c_finish_oacc_routine): Likewise.  Don't attach clauses to "omp
declare target" attribute.
gcc/cp/
* parser.h (struct cp_omp_declare_simd_data): New.
(struct cp_parser): Use it for oacc_routine member.
* parser.c (cp_ensure_no_oacc_routine, cp_parser_oacc_routine)
(cp_parser_late_parsing_oacc_routine, cp_finalize_oacc_routine):
Use it.  Simplify code.
(cp_parser_new): Initialize all members pointing to special
parsing data structures.
(cp_parser_cilk_simd_fn_vector_attrs): Initialize
parser->cilk_simd_fn_info->clauses.
(cp_parser_omp_declare_simd): Initialize
parser->omp_declare_simd->clauses.
(cp_parser_late_parsing_omp_declare_simd): Simplify code.

From-SVN: r239127

8 years agoC++ OpenACC routine directive testing: templated, and "auto", trailing return type...
Thomas Schwinge [Thu, 4 Aug 2016 13:35:10 +0000 (15:35 +0200)]
C++ OpenACC routine directive testing: templated, and "auto", trailing return type syntax

libgomp/
* testsuite/libgomp.oacc-c++/routine-1-auto.C: New file.
* testsuite/libgomp.oacc-c++/routine-1-template-auto.C: Likewise.
* testsuite/libgomp.oacc-c++/routine-1-template-trailing-return-type.C:
Likewise.
* testsuite/libgomp.oacc-c++/routine-1-template.C: Likewise.
* testsuite/libgomp.oacc-c++/routine-1-trailing-return-type.C:
Likewise.
* testsuite/libgomp.oacc-c-c++-common/routine-1.c: Adjust.

From-SVN: r239126

8 years agoMake libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0
Thomas Schwinge [Thu, 4 Aug 2016 13:34:57 +0000 (15:34 +0200)]
Make libgomp.oacc-c-c++-common/crash-1.c a "link" test, and don't hardcode -O0

libgomp/
* testsuite/libgomp.oacc-c-c++-common/crash-1.c: Make it a "link"
test, and don't hardcode -O0.

From-SVN: r239125

8 years agoUpdate C++17 library implementation status table
Jonathan Wakely [Thu, 4 Aug 2016 13:33:02 +0000 (14:33 +0100)]
Update C++17 library implementation status table

* doc/xml/manual/status_cxx2017.xml: Update C++17 status table.
* doc/html/manual/status.html: Regenerate.

From-SVN: r239124

8 years ago016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
Bernd Edlinger [Thu, 4 Aug 2016 13:23:36 +0000 (13:23 +0000)]
016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/71779
        * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
        if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
        or if it was truncated.

From-SVN: r239123

8 years agore PR target/70903 (wrong code with bfi @ aarch64 with -Os)
Bernd Edlinger [Thu, 4 Aug 2016 13:20:57 +0000 (13:20 +0000)]
re PR target/70903 (wrong code with bfi @ aarch64 with -Os)

2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/70903
        * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.

testsuite:
2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR rtl-optimization/70903
        * gcc.c-torture/execute/pr70903.c: New test.

From-SVN: r239122

8 years agoDefine std::enable_shared_from_this::weak_from_this
Jonathan Wakely [Thu, 4 Aug 2016 12:33:10 +0000 (13:33 +0100)]
Define std::enable_shared_from_this::weak_from_this

* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Use
effective target not dg-options. Move check for feature-test macro to:
* testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
New test.

From-SVN: r239121

8 years agoSimplify std::__invoke_impl definitions
Jonathan Wakely [Thu, 4 Aug 2016 11:09:29 +0000 (12:09 +0100)]
Simplify std::__invoke_impl definitions

* include/std/functional (_Unwrap): Rename to __inv_unwrap.
(__invfwd): Adjust.
(__invoke_impl): Remove unused template parameters.
* testsuite/20_util/function_objects/invoke/59768.cc: Remove unused
parameter.
* testsuite/20_util/function_objects/invoke/ref_ext.cc: Copy 59768.cc
and test __invoke extension for C++11.

From-SVN: r239120

8 years agoUse TESTING_IN_BUILD_TREE in params.exp
Martin Liska [Thu, 4 Aug 2016 11:06:37 +0000 (13:06 +0200)]
Use TESTING_IN_BUILD_TREE in params.exp

* gcc.dg/params/params.exp: Replace file exists with
TESTING_IN_BUILD_TREE.

From-SVN: r239119

8 years agotree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before accessing SSA_NAME_PT...
Kugan Vivekanandarajah [Thu, 4 Aug 2016 09:15:03 +0000 (09:15 +0000)]
tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before accessing SSA_NAME_PTR_INFO.

gcc/ChangeLog:

2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>

* tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
accessing SSA_NAME_PTR_INFO.

From-SVN: r239118

8 years agore PR target/70677 (Suboptimal cond on AVR: unneeded stack frame)
Georg-Johann Lay [Thu, 4 Aug 2016 07:52:38 +0000 (07:52 +0000)]
re PR target/70677 (Suboptimal cond on AVR: unneeded stack frame)

PR 70677
* common/config/avr/avr-common.c (avr_option_optimization_table)
[OPT_LEVELS_ALL]: Turn off -fcaller-saves.

From-SVN: r239117

8 years agore PR target/55181 (Expensive shift loop where a bit-testing instruction could be...
Georg-Johann Lay [Thu, 4 Aug 2016 07:50:53 +0000 (07:50 +0000)]
re PR target/55181 (Expensive shift loop where a bit-testing instruction could be used)

PR 55181
* config/avr/avr.md: New pattern to work around do_store_flag
generating shift instructions for bit extractions.

From-SVN: r239116

8 years agore PR c++/70229 (error: constexpr constructor does not have empty body)
Marek Polacek [Thu, 4 Aug 2016 07:47:50 +0000 (07:47 +0000)]
re PR c++/70229 (error: constexpr constructor does not have empty body)

PR c++/70229
* constexpr.c (check_constexpr_ctor_body_1): Allow typedef
declarations.

* g++.dg/cpp0x/constexpr-ctor19.C: New test.

From-SVN: r239115

8 years agore PR rtl-optimization/71984 (wrong code with -O -mavx512cd)
Richard Biener [Thu, 4 Aug 2016 07:02:47 +0000 (07:02 +0000)]
re PR rtl-optimization/71984 (wrong code with -O -mavx512cd)

2016-08-04  Richard Biener  <rguenther@suse.de>

PR middle-end/71984
* gcc.dg/torture/pr71984.c: Guard correctness check for
little-endian.

From-SVN: r239114

8 years agotree-vrp.c (set_value_range): Use vrp_equiv_obstack with BITMAP_ALLOC.
Kugan Vivekanandarajah [Thu, 4 Aug 2016 04:20:01 +0000 (04:20 +0000)]
tree-vrp.c (set_value_range): Use vrp_equiv_obstack with BITMAP_ALLOC.

gcc/ChangeLog:

2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>

* tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
BITMAP_ALLOC.
(add_equivalence): Likewise.
(get_value_range): Allocate value range with vrp_value_range_pool.
(vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
(vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.

From-SVN: r239113

8 years agoDaily bump.
GCC Administrator [Thu, 4 Aug 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239112

8 years agoescape: Enable escape analysis in gccgo.
Ian Lance Taylor [Thu, 4 Aug 2016 00:10:35 +0000 (00:10 +0000)]
escape: Enable escape analysis in gccgo.

    Off by default, enabled through -fgo-optimize-allocs.

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

From-SVN: r239109

8 years agors6000.c (rs6000_option_override_internal): Make LRA the default for the rs6000 port.
Peter Bergner [Wed, 3 Aug 2016 23:13:20 +0000 (18:13 -0500)]
rs6000.c (rs6000_option_override_internal): Make LRA the default for the rs6000 port.

* config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
the default for the rs6000 port.

From-SVN: r239105

8 years agogotest: multiple +build lines must all be true
Ian Lance Taylor [Wed, 3 Aug 2016 22:46:06 +0000 (22:46 +0000)]
gotest: multiple +build lines must all be true

    The code that handled +build lines did not correctly require them to all
    be true.  While looking into this I discovered that multiple +build
    lines were mishandled in a different way, because the shell does not
    preseve line breaks in backquoted data.  Look for the +build token to
    tell us when we are switching from one +build line to another.

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

From-SVN: r239100

8 years ago20160802-1.c: New testcase.
Andrew Pinski [Wed, 3 Aug 2016 22:37:53 +0000 (22:37 +0000)]
20160802-1.c: New testcase.

2016-08-03  Andrew Pinski  <apinski@cavium.com>

        * gcc.c-torture/compile/20160802-1.c: New testcase.

From-SVN: r239099

8 years agocompiler: improve type caching for interface types
Ian Lance Taylor [Wed, 3 Aug 2016 20:01:09 +0000 (20:01 +0000)]
compiler: improve type caching for interface types

    Add a cached to Interface_info_expression::do_type() so as to reuse
    previously created interface types. This change reduces gccgo peak heap
    usage when compiling the "fmt" package from around 16mb to around 10mb.

    Fixes golang/go#16334

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

From-SVN: r239095

8 years agoDefine feature-test macro for std::enable_shared_from_this
Jonathan Wakely [Wed, 3 Aug 2016 19:10:06 +0000 (20:10 +0100)]
Define feature-test macro for std::enable_shared_from_this

* include/bits/shared_ptr_base.h (__cpp_lib_enable_shared_from_this):
Define feature-test macro.
* testsuite/20_util/enable_shared_from_this/members/reinit.cc: Test
for the macro.

From-SVN: r239094

8 years agoDefine std::shared_ptr::weak_type
Jonathan Wakely [Wed, 3 Aug 2016 19:09:57 +0000 (20:09 +0100)]
Define std::shared_ptr::weak_type

* include/bits/shared_ptr.h (shared_ptr::weak_type): Define.
* include/bits/shared_ptr_base.h (__shared_ptr::weak_type): Define.
* testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error.
* testsuite/20_util/shared_ptr/requirements/weak_type.cc: New test.
* testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.

From-SVN: r239093

8 years agore PR middle-end/71876 (longjmp is miscompiled with -ffreestanding)
Bernd Edlinger [Wed, 3 Aug 2016 19:05:45 +0000 (19:05 +0000)]
re PR middle-end/71876 (longjmp is miscompiled with -ffreestanding)

2016-08-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR middle-end/71876
        * calls.c (special_function_p): Remove special handling of
        "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
        prefix "__x".  Recognize "savectx", "vfork" and "getcontext" only
        without prefix.  Remove potentially unsafe ECF_LEAF and ECF_NORETURN.

From-SVN: r239092

8 years agore PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode...
Vladimir Makarov [Wed, 3 Aug 2016 18:54:49 +0000 (18:54 +0000)]
re PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode-switching.c:451)

2016-08-03  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/72778
* lra-spills.c (regno_in_use_p): Check bb and regno modification.
Don't stop on regular insns.

From-SVN: r239091

8 years agoDefine std::as_const
Jonathan Wakely [Wed, 3 Aug 2016 18:11:23 +0000 (19:11 +0100)]
Define std::as_const

* include/std/utility (as_const): Define.
* testsuite/20_util/as_const/1.cc: New test.
* testsuite/20_util/as_const/rvalue_neg.cc: New test.

From-SVN: r239090

8 years agoDefine std::owner_less<void> specialization (P0074R0)
Jonathan Wakely [Wed, 3 Aug 2016 18:11:18 +0000 (19:11 +0100)]
Define std::owner_less<void> specialization (P0074R0)

* include/bits/shared_ptr.h (owner_less): Add default template
argument.
* include/bits/shared_ptr_base.h (_Sp_owner_less<void, void>): Define
specialization.
(owner_less<void>): Define specialization.
* include/bits/stl_function.h (__cpp_lib_transparent_operators):
Update value.
* testsuite/20_util/owner_less/void.cc: New test.
* testsuite/experimental/feat-cxx14.cc: Update macro value tested.

From-SVN: r239089

8 years agoDefine C++17 feature-test macros
Jonathan Wakely [Wed, 3 Aug 2016 18:11:10 +0000 (19:11 +0100)]
Define C++17 feature-test macros

* include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
Define feature-test macro.
* include/bits/range_access.h (__cpp_lib_array_constexpr): Likewise.
* include/std/shared_mutex (__cpp_lib_shared_mutex): Uncomment.
* include/std/type_traits (__cpp_lib_logical_traits): Fix value.
(__cpp_lib_type_trait_variable_templates): Define.

From-SVN: r239088

8 years agonvptx.c (nvptx_declare_function_name): Round frame size to DImode boundary.
Nathan Sidwell [Wed, 3 Aug 2016 17:26:51 +0000 (17:26 +0000)]
nvptx.c (nvptx_declare_function_name): Round frame size to DImode boundary.

gcc/
* config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
size to DImode boundary.
(nvptx_propagate): Likewise.

libgomp/
* testsuite/libgomp.oacc-c-c++-common/crash-1.c: New.

From-SVN: r239086

8 years agoDefine __cpp_lib_generic_associative_lookup feature-test macro
Jonathan Wakely [Wed, 3 Aug 2016 16:42:31 +0000 (17:42 +0100)]
Define __cpp_lib_generic_associative_lookup feature-test macro

* include/bits/stl_function.h: Remove commented-out macro.
* include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
Define feature-test macro.
* testsuite/experimental/feat-cxx14.cc: Add tests for more macros.

From-SVN: r239084

8 years agoescape: Stack allocate non-escaping expressions.
Ian Lance Taylor [Wed, 3 Aug 2016 16:32:17 +0000 (16:32 +0000)]
escape: Stack allocate non-escaping expressions.

    Stack allocate expressions that the analysis tracked and determined
    did not escape.

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

From-SVN: r239083

8 years agodownload_prerequisites: Explicitly remove existing symlinks before trying to create...
Eric Gallager [Wed, 3 Aug 2016 16:11:50 +0000 (16:11 +0000)]
download_prerequisites: Explicitly remove existing symlinks before trying to create new ones.

2016-08-03  Eric Gallager  <egall@gwmail.gwu.edu>

* download_prerequisites: Explicitly remove existing symlinks
before trying to create new ones.

From-SVN: r239082

8 years agoEnable Mathematical Special Functions for C++17
Jonathan Wakely [Wed, 3 Aug 2016 15:54:13 +0000 (16:54 +0100)]
Enable Mathematical Special Functions for C++17

* include/bits/c++config (_GLIBCXX_USE_STD_SPEC_FUNCS): Define for
C++17, or for C++11/C++14 when __STDCPP_WANT_MATH_SPEC_FUNCS__ is
true.
* include/bits/specfun.h [!__STDCPP_WANT_MATH_SPEC_FUNCS__]: Don't
do #error for C++17.
* include/c_global/cmath: Check _GLIBCXX_USE_STD_SPEC_FUNCS instead
of __STDCPP_WANT_MATH_SPEC_FUNCS__.
* include/tr1/bessel_function.tcc: Likewise.
* include/tr1/beta_function.tcc: Likewise.
* include/tr1/cmath: Likewise.
* include/tr1/ell_integral.tcc: Likewise.
* include/tr1/exp_integral.tcc: Likewise.
* include/tr1/gamma.tcc: Likewise.
* include/tr1/hypergeometric.tcc: Likewise.
* include/tr1/legendre_function.tcc: Likewise.
* include/tr1/modified_bessel_func.tcc: Likewise.
* include/tr1/poly_hermite.tcc: Likewise.
* include/tr1/poly_laguerre.tcc: Likewise.
* include/tr1/riemann_zeta.tcc: Likewise.
* include/tr1/special_function_util.h: Likewise.
* testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: New.

From-SVN: r239081

8 years agoRemove deprecated has_trivial_xxx traits
Jonathan Wakely [Wed, 3 Aug 2016 15:18:30 +0000 (16:18 +0100)]
Remove deprecated has_trivial_xxx traits

* include/std/type_traits (has_trivial_default_constructor): Remove.
(has_trivial_copy_constructor, has_trivial_copy_assign): Likewise.
* testsuite/20_util/has_trivial_copy_assign/requirements/
explicit_instantiation.cc: Remove test.
* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
line number.
* testsuite/20_util/has_trivial_copy_assign/requirements/typedefs.cc:
Likewise.
* testsuite/20_util/has_trivial_copy_assign/value.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/has_trivial_copy_constructor/value.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/requirements/
explicit_instantiation.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/requirements/
typedefs.cc: Likewise.
* testsuite/20_util/has_trivial_default_constructor/value.cc:
Likewise.
* testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc:
Check has_trivial_default_constructor, has_trivial_copy_constructor,
and has_trivial_copy_assign are not defined.
* testsuite/20_util/pair/requirements/dr801.cc: Remove commented out
tests.
* testsuite/20_util/tuple/requirements/dr801.cc: Likewise.
* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
dg-error line number.
* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
Likewise.

From-SVN: r239079

8 years agolang.opt: New option -fdec-intrinsic-ints.
Fritz Reese [Wed, 3 Aug 2016 14:55:26 +0000 (14:55 +0000)]
lang.opt: New option -fdec-intrinsic-ints.

2016-08-03  Fritz Reese  <fritzoreese@gmail.com>

gcc/fortran/
* lang.opt: New option -fdec-intrinsic-ints.
* options.c (set_dec_flags): Enable with -fdec.
* gfortran.texi, invoke.texi, intrinsics.texi: Update documentation.
* intrinsic.c (add_function, add_subroutine): New B/I/J/K intrinsic
variants.

gcc/testsuite/gfortran.dg/
* dec_intrinsic_ints.f90: New testcase.

From-SVN: r239078

8 years agopr71403-1.c: Use dg-additional-options and remove -O3.
Richard Biener [Wed, 3 Aug 2016 14:41:34 +0000 (14:41 +0000)]
pr71403-1.c: Use dg-additional-options and remove -O3.

2016-08-03  Richard Biener  <rguenther@suse.de>

* c-c++-common/ubsan/pr71403-1.c: Use dg-additional-options
and remove -O3.
* c-c++-common/ubsan/pr71403-2.c: Likewise.
* c-c++-common/ubsan/pr71403-3.c: Likewise.

From-SVN: r239077

8 years agoloadpre2.c: Disable LIM.
Richard Biener [Wed, 3 Aug 2016 14:26:51 +0000 (14:26 +0000)]
loadpre2.c: Disable LIM.

2016-08-03  Richard Biener  <rguenther@suse.de>

* gcc.dg/tree-ssa/loadpre2.c: Disable LIM.
* gcc.dg/tree-ssa/loadpre21.c: Likewise.
* gcc.dg/tree-ssa/loadpre22.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-23.c: Likewise.

From-SVN: r239071

8 years agoAdd branch_changer.py script to maintainer-scripts
Martin Liska [Wed, 3 Aug 2016 12:43:11 +0000 (14:43 +0200)]
Add branch_changer.py script to maintainer-scripts

* branch_changer.py: New file.

From-SVN: r239066

8 years agoFix tests that break unnecessarily for avr.
Senthil Kumar Selvaraj [Wed, 3 Aug 2016 11:50:32 +0000 (11:50 +0000)]
Fix tests that break unnecessarily for avr.

Require int32plus for tests that assume so, and conditionally skip pr44024.c,
 as it only works if the target allows deletion of null pointer checks.

gcc/testsuite/ChangeLog

* gcc.dg/init-excess-2.c: Require int32plus.
* gcc.dg/pr44024.c: Skip if target keeps null pointer checks.
* gcc.dg/pr59963-2.c: Require int32plus.
* gcc.dg/pr71084.c: Cast pointer to intprt_t.
* gcc.dg/unroll-7.c: Require int32plus.

From-SVN: r239065

8 years ago[RS6000] power8 unaligned fp load/store
Alan Modra [Wed, 3 Aug 2016 00:42:06 +0000 (10:12 +0930)]
[RS6000] power8 unaligned fp load/store

According to the POWER8 Processor User’s Manual and some
experimentation on power8 hardware, unaligned fp load/store on power8
does not invoke the alignment interrupt.

* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
* config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
from -mefficient-unaligned-vector.  Note that this affects fp too.

From-SVN: r239013

8 years ago[RS6000] cost SLOW_UNALIGNED_ACCESS
Alan Modra [Wed, 3 Aug 2016 00:35:14 +0000 (10:05 +0930)]
[RS6000] cost SLOW_UNALIGNED_ACCESS

* config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
cost more.

From-SVN: r239012

8 years ago[RS6000] Force source of fix_trunc<mode>si2 to reg
Alan Modra [Wed, 3 Aug 2016 00:33:37 +0000 (10:03 +0930)]
[RS6000] Force source of fix_trunc<mode>si2 to reg

* config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
to a reg.  Localize vars.

From-SVN: r239011

8 years ago[RS6000] Remove negative from option help strings
Alan Modra [Wed, 3 Aug 2016 00:32:11 +0000 (10:02 +0930)]
[RS6000] Remove negative from option help strings

* config/rs6000/rs6000.opt: Remove negatives from help strings
and comments.

From-SVN: r239010

8 years ago[RS6000] Delete duplicate code
Alan Modra [Wed, 3 Aug 2016 00:30:04 +0000 (10:00 +0930)]
[RS6000] Delete duplicate code

This removes the duplicate (TARGET_POWERPC64 && size == 16) block.

* config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
Delete duplicated code.

From-SVN: r239009

8 years agoDaily bump.
GCC Administrator [Wed, 3 Aug 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r239008

8 years agoescape: Add basic debugging.
Chris Manghane [Tue, 2 Aug 2016 21:43:48 +0000 (21:43 +0000)]
escape: Add basic debugging.

    Emit basic debug information when compiling with the flag
    -fgo-debug-escape#.

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

2016-08-02  Chris Manghane  <cmang@google.com>

* lang.opt: Add -fgo-debug-escape option.
* go-c.h (go_create_gogo): Add debug_escape_level parameter.
* go-lang.c (go_langhook_init): Pass go_debug_escape_level to
go_create_gogo.

From-SVN: r239002

8 years agore PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode...
Vladimir Makarov [Tue, 2 Aug 2016 20:57:04 +0000 (20:57 +0000)]
re PR rtl-optimization/72778 (internal compiler error: in create_pre_exit, at mode-switching.c:451)

2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>

PR middle-end/72778
* lra-spills.c (regno_in_use_p): New.
(lra_final_code_change): Use it.

From-SVN: r239000

8 years agoFix std::wstring allocator tests
Jonathan Wakely [Tue, 2 Aug 2016 19:34:36 +0000 (20:34 +0100)]
Fix std::wstring allocator tests

* testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc:
Remove reundant check for _GLIBCXX_USE_WCHAR_T and fix char type.
* testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc:
Likewise.
* testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc:
Likewise.

From-SVN: r238996

8 years agoImprove comments on check_v3_target_filesystem_ts
Jonathan Wakely [Tue, 2 Aug 2016 19:34:30 +0000 (20:34 +0100)]
Improve comments on check_v3_target_filesystem_ts

* testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Improve
comments.

From-SVN: r238995

8 years agoMove dg-error directives to relevant lines
Jonathan Wakely [Tue, 2 Aug 2016 19:34:25 +0000 (20:34 +0100)]
Move dg-error directives to relevant lines

* testsuite/19_diagnostics/error_code/operators/bool_neg.cc: Move
dg-error to relevant line.
* testsuite/19_diagnostics/error_condition/operators/bool_neg.cc:
Likewise.
* testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise.

From-SVN: r238994

8 years agoAdd -fno-show-column to libstdc++ test flags
Jonathan Wakely [Tue, 2 Aug 2016 19:34:15 +0000 (20:34 +0100)]
Add -fno-show-column to libstdc++ test flags

* scripts/testsuite_flags.in: Add -fno-show-column to cxxflags.

From-SVN: r238993

8 years agoexpr.c (push_value): Only call flush_quick_stack for non-constant arguments.
Roger Sayle [Tue, 2 Aug 2016 18:01:14 +0000 (18:01 +0000)]
expr.c (push_value): Only call flush_quick_stack for non-constant arguments.

2016-08-02  Roger Sayle  <roger@nextmovesoftware.com>

* expr.c (push_value): Only call flush_quick_stack for non-constant
arguments.
(build_java_throw_out_of_bounds_exception): No longer wrap calls
to _Jv_ThowBadArrayIndex in a COMPOUND_EXPR as no longer needed.
(java_check_reference): Annotate COND_EXPR with __builtin_expect
to indicate that calling _Jv_ThrowNullPointerException is unlikely.
(build_java_arrayaccess): Construct an unlikely COND_EXPR instead
of a TRUTH_ANDIF_EXPR in a COMPOUND_EXPR.  Only generate array
index MULT_EXPR when size_exp is not unity.
(build_array_length_annotation): When optimizing, generate a write
to the allocated array's length field to expose constant lengths
to GCC's optimizers.
(build_newarray): Call new build_array_length_annotation.
(build_anewarray): Likewise.

(expand_java_multianewarray): Fix whitespace.
(expand_java_return): Likewise.
(expand_invoke): Likewise.
(load_type_state): Likewise.

From-SVN: r238992

8 years agore PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload...
Vladimir Makarov [Tue, 2 Aug 2016 16:07:36 +0000 (16:07 +0000)]
re PR rtl-optimization/69847 (Spec 2006 403.gcc slows down with -mlra vs. reload on PowerPC)

2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/69847
* lra-int.h (struct lra-reg): Use restore_rtx instead of
restore_regno.
(lra_rtx_hash): New.
* lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
of restore_regno.
(lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
* lra-remat.c (rtx_hash): Rename and Move to lra.c.
* lra-spills.c (lra_final_code_change): Don't delete insn when the
next insn is USE with the same reg as the current insn source.
* lra-constraints.c (curr_insn_transform): Use restore_rtx instead
of restore_regno.
(lra_constraints_init): Call initiate_invariants.
(lra_constraints_finish): Call finish_invariants.
(struct invariant, invariant_t, invariant_ptr_t): New.
(const_invariant_ptr_t, invariants, invariants_pool): New.
(invariant_table, invariant_hash, invariant_eq_p): New.
(insert_invariant, initiate_invariants, finish_invariants): New.
(clear_invariants, invalid_invariant_regs): New.
(inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
instead of restore_regno.
(invariant_p, process_invariant_for_inheritance): New.
(inherit_in_ebb): Implement invariant inheritance.
(lra_inheritance): Initialize and finalize invalid_invariant_regs.
(remove_inheritance_pseudos): Implement undoing invariant
inheritance.
(undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
instead of restore_regno.
* lra-assigns.c (regno_live_length): New.
(reload_pseudo_compare_func): Use regno_live_length.
(assign_by_spills): Use restore_rtx instead of restore_regno.
(lra_assign): Ditto.  Initiate regno_live_length.

From-SVN: r238991

8 years ago* fixinc.in: Use --parents option to make LIB directory.
Muhammad Bilal [Tue, 2 Aug 2016 15:58:06 +0000 (15:58 +0000)]
* fixinc.in: Use --parents option to make LIB directory.

From-SVN: r238990

8 years ago[Patch AArch64 Obvious] Fix Bootstrap for my mistake in r238977
James Greenhalgh [Tue, 2 Aug 2016 13:55:03 +0000 (13:55 +0000)]
[Patch AArch64 Obvious] Fix Bootstrap for my mistake in r238977

I deleted an 'f' halfway through a line when applying r238977. Not sure
how I managed it, but entirely my fault.

gcc/

* config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
__builtin_aarch64_fmindf.

From-SVN: r238989

8 years agoSkip C tests if test flags include C++ options
Jonathan Wakely [Tue, 2 Aug 2016 13:32:26 +0000 (14:32 +0100)]
Skip C tests if test flags include C++ options

* testsuite/18_support/bad_exception/23591_thread-1.c: Skip test if
options are present that aren't valid for C.
* testsuite/abi/header_cxxabi.c: Likewise.

From-SVN: r238988

8 years agoTest TR1 special functions without adding them to std
Jonathan Wakely [Tue, 2 Aug 2016 13:32:21 +0000 (14:32 +0100)]
Test TR1 special functions without adding them to std

* testsuite/tr1/5_numerical_facilities/special_functions/16_hermite/
check_value.cc: Do not add special functions to namespace std in TR1
test.

From-SVN: r238987

8 years agoOnly run math special function tests for C++11 and later
Jonathan Wakely [Tue, 2 Aug 2016 13:32:16 +0000 (14:32 +0100)]
Only run math special function tests for C++11 and later

* testsuite/ext/special_functions/conf_hyperg/check_nan.cc: Only
run for C++11 and later.
* testsuite/ext/special_functions/conf_hyperg/check_value.cc:
Likewise.
* testsuite/ext/special_functions/conf_hyperg/compile.cc: Likewise.
* testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise.
* testsuite/ext/special_functions/hyperg/check_value.cc: Likewise.
* testsuite/ext/special_functions/hyperg/compile.cc: Likewise.
* testsuite/special_functions/01_assoc_laguerre/check_nan.cc:
Likewise.
* testsuite/special_functions/01_assoc_laguerre/check_value.cc:
Likewise.
* testsuite/special_functions/01_assoc_laguerre/compile.cc: Likewise.
* testsuite/special_functions/01_assoc_laguerre/compile_2.cc:
Likewise.
* testsuite/special_functions/02_assoc_legendre/check_nan.cc:
Likewise.
* testsuite/special_functions/02_assoc_legendre/check_value.cc:
Likewise.
* testsuite/special_functions/02_assoc_legendre/compile.cc: Likewise.
* testsuite/special_functions/02_assoc_legendre/compile_2.cc:
* testsuite/special_functions/03_beta/check_nan.cc: Likewise.
* testsuite/special_functions/03_beta/check_value.cc: Likewise.
* testsuite/special_functions/03_beta/compile.cc: Likewise.
* testsuite/special_functions/03_beta/compile_2.cc: Likewise.
* testsuite/special_functions/04_comp_ellint_1/check_nan.cc: Likewise.
* testsuite/special_functions/04_comp_ellint_1/check_value.cc:
Likewise.
* testsuite/special_functions/04_comp_ellint_1/compile.cc: Likewise.
* testsuite/special_functions/04_comp_ellint_1/compile_2.cc: Likewise.
* testsuite/special_functions/05_comp_ellint_2/check_nan.cc: Likewise.
* testsuite/special_functions/05_comp_ellint_2/check_value.cc:
Likewise.
* testsuite/special_functions/05_comp_ellint_2/compile.cc: Likewise.
* testsuite/special_functions/05_comp_ellint_2/compile_2.cc: Likewise.
* testsuite/special_functions/06_comp_ellint_3/check_nan.cc: Likewise.
* testsuite/special_functions/06_comp_ellint_3/check_value.cc:
Likewise.
* testsuite/special_functions/06_comp_ellint_3/compile.cc: Likewise.
* testsuite/special_functions/06_comp_ellint_3/compile_2.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/check_value.cc:
Likewise.
* testsuite/special_functions/07_cyl_bessel_i/compile.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/compile_2.cc: Likewise.
* testsuite/special_functions/07_cyl_bessel_i/pr56216.cc: Likewise.
* testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: Likewise.
* testsuite/special_functions/08_cyl_bessel_j/check_value.cc:
Likewise.
* testsuite/special_functions/08_cyl_bessel_j/compile.cc: Likewise.
* testsuite/special_functions/08_cyl_bessel_j/compile_2.cc: Likewise.
* testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: Likewise.
* testsuite/special_functions/09_cyl_bessel_k/check_value.cc:
Likewise.
* testsuite/special_functions/09_cyl_bessel_k/compile.cc: Likewise.
* testsuite/special_functions/09_cyl_bessel_k/compile_2.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/check_nan.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/check_value.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/compile.cc: Likewise.
* testsuite/special_functions/10_cyl_neumann/compile_2.cc: Likewise.
* testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise.
* testsuite/special_functions/11_ellint_1/check_value.cc: Likewise.
* testsuite/special_functions/11_ellint_1/compile.cc: Likewise.
* testsuite/special_functions/11_ellint_1/compile_2.cc: Likewise.
* testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise.
* testsuite/special_functions/12_ellint_2/check_value.cc: Likewise.
* testsuite/special_functions/12_ellint_2/compile.cc: Likewise.
* testsuite/special_functions/12_ellint_2/compile_2.cc: Likewise.
* testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise.
* testsuite/special_functions/13_ellint_3/check_value.cc: Likewise.
* testsuite/special_functions/13_ellint_3/compile.cc: Likewise.
* testsuite/special_functions/13_ellint_3/compile_2.cc: Likewise.
* testsuite/special_functions/14_expint/check_nan.cc: Likewise.
* testsuite/special_functions/14_expint/check_value.cc: Likewise.
* testsuite/special_functions/14_expint/compile.cc: Likewise.
* testsuite/special_functions/14_expint/compile_2.cc: Likewise.
* testsuite/special_functions/15_hermite/check_nan.cc: Likewise.
* testsuite/special_functions/15_hermite/check_value.cc: Likewise.
* testsuite/special_functions/15_hermite/compile.cc: Likewise.
* testsuite/special_functions/15_hermite/compile_2.cc: Likewise.
* testsuite/special_functions/16_laguerre/check_nan.cc: Likewise.
* testsuite/special_functions/16_laguerre/check_value.cc: Likewise.
* testsuite/special_functions/16_laguerre/compile.cc: Likewise.
* testsuite/special_functions/16_laguerre/compile_2.cc: Likewise.
* testsuite/special_functions/17_legendre/check_nan.cc: Likewise.
* testsuite/special_functions/17_legendre/check_value.cc: Likewise.
* testsuite/special_functions/17_legendre/compile.cc: Likewise.
* testsuite/special_functions/17_legendre/compile_2.cc: Likewise.
* testsuite/special_functions/18_riemann_zeta/check_nan.cc: Likewise.
* testsuite/special_functions/18_riemann_zeta/check_value.cc:
Likewise.
* testsuite/special_functions/18_riemann_zeta/compile.cc: Likewise.
* testsuite/special_functions/18_riemann_zeta/compile_2.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/check_nan.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/check_value.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/compile.cc: Likewise.
* testsuite/special_functions/19_sph_bessel/compile_2.cc: Likewise.
* testsuite/special_functions/20_sph_legendre/check_nan.cc: Likewise.
* testsuite/special_functions/20_sph_legendre/check_value.cc:
Likewise.
* testsuite/special_functions/20_sph_legendre/compile.cc: Likewise.
* testsuite/special_functions/20_sph_legendre/compile_2.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/check_nan.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/check_value.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/compile.cc: Likewise.
* testsuite/special_functions/21_sph_neumann/compile_2.cc: Likewise.

From-SVN: r238986

8 years agoMake TR1 special function tests support C++98
Jonathan Wakely [Tue, 2 Aug 2016 13:32:02 +0000 (14:32 +0100)]
Make TR1 special function tests support C++98

* testsuite/tr1/5_numerical_facilities/special_functions/
08_cyl_bessel_i/check_value.cc: Use __attribute__((unused)) instead
of [[gnu::unused]].
* testsuite/tr1/5_numerical_facilities/special_functions/
09_cyl_bessel_j/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
10_cyl_bessel_k/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
11_cyl_neumann/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
21_sph_bessel/check_value.cc: Likewise.
* testsuite/tr1/5_numerical_facilities/special_functions/
23_sph_neumann/check_value.cc: Likewise.

From-SVN: r238985

8 years agoUpdate Solaris baselines
Rainer Orth [Tue, 2 Aug 2016 11:18:44 +0000 (11:18 +0000)]
Update Solaris baselines

* config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate.
* config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
* config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
* config/abi/post/solaris2.11/baseline_symbols.txt: Likewise.
* config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise.
* config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise.

From-SVN: r238984

8 years agore PR tree-optimization/34114 (Missed optimization: cannot determine loop termination)
Bin Cheng [Tue, 2 Aug 2016 10:13:28 +0000 (10:13 +0000)]
re PR tree-optimization/34114 (Missed optimization: cannot determine loop termination)

PR tree-optimization/34114
* tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
information for more control IVs.

gcc/testsuite
PR tree-optimization/34114
* gcc.dg/tree-ssa/loop-42.c: New test.

From-SVN: r238983

8 years agore PR tree-optimization/34114 (Missed optimization: cannot determine loop termination)
Bin Cheng [Tue, 2 Aug 2016 10:09:33 +0000 (10:09 +0000)]
re PR tree-optimization/34114 (Missed optimization: cannot determine loop termination)

PR tree-optimization/34114
* fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
PLUS_EXPR case.  Handle SSA_NAME case.

From-SVN: r238982

8 years agoSkip scan-assembler test when -flto is used
Jonathan Wakely [Tue, 2 Aug 2016 10:02:25 +0000 (11:02 +0100)]
Skip scan-assembler test when -flto is used

* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: Skip
test if -flto used.

From-SVN: r238981

8 years agoSupport using -flto with libstdc++ testsuite
Jonathan Wakely [Tue, 2 Aug 2016 09:40:50 +0000 (10:40 +0100)]
Support using -flto with libstdc++ testsuite

* testsuite/lib/libstdc++.exp (v3-build_support): Add -fno-lto to
additional flags for compiling libtestc++.a objects.

From-SVN: r238978

8 years ago[PATCH AArch64] Add more AArch64 NEON intrinsics
Tamar Christina [Tue, 2 Aug 2016 09:25:19 +0000 (09:25 +0000)]
[PATCH AArch64] Add more AArch64 NEON intrinsics

Add vmaxnm_f64, vminnm_f64, vmax_f64, vmin_f64.

Committed on behalf of Tamar Christina <tamar.christina@arm.com> .

gcc/

* config/aarch64/aarch64-simd-builtins.def
(__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
(__builtin_aarch64_fmaxdf): Likewise.
(__builtin_aarch64_smin_nandf): Likewise.
(__builtin_aarch64_smax_nandf): Likewise.
* config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
* config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
(<fmaxmin><mode>3): ...this.
* config/aarch64/arm_neon.h (vmaxnm_f64): New.
(vminnm_f64): Likewise.
(vmin_f64): Likewise.
(vmax_f64): Likewise.
* config/aarch64/iterators.md (FMAXMIN): Merge with...
(FMAXMIN_UNS): ...this.
(fmaxmin): Merged with
(fmaxmin_op): ...this...
(maxmin_uns_op): ...in to this.

gcc/testsuite/

* gcc.target/aarch64/vminmaxnm.c: New.
* gcc.target/aarch64/simd/vminmaxnm_1.c (main): Added float64x1_t
tests.

From-SVN: r238977

8 years agoDaily bump.
GCC Administrator [Tue, 2 Aug 2016 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238976

8 years agors6000-c.c (altivec_resolve_overloaded_builtin): Add support for vec_extract on vecto...
Michael Meissner [Mon, 1 Aug 2016 23:27:38 +0000 (23:27 +0000)]
rs6000-c.c (altivec_resolve_overloaded_builtin): Add support for vec_extract on vector float...

[gcc]
2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
Add support for vec_extract on vector float, vector int, vector
short, and vector char vector types.
* config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
vector float, vector int, vector short, and vector char
optimizations on 64-bit ISA 2.07 systems for both constant and
variable element numbers.
(rs6000_split_vec_extract_var): Likewise.
* config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
Altivec registers on ISA 2.07 and above.
(vsx_extract_v4sf): Delete alternative that hard coded element 0,
which never was matched due to the split occuring before register
allocation (and the code would not have worked on little endian
systems if it did match).  Allow extracts to go to the Altivec
registers if ISA 2.07 (power8).  Change from using "" around the
C++ code to using {}'s.
(vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
vec_extracts when the vector is in memory.
(vsx_extract_v4sf_var): New insn to optimize vector float
vec_extracts when the element number is variable on 64-bit ISA
2.07 systems.
(vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
for 64-bit ISA 2.07 as well as ISA 3.0.
(vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
(vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
(vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
optimize vector int, vector short, and vector char vec_extracts
when the vector is in memory.
(vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
optimize vector int, vector short, and vector char vec_extracts
when the element number is variable.

[gcc/testsuite]
2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/vec-extract-5.c: New tests to test
vec_extract for vector float, vector int, vector short, and vector
char.
* gcc.target/powerpc/vec-extract-6.c: Likewise.
* gcc.target/powerpc/vec-extract-7.c: Likewise.
* gcc.target/powerpc/vec-extract-8.c: Likewise.
* gcc.target/powerpc/vec-extract-9.c: Likewise.

From-SVN: r238971

8 years agoWarn about mangled name change even if DECL_REALLY_EXTERN.
Jason Merrill [Mon, 1 Aug 2016 20:20:17 +0000 (16:20 -0400)]
Warn about mangled name change even if DECL_REALLY_EXTERN.

* mangle.c (mangle_decl): Warn about mangled name change even if
DECL_REALLY_EXTERN.

From-SVN: r238966

8 years agomangle.c (get_abi_tags): New.
Jason Merrill [Mon, 1 Aug 2016 20:20:12 +0000 (16:20 -0400)]
mangle.c (get_abi_tags): New.

* mangle.c (get_abi_tags): New.

(find_substitution, write_unqualified_name, write_abi_tags)
(maybe_check_abi_tags): Use it.

From-SVN: r238965

8 years ago* mangle.c (mangle_decl): Fix mangled name change warning.
Jason Merrill [Mon, 1 Aug 2016 20:19:34 +0000 (16:19 -0400)]
* mangle.c (mangle_decl): Fix mangled name change warning.

From-SVN: r238964

8 years agoAdd non-const std::basic_string::data() for C++17
Jonathan Wakely [Mon, 1 Aug 2016 20:12:58 +0000 (21:12 +0100)]
Add non-const std::basic_string::data() for C++17

* include/bits/basic_string.h (data() const): Update comment.
(data()): Add non-const overload for C++17.
* testsuite/21_strings/basic_string/operations/data/char/2.cc: New.
* testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: New.

From-SVN: r238963

8 years agore PR target/71948 ([avr] Make progmem work on reduced Tiny cores by adding 0x4000...
Georg-Johann Lay [Mon, 1 Aug 2016 17:12:32 +0000 (17:12 +0000)]
re PR target/71948 ([avr] Make progmem work on reduced Tiny cores by adding 0x4000 to symbols)

PR target/71948
* config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
does not overlap with other symbol flags.

From-SVN: r238961

8 years agoThis patch optimizes the prolog and epilog code to reduce the number of instructions...
Wilco Dijkstra [Mon, 1 Aug 2016 16:37:24 +0000 (16:37 +0000)]
This patch optimizes the prolog and epilog code to reduce the number of instructions and avoid multiple writes to SP.

This patch optimizes the prolog and epilog code to reduce the number of
instructions and avoid multiple writes to SP.  The key idea is that epilogs
are almost exact reverses of prologs, and thus all the decisions only need
to be taken once.  The frame layout is decided in aarch64_layout_frame()
and decisions recorded in the new aarch64_frame fields initial_adjust,
callee_adjust, callee_offset and final_adjust.

A generic frame setup consists of 5 basic steps:

1. sub sp, sp, initial_adjust
2. stp reg1, reg2, [sp, -callee_adjust]!      (push if callee_adjust != 0)
3. add fp, sp, callee_offset                  (if frame_pointer_needed)
4. stp reg3, reg4, [sp, callee_offset + N*16] (store remaining callee-saves)
5. sub sp, sp, final_adjust

The epilog reverses this, and may omit step 3 if alloca wasn't used.

    gcc/
* config/aarch64/aarch64.h (aarch64_frame):
Remove padding0 and hardfp_offset.  Add locals_offset,
initial_adjust, callee_adjust, callee_offset and final_adjust.
* config/aarch64/aarch64.c (aarch64_layout_frame):
Remove unused padding0 and hardfp_offset initializations.
Choose frame layout and set frame variables accordingly.
Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
(aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
(aarch64_pop_regs): Likewise.
(aarch64_expand_prologue): Remove all decision code, just emit
prolog according to frame variables.
(aarch64_expand_epilogue): Remove all decision code, just emit
epilog according to frame variables.
(aarch64_initial_elimination_offset): Use offset to local/arg area.

    testsuite/
* gcc.target/aarch64/test_frame_10.c: Fix test to check for a
single stack adjustment, no writeback.
* gcc.target/aarch64/test_frame_12.c: Likewise.
* gcc.target/aarch64/test_frame_13.c: Likewise.
* gcc.target/aarch64/test_frame_15.c: Likewise.
* gcc.target/aarch64/test_frame_6.c: Likewise.
* gcc.target/aarch64/test_frame_7.c: Likewise.
* gcc.target/aarch64/test_frame_8.c: Likewise.
* gcc.target/aarch64/test_frame_16.c: New test.

From-SVN: r238960

8 years agoDisable std::string and std::wstring extern templates for C++17
Jonathan Wakely [Mon, 1 Aug 2016 16:06:03 +0000 (17:06 +0100)]
Disable std::string and std::wstring extern templates for C++17

* include/bits/basic_string.tcc: Disable explicit instantiation
declarations for C++17.

From-SVN: r238959

8 years agoPR c++/72766 - ICE with VLA
Jason Merrill [Mon, 1 Aug 2016 15:01:03 +0000 (11:01 -0400)]
PR c++/72766 - ICE with VLA

* constexpr.c (cxx_eval_pointer_plus_expression): Check constancy
of nelts.
* cp-gimplify.c (cp_fully_fold): Only maybe_constant_value in
C++11 and up.

From-SVN: r238957

8 years agoConvert V1TImode register to TImode in debug insn
H.J. Lu [Mon, 1 Aug 2016 14:46:01 +0000 (14:46 +0000)]
Convert V1TImode register to TImode in debug insn

TImode register referenced in debug insn can be converted to V1TImode by
scalar to vector optimization.  When converting a TImode store to V1TImode,
we need to check all debug insns on its use chain to convert the V1TImode
register to SUBREG TImode if source register is undefined.

gcc/

PR target/72748
* config/i386/i386.c (timode_scalar_chain::convert_insn): Call
fix_debug_reg_uses after changing source register mode to
V1TImode if source register is undefined.

gcc/testsuite/

PR target/72748
* gcc.target/i386/pr72748.c: New test.

From-SVN: r238956

8 years agore PR tree-optimization/71818 (ICE in as_a, at is-a.h:192 w/ -O2 -ftree-vectorize)
Alan Hayward [Mon, 1 Aug 2016 14:33:23 +0000 (14:33 +0000)]
re PR tree-optimization/71818 (ICE in as_a, at is-a.h:192 w/ -O2 -ftree-vectorize)

2016-08-01  Alan Hayward  <alan.hayward@arm.com>

gcc/
PR tree-optimization/71818
* tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
with non invariant evolutions

testsuite/
PR tree-optimization/71818
* gcc.dg/vect/pr71818.c: New

From-SVN: r238955

8 years agoRemove ignored "xfail" from dg-do compile directives
Jonathan Wakely [Mon, 1 Aug 2016 14:13:06 +0000 (15:13 +0100)]
Remove ignored "xfail" from dg-do compile directives

* testsuite/23_containers/unordered_map/requirements/53339.cc: Remove
ignored "xfail" from { dg-do compile { xfail selector } } directive.
* testsuite/23_containers/unordered_multimap/requirements/53339.cc:
Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++11.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c++98.cc: Likewise.
* testsuite/26_numerics/headers/cmath/
c99_classification_macros_c.cc: Likewise.

From-SVN: r238954

8 years agoChange dump expectation in PR71857
Martin Liska [Mon, 1 Aug 2016 13:31:24 +0000 (15:31 +0200)]
Change dump expectation in PR71857

PR tree-optimization/71857
* gcc.dg/tree-ssa/ivopt_mult_4.c: Change expectation.

From-SVN: r238953

8 years agoFix __gnu_cxx::hash_set test to pass in C++98 mode
Jonathan Wakely [Mon, 1 Aug 2016 12:45:47 +0000 (13:45 +0100)]
Fix __gnu_cxx::hash_set test to pass in C++98 mode

* testsuite/backward/hash_set/check_construct_destroy.cc: Account
for different construct/destroy counts in C++98 mode.

From-SVN: r238952

8 years ago* include/cpplib.h: Fix comment typo.
Andreas Schwab [Mon, 1 Aug 2016 12:45:32 +0000 (12:45 +0000)]
* include/cpplib.h: Fix comment typo.

From-SVN: r238951

8 years agore PR target/72767 ([avr] Some branches report too small insn length)
Georg-Johann Lay [Mon, 1 Aug 2016 12:36:11 +0000 (12:36 +0000)]
re PR target/72767 ([avr] Some branches report too small insn length)

PR target/72767
* config/avr/avr.md (length) [branch]: Correct insn length
attribute for forward branches.

From-SVN: r238948

8 years agoextend.texi (AVR Built-in Functions): Document __builtin_avr_nops.
Georg-Johann Lay [Mon, 1 Aug 2016 12:23:17 +0000 (12:23 +0000)]
extend.texi (AVR Built-in Functions): Document __builtin_avr_nops.

* doc/extend.texi (AVR Built-in Functions): Document
__builtin_avr_nops.
* config/avr/builtins.def (NOPS): New.
* config/avr/avr.c (avr_expand_nops): New static function.
(avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.

From-SVN: r238947

8 years agoRemove "-x c" from dg-options in libstdc++ C++ test
Jonathan Wakely [Mon, 1 Aug 2016 12:18:23 +0000 (13:18 +0100)]
Remove "-x c" from dg-options in libstdc++ C++ test

* testsuite/17_intro/freestanding.cc: Remove "-x c" from dg-options.

From-SVN: r238946

8 years agoLimit std::tuple tests to run for C++11 and later
Jonathan Wakely [Mon, 1 Aug 2016 12:18:18 +0000 (13:18 +0100)]
Limit std::tuple tests to run for C++11 and later

* testsuite/20_util/tuple/cons/66338.cc: Limit test to C++11 and
later.
* testsuite/20_util/tuple/cons/element_accepts_anything_byval.cc:
Likewise.

From-SVN: r238945

8 years agoMake libstdc++ debug mode test valid for C++98
Jonathan Wakely [Mon, 1 Aug 2016 12:18:13 +0000 (13:18 +0100)]
Make libstdc++ debug mode test valid for C++98

* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: Use
C++98-compatible initialization for array.

From-SVN: r238944

8 years agoRemove unused headers and variables from libstdc++ tests
Jonathan Wakely [Mon, 1 Aug 2016 12:18:08 +0000 (13:18 +0100)]
Remove unused headers and variables from libstdc++ tests

* testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: Remove
unused header and variable from compile-only test.
* testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: Likewise.
* testsuite/28_regex/basic_regex/assign/char/cstring.cc: Likewise.
* testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc: Likewise.
* testsuite/experimental/memory/shared_ptr/cons/copy_ctor_neg.cc:
Likewise.

From-SVN: r238943

8 years agoRemove duplicate dg-options directive in string_view test
Jonathan Wakely [Mon, 1 Aug 2016 12:17:59 +0000 (13:17 +0100)]
Remove duplicate dg-options directive in string_view test

* testsuite/experimental/string_view/operations/rfind/char/2.cc:
Remove duplicate dg-options directive.

From-SVN: r238942

8 years agoUse -std=gnu++98 instead of -std=gnu++03 in test
Jonathan Wakely [Mon, 1 Aug 2016 12:17:54 +0000 (13:17 +0100)]
Use -std=gnu++98 instead of -std=gnu++03 in test

* testsuite/20_util/specialized_algorithms/uninitialized_copy/
808590.cc: Use -std=gnu++98 instead of -std=gnu++03.

From-SVN: r238941

8 years agoRemove linker options from compile-only tests
Jonathan Wakely [Mon, 1 Aug 2016 12:17:49 +0000 (13:17 +0100)]
Remove linker options from compile-only tests

* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Remove
linker options from compile-only tests.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc:
Likewise.

From-SVN: r238940

8 years agoRun std::ios_base enum tests for C++11 and up
Jonathan Wakely [Mon, 1 Aug 2016 12:17:43 +0000 (13:17 +0100)]
Run std::ios_base enum tests for C++11 and up

* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Make test
supported for C++11 and later.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.

From-SVN: r238939

8 years ago[AArch64] Allow multiple-of-8 immediate offsets for TImode LDP/STP
Kyrylo Tkachov [Mon, 1 Aug 2016 10:20:03 +0000 (10:20 +0000)]
[AArch64] Allow multiple-of-8 immediate offsets for TImode LDP/STP

        * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
        performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
        addresses.

        * gcc.target/aarch64/ldp_stp_unaligned_1.c: New test.

From-SVN: r238938

8 years agoaarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size.
Virendra Pathak [Mon, 1 Aug 2016 10:17:08 +0000 (10:17 +0000)]
aarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size.

2016-08-01  Virendra Pathak  <virendra.pathak@broadcom.com>

* config/aarch64/aarch64.c (vulcan_tunings): Update
vulcan L1 cache_line_size.

From-SVN: r238937

8 years agoextend shift count warnings to vector types
Jan Beulich [Mon, 1 Aug 2016 09:39:52 +0000 (09:39 +0000)]
extend shift count warnings to vector types

gcc/c/
2016-08-01  Jan Beulich  <jbeulich@suse.com>

* c-fold.c (c_fully_fold_internal): Also emit shift count
warnings for vector types.
* c-typeck.c (build_binary_op): Likewise.

gcc/testsuite/
2016-08-01  Jan Beulich  <jbeulich@suse.com>

* gcc.dg/vshift-6.c, gcc.dg/vshift-7.c: New.

From-SVN: r238936

8 years agobaseline_symbols.txt: Update.
Uros Bizjak [Mon, 1 Aug 2016 07:35:22 +0000 (09:35 +0200)]
baseline_symbols.txt: Update.

* config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update.

From-SVN: r238934

8 years agoDaily bump.
GCC Administrator [Mon, 1 Aug 2016 00:16:15 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r238933

8 years agoChange std::conditional test to compile-only
Jonathan Wakely [Sun, 31 Jul 2016 19:37:14 +0000 (20:37 +0100)]
Change std::conditional test to compile-only

* testsuite/20_util/conditional/requirements/typedefs.cc: Change to
compile-only test.

From-SVN: r238930

8 years agoEnsure std::atomic test is compiled with optimization
Jonathan Wakely [Sun, 31 Jul 2016 19:30:16 +0000 (20:30 +0100)]
Ensure std::atomic test is compiled with optimization

* testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc:
Ensure test is compiled with optimization.

From-SVN: r238929

8 years agoFix DR 438 std::list test to pass in C++98 mode
Jonathan Wakely [Sun, 31 Jul 2016 19:21:59 +0000 (20:21 +0100)]
Fix DR 438 std::list test to pass in C++98 mode

* testsuite/23_containers/list/requirements/dr438/insert_neg.cc:
Adjust dg-prune-output pattern for error in C++98 mode.

From-SVN: r238928