gcc.git
7 years agos-vxwext__kernel-smp.adb, [...]: New file.
Arnaud Charlet [Wed, 13 Sep 2017 10:28:52 +0000 (10:28 +0000)]
s-vxwext__kernel-smp.adb, [...]: New file.

* libgnarl/s-vxwext__kernel-smp.adb,
libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-vxwext__noints.adb:
New file.

From-SVN: r252075

7 years ago[testsuite/ARM] Fix coprocessor intrinsic test failures on ARMv8-A
Thomas Preud'homme [Wed, 13 Sep 2017 10:27:00 +0000 (10:27 +0000)]
[testsuite/ARM] Fix coprocessor intrinsic test failures on ARMv8-A

Coprocessor intrinsic tests in gcc.target/arm/acle test whether
__ARM_FEATURE_COPROC has the right bit defined before calling the
intrinsic. This allows to test both the correct setting of that macro
and the availability and correct working of the intrinsic. However the
__ARM_FEATURE_COPROC macro is no longer defined for ARMv8-A since
r249399.

This patch changes the testcases to skip that test for ARMv8-A and
ARMv8-R targets.  It also fixes some irregularity in the coprocessor
effective targets:
- add ldcl and stcl to the list of instructions listed as guarded by
  arm_coproc1_ok
- enable tests guarded by arm_coproc2_ok, arm_coproc3_ok and
  arm_coproc4_ok for Thumb-2 capable targets but disable for Thumb-1
  targets.

2017-09-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/testsuite/
    * gcc.target/arm/acle/cdp.c: Skip __ARM_FEATURE_COPROC check for
    ARMv8-A and ARMv8-R.
    * gcc.target/arm/acle/cdp2.c: Likewise.
    * gcc.target/arm/acle/ldc.c: Likewise.
    * gcc.target/arm/acle/ldc2.c: Likewise.
    * gcc.target/arm/acle/ldc2l.c: Likewise.
    * gcc.target/arm/acle/ldcl.c: Likewise.
    * gcc.target/arm/acle/mcr.c: Likewise.
    * gcc.target/arm/acle/mcr2.c: Likewise.
    * gcc.target/arm/acle/mcrr.c: Likewise.
    * gcc.target/arm/acle/mcrr2.c: Likewise.
    * gcc.target/arm/acle/mrc.c: Likewise.
    * gcc.target/arm/acle/mrc2.c: Likewise.
    * gcc.target/arm/acle/mrrc.c: Likewise.
    * gcc.target/arm/acle/mrrc2.c: Likewise.
    * gcc.target/arm/acle/stc.c: Likewise.
    * gcc.target/arm/acle/stc2.c: Likewise.
    * gcc.target/arm/acle/stc2l.c: Likewise.
    * gcc.target/arm/acle/stcl.c: Likewise.
    * lib/target-supports.exp:
    (check_effective_target_arm_coproc1_ok_nocache): Mention ldcl
    and stcl in the comment.
    (check_effective_target_arm_coproc2_ok_nocache): Allow Thumb-2 targets
    and disable Thumb-1 targets.
    (check_effective_target_arm_coproc3_ok_nocache): Likewise.
    (check_effective_target_arm_coproc4_ok_nocache): Likewise.

Acked-by: Kyrill Tkachov <kyrylo.tkachov@foss.arm.com>
From-SVN: r252074

7 years agoFix broken URLs in libstdc++ API docs
Jonathan Wakely [Wed, 13 Sep 2017 10:17:44 +0000 (11:17 +0100)]
Fix broken URLs in libstdc++ API docs

* doc/doxygen/mainpage.html: Fix broken URLs.

From-SVN: r252070

7 years agoPR libstdc++/81835 fix broken URLs in libstdc++ docs
Jonathan Wakely [Wed, 13 Sep 2017 10:05:59 +0000 (11:05 +0100)]
PR libstdc++/81835 fix broken URLs in libstdc++ docs

PR libstdc++/81835
* doc/xml/manual/extensions.xml: Replace unstable URL.
* doc/html/manual/ext_demangling.html: Regenerate.
* libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL.

From-SVN: r252066

7 years ago[multiple changes]
Pierre-Marie de Rodat [Wed, 13 Sep 2017 09:53:05 +0000 (09:53 +0000)]
[multiple changes]

2017-09-13  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb: Flag42 is now Is_Controlled_Active.
(Is_Controlled): This attribute is now synthesized.
(Is_Controlled_Active): This attribute is now an explicit flag rather
than a synthesized attribute. (Set_Is_Controlled): Removed.
(Set_Is_Controlled_Active): New routine.
(Write_Entity_Flags): Update the output for Flag42.
* einfo.ads: Update the documentation of the following attributes:
Disable_Controlled, Is_Controlled, Is_Controlled_Active, Is_Controlled
and Is_Controlled_Active have swapped their functionality.
(Is_Controlled): Renamed to Is_Controlled_Active.
(Is_Controlled_Active): Renamed to Is_Controlled.
(Set_Is_Controlled): Renamed to Set_Is_Controlled_Active.
* exp_ch3.adb (Expand_Freeze_Record_Type): Restore the original use of
Is_Controlled.
* exp_util.adb (Has_Some_Controlled_Component): Code clean up.
(Needs_Finalization): Code clean up. Remove the tests for
Disable_Controlled because a) they were incorrect as they would reject
a type which is sublect to the aspect, but may contain controlled
components, and b) they are no longer necessary.
* exp_util.ads (Needs_Finalization): Update comment on documentation.
* freeze.adb (Freeze_Array_Type): Restore the original use of
Is_Controlled.
(Freeze_Record_Type): Restore the original use of Is_Controlled.
* sem_ch3.adb (Analyze_Object_Declaration): Restore the original use of
Is_Controlled.
(Array_Type_Declaration): Restore the original use of Is_Controlled.
(Build_Derived_Private_Type): Restore the original use of
Is_Controlled.
(Build_Derived_Record_Type): Set the Is_Controlled_Active flag of a
type derived from Ada.Finalization.[Limited_]Controlled.
(Build_Derived_Type): Restore the original use of Is_Controlled.
(Record_Type_Definition): Restore the original use of Is_Controlled.
* sem_ch7.adb (Preserve_Full_Attributes): Restore the original use of
Is_Controlled.
* sem_ch13.adb (Analyze_Aspect_Disable_Controlled): New routine.
(Analyze_Aspect_Specifications): Use routine
Analyze_Aspect_Disable_Controlled to process aspect Disable_Controlled.

2017-09-13  Vincent Celier  <celier@adacore.com>

* clean.adb (Gnatclean): Fix error when looking for target
of <target>-gnatclean

2017-09-13  Javier Miranda  <miranda@adacore.com>
            Ed Schonberg  <schonberg@adacore.com>

* sem_ch8.adb (Find_Expanded_Name): Complete code that identifies an
expanded name that designates the current instance of a child unit in
its own body and appears as the prefix of a reference to an entity
local to the child unit.

From-SVN: r252065

7 years agore PR c++/47226 ([C++0x] GCC doesn't expand template parameter pack that appears...
Paolo Carlini [Wed, 13 Sep 2017 09:47:11 +0000 (09:47 +0000)]
re PR c++/47226 ([C++0x] GCC doesn't expand template parameter pack that appears in a lambda-expression)

2017-09-13  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/47226
* g++.dg/cpp0x/lambda/lambda-variadic4.C: New.
* g++.dg/cpp0x/lambda/lambda-variadic5.C: Likewise.

From-SVN: r252064

7 years agodwarf2out.c (output_die_symbol): Remove.
Richard Biener [Wed, 13 Sep 2017 09:01:42 +0000 (09:01 +0000)]
dwarf2out.c (output_die_symbol): Remove.

2017-09-13  Richard Biener  <rguenther@suse.de>

* dwarf2out.c (output_die_symbol): Remove.
(output_die): Do not output a DIEs symbol.

From-SVN: r252063

7 years agore PR tree-optimization/82128 (ICE on valid code)
Richard Biener [Wed, 13 Sep 2017 08:13:03 +0000 (08:13 +0000)]
re PR tree-optimization/82128 (ICE on valid code)

2017-09-13  Richard Biener  <rguenther@suse.de>

PR middle-end/82128
* gimple-fold.c (gimple_fold_call): Update SSA name in-place to
default-def to avoid breaking iterator update with the weird
interaction with cgraph_update_edges_for_call_stmt_node.

* g++.dg/pr82128.C: New testcase.

From-SVN: r252062

7 years agotree-cfg.c (verify_gimple_assign_binary): Add verification for WIDEN_SUM_EXPR...
Richard Biener [Wed, 13 Sep 2017 08:09:31 +0000 (08:09 +0000)]
tree-cfg.c (verify_gimple_assign_binary): Add verification for WIDEN_SUM_EXPR...

2017-09-13  Richard Biener  <rguenther@suse.de>

* tree-cfg.c (verify_gimple_assign_binary): Add verification
for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
(verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.

From-SVN: r252061

7 years agoMinor edits.
Arnaud Charlet [Wed, 13 Sep 2017 08:00:26 +0000 (10:00 +0200)]
Minor edits.

From-SVN: r252060

7 years agoRegenerate.
Arnaud Charlet [Wed, 13 Sep 2017 07:51:23 +0000 (09:51 +0200)]
Regenerate.

From-SVN: r252059

7 years agoMinor edits.
Arnaud Charlet [Wed, 13 Sep 2017 07:50:02 +0000 (09:50 +0200)]
Minor edits.

From-SVN: r252058

7 years agoRegenerate.
Arnaud Charlet [Wed, 13 Sep 2017 07:38:41 +0000 (09:38 +0200)]
Regenerate.

From-SVN: r252057

7 years agoMinor edits.
Arnaud Charlet [Wed, 13 Sep 2017 07:37:23 +0000 (09:37 +0200)]
Minor edits.

From-SVN: r252056

7 years agoDefine std::__to_address helper
Jonathan Wakely [Wed, 13 Sep 2017 07:27:40 +0000 (08:27 +0100)]
Define std::__to_address helper

* include/bits/allocated_ptr.h (__allocated_ptr::get): Use
__to_address.
(__allocated_ptr::_S_raw_ptr): Remove.
* include/bits/forward_list.h (_Fwd_list_base::_M_get_node): Use
__to_address.
* include/bits/hashtable_policy.h (_Hashtable_alloc): Likewise.
* include/bits/ptr_traits.h (__to_address): Define new function
template.
* include/bits/shared_ptr_base.h (__shared_ptr): Use __to_address.
(__shared_ptr::_S_raw_ptr): Remove.
* include/bits/stl_vector.h [__cplusplus >= 201103L]
(vector::_M_data_ptr): Use __to_address.
[__cplusplus < 201103L] (vector::_M_data_ptr): Don't dereference
possibly invalid pointers.
* include/ext/alloc_traits.h (__alloc_traits::construct)
(__alloc_traits::destroy): Use __to_address.

From-SVN: r252055

7 years agoNew file.
Arnaud Charlet [Wed, 13 Sep 2017 07:04:41 +0000 (09:04 +0200)]
New file.

From-SVN: r252054

7 years agopr63304_1.c: Remove-mno-fix-cortex-a53-843419.
Kugan Vivekanandarajah [Wed, 13 Sep 2017 01:28:43 +0000 (01:28 +0000)]
pr63304_1.c: Remove-mno-fix-cortex-a53-843419.

gcc/testsuite/ChangeLog:

2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>

* gcc.target/aarch64/pr63304_1.c: Remove-mno-fix-cortex-a53-843419.

gcc/ChangeLog:

2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>

* config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
Disable pc relative literal load irrespective of TARGET_FIX_ERR_A53_84341
for default.

From-SVN: r252053

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

From-SVN: r252051

7 years agosparc.c (output_return): Output the source location of the insn in the delay slot...
Eric Botcazou [Tue, 12 Sep 2017 20:24:35 +0000 (20:24 +0000)]
sparc.c (output_return): Output the source location of the insn in the delay slot, if any.

* config/sparc/sparc.c (output_return): Output the source location of
the insn in the delay slot, if any.
(output_sibcall): Likewise.

From-SVN: r252041

7 years agore PR c++/70621 (ICE on invalid code at -O1 and above on x86_64-linux-gnu in record_r...
Paolo Carlini [Tue, 12 Sep 2017 19:45:37 +0000 (19:45 +0000)]
re PR c++/70621 (ICE on invalid code at -O1 and above on x86_64-linux-gnu in record_reference, at cgraphbuild.c:64)

/cp
2017-09-12  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70621
* decl.c (start_decl): Early return error_mark_node if duplicate_decls
returns it; avoid misleading error message.

/testsuite
2017-09-12  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/70621
* g++.dg/torture/pr70621.C: New.

From-SVN: r252040

7 years agore PR fortran/82173 ([meta-bug] Parameterized derived type errors)
Paul Thomas [Tue, 12 Sep 2017 18:06:52 +0000 (18:06 +0000)]
re PR fortran/82173 ([meta-bug] Parameterized derived type errors)

2017-09-12  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82173
PR fortran/82168
* decl.c (variable_decl): Check pdt template components for
appearance of KIND/LEN components in the type parameter name
list, that components corresponding to type parameters have
either KIND or LEN attributes and that KIND or LEN components
are scalar. Copy the initializer to the parameter value.
(gfc_get_pdt_instance): Add a label 'error_return' and follow
it with repeated code, while replacing this code with a jump.
Check if a parameter appears as a component in the template.
Make sure that the parameter expressions are integer. Validate
KIND expressions.
(gfc_match_decl_type_spec): Search for pdt_types in the parent
namespace since they are instantiated in the template ns.
* expr.c (gfc_extract_int): Use a KIND parameter if it
appears as a component expression.
(gfc_check_init_expr): Allow expressions with the pdt_kind
attribute.
*primary.c (gfc_match_actual_arglist): Make sure that the first
keyword argument is recognised when 'pdt' is set.

2017-09-12  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/82173
* gfortran.dg/pdt_4.f03 : Remove the 'is being used before it
is defined' error.
* gfortran.dg/pdt_6.f03 : New test.
* gfortran.dg/pdt_7.f03 : New test.
* gfortran.dg/pdt_8.f03 : New test.

PR fortran/82168
* gfortran.dg/pdt_9.f03 : New test.

From-SVN: r252039

7 years agore PR other/81096 (test case ttest in libbacktrace fails starting with its introducti...
Steve Ellcey [Tue, 12 Sep 2017 17:00:00 +0000 (17:00 +0000)]
re PR other/81096 (test case ttest in libbacktrace fails starting with its introduction in r249111)

2017-09-12  Steve Ellcey  <sellcey@cavium.com>

PR other/81096
* Makefile.am (ttest_CFLAGS): Add $(AM_CFLAGS)
* Makefile.in: Regenerate.

From-SVN: r252038

7 years agoAdd DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c
Jiong Wang [Tue, 12 Sep 2017 16:39:59 +0000 (16:39 +0000)]
Add DW_CFA_AARCH64_negate_ra_state to dwarf2.def/h and dwarfnames.c

  A new vendor CFA DW_CFA_AARCH64_negate_ra_state was introduced for ARMv8.3-A
return address signing, it is multiplexing DW_CFA_GNU_window_save in CFA vendor
extension space.

  This patch adds necessary code to make it available to external, the GDB
patch (https://sourceware.org/ml/gdb-patches/2017-08/msg00215.html) is intended
to use it.

  A new DW_CFA_DUP for it is added in dwarf2.def.  The use of DW_CFA_DUP is to
avoid duplicated case value issue when included in libiberty/dwarfnames.

  Native x86 builds OK to make sure no macro expanding errors.

Committed on behalf of Jiong Wang.

    include/
* dwarf2.def (DW_CFA_AARCH64_negate_ra_state): New DW_CFA_DUP.
* dwarf2.h (DW_CFA_DUP): New define.

    libiberty/
* dwarfnames.c (DW_CFA_DUP): New define.

From-SVN: r252037

7 years agoDon't warn function alignment if warn_if_not_aligned_p is true
H.J. Lu [Tue, 12 Sep 2017 16:35:39 +0000 (16:35 +0000)]
Don't warn function alignment if warn_if_not_aligned_p is true

When warn_if_not_aligned_p is true, a warning will be issued on function
declaration later.  There is no need to warn function alignment when
warn_if_not_aligned_p is true.

* c-attribs.c (common_handle_aligned_attribute): Don't warn
function alignment if warn_if_not_aligned_p is true.

From-SVN: r252036

7 years agore PR other/81096 (test case ttest in libbacktrace fails starting with its introducti...
Steve Ellcey [Tue, 12 Sep 2017 16:33:31 +0000 (16:33 +0000)]
re PR other/81096 (test case ttest in libbacktrace fails starting with its introduction in r249111)

2017-09-12  Steve Ellcey  <sellcey@cavium.com>

PR other/81096
* libbacktrace/Makefile.in
(HAVE_PTHREAD_TRUE@@NATIVE_TRUE@ttest_CFLAGS): Add $(AM_CFLAGS)

From-SVN: r252035

7 years agoAdd -static-pie to GCC driver to create static PIE
H.J. Lu [Tue, 12 Sep 2017 16:30:28 +0000 (16:30 +0000)]
Add -static-pie to GCC driver to create static PIE

This patch adds -static-pie to GCC driver to create static PIE.  A static
position independent executable (PIE) is similar to static executable,
but can be loaded at any address without a dynamic linker.  All linker
input files must be compiled with -fpie or -fPIE and linker must support
--no-dynamic-linker to avoid linking with dynamic linker.  "-z text" is
also needed to prevent dynamic relocations in read-only segments.

PR driver/81498
* common.opt (-static-pie): New alias.
(shared): Negate static-pie.
(-no-pie): Update help text.
(-pie): Likewise.
(static-pie): New option.
* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
-static-pie support.
(GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
(LINK_EH_SPEC): Likewise.
(LINK_GCC_C_SEQUENCE_SPEC): Likewise.
* config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
* config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
* gcc.c (LINK_COMMAND_SPEC): Likewise.
(init_gcc_specs): Likewise.
(init_spec): Likewise.
(display_help): Update help message for -pie.
* doc/invoke.texi: Update -pie, -no-pie and -static.  Document
-static-pie.

From-SVN: r252034

7 years agoRemove '*' from movsi/di/ti patterns
Wilco Dijkstra [Tue, 12 Sep 2017 16:27:47 +0000 (16:27 +0000)]
Remove '*' from movsi/di/ti patterns

Remove the remaining uses of '*' from the movsi/di/ti patterns.
Using '*' in alternatives is typically incorrect at it tells the register
allocator to ignore those alternatives.  So remove these from all the
integer move patterns.  This removes unnecessary int to float moves, for
example gcc.target/aarch64/pr62178.c no longer generates a redundant fmov
since the w = m variant is now allowed.

    gcc/
* config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
(movdi_aarch64): Likewise.
(movti_aarch64): Likewise.

From-SVN: r252033

7 years agore PR target/80204 (macosx-version-min wrong for macOS Sierra 10.12.3)
Simon Wright [Tue, 12 Sep 2017 15:29:16 +0000 (15:29 +0000)]
re PR target/80204 (macosx-version-min wrong for macOS Sierra 10.12.3)

PR target/80204
* config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
calculation of the minor version, always output as 0.

From-SVN: r252029

7 years agore PR target/82112 (internal compiler error: in fold_convert_loc, at fold-const.c...
Jakub Jelinek [Tue, 12 Sep 2017 15:25:15 +0000 (17:25 +0200)]
re PR target/82112 (internal compiler error: in fold_convert_loc, at fold-const.c:2262)

PR target/82112
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
on it early, rather than manual conversion late.  For
ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
instead of performing manual conversion.

* gcc.target/powerpc/pr82112.c: New test.
* g++.dg/ext/altivec-18.C: New test.

From-SVN: r252028

7 years agoaltivec.md (vec_widen_umult_even_v4si, [...]): Add define expands for vmuleuw, vmules...
Carl Love [Tue, 12 Sep 2017 15:14:32 +0000 (15:14 +0000)]
altivec.md (vec_widen_umult_even_v4si, [...]): Add define expands for vmuleuw, vmulesw, vmulouw, vmulosw.

gcc/ChangeLog:

2017-09-12  Carl Love  <cel@us.ibm.com>

        * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
vmulouw, vmulosw.
        * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
        VMULOSW): Add definitions.
        * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
        ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
        ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
        * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
        builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.

From-SVN: r252027

7 years ago[Patch AArch64 2/2] Fix memory sizes to load/store patterns
James Greenhalgh [Tue, 12 Sep 2017 14:57:58 +0000 (14:57 +0000)]
[Patch AArch64 2/2] Fix memory sizes to load/store patterns

There seems to be a partial misconception in the AArch64 backend that
load1/load2 referred to the number of registers to load, rather than the
number of words to load. This patch fixes that using the new "number of
byte" types added in the previous patch.

That means using the load_16 and store_16 types that were defined in the
previous patch for the first time in the AArch64 backend. To ensure
continuity for scheduling models, I've just split this out from load_8.
Please update your models if this is very wrong!

---
gcc/

* config/aarch64/aarch64.md (movdi_aarch64): Set load/store
types correctly.
(movti_aarch64): Likewise.
(movdf_aarch64): Likewise.
(movtf_aarch64): Likewise.
(load_pairdi): Likewise.
(store_pairdi): Likewise.
(load_pairdf): Likewise.
(store_pairdf): Likewise.
(loadwb_pair<GPI:mode>_<P:mode>): Likewise.
(storewb_pair<GPI:mode>_<P:mode>): Likewise.
(ldr_got_small_<mode>): Likewise.
(ldr_got_small_28k_<mode>): Likewise.
(ldr_got_tiny): Likewise.
* config/aarch64/iterators.md (ldst_sz): New.
(ldpstp_sz): Likewise.
* config/aarch64/thunderx.md (thunderx_storepair): Split store_8
to store_16.
(thunderx_load): Split load_8 to load_16.
* config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
load_8 to load_16.
(thunderx2t99_storepair_basic): Split store_8 to store_16.
* config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
(xgene1_store_pair): Split store_8 to store_16.
* config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
(falkor_st_0_st_sd): Split store_8 to store_16.

From-SVN: r252026

7 years ago[Mechanical Patch ARM/AArch64 1/2] Rename load/store scheduling types to encode data...
James Greenhalgh [Tue, 12 Sep 2017 14:48:34 +0000 (14:48 +0000)]
[Mechanical Patch ARM/AArch64 1/2] Rename load/store scheduling types to encode data size

In the AArch64 backend and scheduling models there is some confusion as to
what the load1/load2 etc. scheduling types refer to. This leads to us using
load1/load2 in two contexts - for a variety of 32-bit, 64-bit and 128-bit
loads in AArch32 and 128-bit loads in AArch64. That leads to an undesirable
confusion in scheduling.

Fixing it is easy, but mechanical and boring. Essentially,

  s/load1/load_4/
  s/load2/load_8/
  s/load3/load_12/
  s/load4/load_16/
  s/store1/store_4/
  s/store2/store_8/
  s/store3/store_12/
  s/store4/store_16/

Across all sorts of pipeline models, and the two backends.

I have intentionally not modified any of the patterns which now look obviously
incorrect. I'll be doing a second pass over the AArch64 back-end in patch
2/2 which will fix these bugs.

---
gcc/

* config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
and store1/2/3/4 to store_4/8/12/16.
* config/aarch64/aarch64.md: Update for rename.
* config/arm/arm.md: Likewise.: Likewise.
* config/arm/arm.c: Likewise.
* config/arm/thumb1.md: Likewise.
* config/arm/thumb2.md: Likewise.
* config/arm/vfp.md: Likewise.
* config/arm/arm-generic.md: Likewise.
* config/arm/arm1020e.md: Likewise.
* config/arm/arm1026ejs.md: Likewise.
* config/arm/arm1136jfs.md: Likewise.
* config/arm/arm926ejs.md: Likewise.
* config/arm/cortex-a15.md: Likewise.
* config/arm/cortex-a17.md: Likewise.
* config/arm/cortex-a5.md: Likewise.
* config/arm/cortex-a53.md: Likewise.
* config/arm/cortex-a57.md: Likewise.
* config/arm/cortex-a7.md: Likewise.
* config/arm/cortex-a8.md: Likewise.
* config/arm/cortex-a9.md: Likewise.
* config/arm/cortex-m4.md: Likewise.
* config/arm/cortex-m7.md: Likewise.
* config/arm/cortex-r4.md: Likewise.
* config/arm/exynos-m1.md: Likewise.
* config/arm/fa526.md: Likewise.
* config/arm/fa606te.md: Likewise.
* config/arm/fa626te.md: Likewise.
* config/arm/fa726te.md: Likewise.
* config/arm/fmp626.md: Likewise.
* config/arm/iwmmxt.md: Likewise.
* config/arm/ldmstm.md: Likewise.
* config/arm/marvell-pj4.md: Likewise.
* config/arm/xgene1.md: Likewise.
* config/aarch64/thunderx.md: Likewise.
* config/aarch64/thunderx2t99.md: Likewise.
* config/aarch64/falkor.md: Likewise.

From-SVN: r252025

7 years agoFix GIMPLE FE test (PR testsuite/82114)
Martin Liska [Tue, 12 Sep 2017 14:32:39 +0000 (16:32 +0200)]
Fix GIMPLE FE test (PR testsuite/82114)

2017-09-12  Martin Liska  <mliska@suse.cz>

PR testsuite/82114
* gcc.dg/gimplefe-14.c (main): Add handling of case 0.

From-SVN: r252024

7 years agoc-common.c (field_decl_cmp, [...]): Move to c/c-decl.c.
Nathan Sidwell [Tue, 12 Sep 2017 14:25:17 +0000 (14:25 +0000)]
c-common.c (field_decl_cmp, [...]): Move to c/c-decl.c.

c-family/
* c-common.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
resort_sorted_fields): Move to c/c-decl.c.
* c-common.h (field_decl_cmp, resort_sorted_fields): Delete.
(struct sorted_fields_type): Move to c/c-lang.h.

c/
* c-decl.c (field_decl_cmp, resort_data, resort_field_decl_cmp,
resort_sorted_fields): Moved from c-family/c-common.c.
* c-lang.h (struct sorted_fields_type): Moved from c-family/c-common.h.

From-SVN: r252023

7 years agoReduce lookup_attribute memory footprint.
Martin Liska [Tue, 12 Sep 2017 14:24:29 +0000 (16:24 +0200)]
Reduce lookup_attribute memory footprint.

2017-09-12  Martin Liska  <mliska@suse.cz>

* attribs.c (private_lookup_attribute): New function.
* attribs.h (private_lookup_attribute): Declared here.
(lookup_attribute): Called from this place.

From-SVN: r252022

7 years agore PR tree-optimization/82157 (ICE on valid code at -O2 and -O3: cannot update SSA...
Richard Biener [Tue, 12 Sep 2017 14:15:37 +0000 (14:15 +0000)]
re PR tree-optimization/82157 (ICE on valid code at -O2 and -O3: cannot update SSA form)

2017-09-12  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82157
* tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
stmts with side-effects.

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

From-SVN: r252020

7 years agoPR libstdc++/79433 no #error for including TS headers with wrong -std
Jonathan Wakely [Tue, 12 Sep 2017 14:03:06 +0000 (15:03 +0100)]
PR libstdc++/79433 no #error for including TS headers with wrong -std

PR libstdc++/79433
* include/Makefile.am: Remove <bits/c++14_warning.h>.
* include/Makefile.in: Regenerate.
* include/bits/c++14_warning.h: Remove.
* include/experimental/algorithm: Do not include <c++14_warning.h>.
* include/experimental/any: Likewise.
* include/experimental/array: Likewise.
* include/experimental/bits/erase_if.h: Likewise.
* include/experimental/bits/lfts_config.h: Likewise.
* include/experimental/bits/shared_ptr.h: Likewise.
* include/experimental/bits/string_view.tcc: Likewise.
* include/experimental/chrono: Likewise.
* include/experimental/deque: Likewise.
* include/experimental/filesystem: Do not include <c++0x_warning.h>.
* include/experimental/forward_list: Do not include <c++14_warning.h>.
* include/experimental/functional: Likewise.
* include/experimental/iterator: Likewise.
* include/experimental/list: Likewise.
* include/experimental/map: Likewise.
* include/experimental/memory: Likewise.
* include/experimental/numeric: Likewise.
* include/experimental/optional: Likewise.
* include/experimental/propagate_const: Likewise.
* include/experimental/ratio: Likewise.
* include/experimental/regex: Likewise.
* include/experimental/set: Likewise.
* include/experimental/string: Likewise.
* include/experimental/string_view: Likewise.
* include/experimental/system_error: Likewise.
* include/experimental/tuple: Likewise.
* include/experimental/type_traits: Likewise.
* include/experimental/unordered_map: Likewise.
* include/experimental/unordered_set: Likewise.
* include/experimental/vector: Likewise.
* testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error
line number.
* testsuite/experimental/array/neg.cc: Likewise.
* testsuite/experimental/propagate_const/assignment/move_neg.cc:
Likewise.
* testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
* testsuite/experimental/propagate_const/requirements2.cc: Likewise.
* testsuite/experimental/propagate_const/requirements3.cc: Likewise.
* testsuite/experimental/propagate_const/requirements4.cc: Likewise.
* testsuite/experimental/propagate_const/requirements5.cc: Likewise.

From-SVN: r252019

7 years agoPR libstdc++/79433 no #error for including headers with wrong -std
Jonathan Wakely [Tue, 12 Sep 2017 14:02:59 +0000 (15:02 +0100)]
PR libstdc++/79433 no #error for including headers with wrong -std

PR libstdc++/79433
* doc/xml/manual/status_cxx2017.xml: Update feature-test macros.
* doc/html/*: Regenerate.
* include/Makefile.am: Remove <bits/c++17_warning.h>.
* include/Makefile.in: Regenerate.
* include/bits/c++17_warning.h: Remove.
* include/bits/string_view.tcc: Do not include <bits/c++17_warning.h>
for pre-C++17 modes.
* include/std/any: Likewise.
(__cpp_lib_any): Define.
* include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new
SD-6 draft.
* include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6
draft.
* include/std/optional: Do not include <bits/c++17_warning.h>.
(__cpp_lib_optional): Define.
* include/std/shared_mutex: Do not include <bits/c++14_warning.h>.
* include/std/string_view: Do not include <bits/c++17_warning.h>.
(__cpp_lib_string_view): Define.
* include/std/variant: Do not include <bits/c++17_warning.h>.
(__cpp_lib_variant): Define.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line
numbers.
* testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm.
* testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line
numbers.
* testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm.
* testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line
numbers.
* testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust
expected value of __cpp_lib_scoped_lock.

From-SVN: r252018

7 years agoPR libstdc++/70483 make std::experimental::string_view fully constexpr
Jonathan Wakely [Tue, 12 Sep 2017 13:31:20 +0000 (14:31 +0100)]
PR libstdc++/70483 make std::experimental::string_view fully constexpr

PR libstdc++/70483
* include/experimental/bits/string_view.tcc (basic_string_view::find)
(basic_string_view::rfind, basic_string_view::find_first_of)
(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of): Add constexpr specifier.
* include/experimental/string_view (basic_string_view::remove_prefix)
(basic_string_view::remove_suffix, basic_string_view::swap)
(basic_string_view::compare, basic_string_view::find)
(basic_string_view::rfind, basic_string_view::find_first_of)
(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of, operator==, operator!=)
(operator<, operator>, operator<=, operator>=): Likewise.
* testsuite/experimental/string_view/operations/compare/char/70483.cc:
New.

From-SVN: r252017

7 years agoTurn HARD_REGNO_NREGS into a target hook
Richard Sandiford [Tue, 12 Sep 2017 13:29:36 +0000 (13:29 +0000)]
Turn HARD_REGNO_NREGS into a target hook

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood <david.sherwood@arm.com>

gcc/
* target.def (hard_regno_nregs): New hook.
(class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
* targhooks.h (default_hard_regno_nregs): Declare.
* targhooks.c (default_hard_regno_nregs): New function.
* doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
(TARGET_HARD_REGNO_NREGS): ...this hook.
(HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
(CLASS_MAX_NREGS): Likewise.
* doc/tm.texi: Regenerate.
* reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
instead of HARD_REGNO_NREGS.
* rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
HARD_REGNO_NREGS in the comment.
* config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
* config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
* config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
Return an unsigned int.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
* config/arc/arc.h (HARD_REGNO_NREGS): Delete.
* config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
(arc_hard_regno_nregs): New function.
* config/arm/arm.h (HARD_REGNO_NREGS): Delete.
* config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
(arm_hard_regno_nregs): New function.
* config/avr/avr.h (HARD_REGNO_NREGS): Delete.
* config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
* config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
* config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
(HARD_REGNO_NREGS): Delete.
* config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
(cr16_hard_regno_nregs): New function.
(cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
* config/cris/cris.h (HARD_REGNO_NREGS): Delete.
* config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
(cris_hard_regno_nregs): New function.
* config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
* config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
(CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
* config/frv/frv.h (HARD_REGNO_NREGS): Delete.
(CLASS_MAX_NREGS): Remove outdated copy of documentation.
* config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
* config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
(frv_hard_regno_nregs): Make static.  Take and return an
unsigned int.
(frv_class_max_nregs): Remove outdated copy of documentation.
* config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
* config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
* config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
* config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
* config/i386/i386.h (HARD_REGNO_NREGS): Delete.
* config/i386/i386.c (ix86_hard_regno_nregs): New function.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
(CLASS_MAX_NREGS): Update comment.
* config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
(ia64_hard_regno_nregs): New function.
* config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
* config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
* config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
* config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
* config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
an unsigned int.
(m32c_hard_regno_nregs): Likewise.  Make static.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
* config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
* config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
(m68k_hard_regno_nregs): New function.
* config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
* config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
* config/mips/mips.h (HARD_REGNO_NREGS): Delete.
* config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
* config/mips/mips.c (mips_hard_regno_nregs): Make static.
Take and return an unsigned int.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
(CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
* config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
* config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
* config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
* config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
* config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
(msp430_hard_regno_nregs): Make static.  Take and return an
unsigned int.
* config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
* config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
* config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
(nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
* config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
* config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
* config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
(PA_HARD_REGNO_NREGS): ...this.
* config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
(PA_HARD_REGNO_NREGS): ...this.
* config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
(pa_hard_regno_nregs): New function.
* config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
* config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
(pdp11_hard_regno_nregs): New function.
* config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
* config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
(rs6000_hard_regno_nregs_hook): New function.
* config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
* config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
* config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
Take and return an unsigned int.  Move earlier in file.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
* config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
* config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
(rl78_hard_regno_nregs): Make static.  Take and return an
unsigned int.
* config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
* config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
(rs6000_hard_regno_nregs_hook): New function.
* config/rx/rx.h (HARD_REGNO_NREGS): Delete.
* config/rx/rx.c (rx_hard_regno_nregs): New function.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/s390/s390.h (HARD_REGNO_NREGS): Delete.
* config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
instead of HARD_REGNO_NREGS.
(s390_hard_regno_nregs): New function.
(s390_hard_regno_mode_ok): Add comment from s390.h.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/sh/sh.h (HARD_REGNO_NREGS): Delete.
* config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
(sh_hard_regno_nregs): New function.
(sh_pass_in_reg_p): Use it.
* config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
* config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
(sparc_hard_regno_nregs): New function.
* config/spu/spu.h (HARD_REGNO_NREGS): Delete.
* config/spu/spu.c (spu_hard_regno_nregs): New function.
(spu_function_arg_advance): Use it, supplying a valid register number.
(TARGET_HARD_REGNO_NREGS): Redefine.
* config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
* config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
* config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
* config/v850/v850.h (HARD_REGNO_NREGS): Delete.
* config/vax/vax.h (HARD_REGNO_NREGS): Delete.
* config/visium/visium.h (HARD_REGNO_NREGS): Delete.
(CLASS_MAX_NREGS): Remove copy of old documentation.
* config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
(visium_hard_regno_nregs): New function.
(visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
* config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
* config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
xtensa_hard_regno_nregs): New function.
* system.h (HARD_REGNO_NREGS): Poison.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r252016

7 years agoUse hard_regno_nregs instead of HARD_REGNO_NREGS
Richard Sandiford [Tue, 12 Sep 2017 13:29:18 +0000 (13:29 +0000)]
Use hard_regno_nregs instead of HARD_REGNO_NREGS

This patch converts some places that use HARD_REGNO_NREGS to use
hard_regno_nregs, in places where the initialisation has obviously
already taken place.

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
hard_regno_nregs instead of HARD_REGNO_NREGS.
(THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
* config/c6x/c6x.c (c6x_expand_prologue): Likewise.
(c6x_expand_epilogue): Likewise.
* config/frv/frv.c (frv_alloc_temp_reg): Likewise.
(frv_read_iacc_argument): Likewise.
* config/sh/sh.c: Include regs.h.
(sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
(regs_used): Likewise.
(output_stack_adjust): Likewise.
* config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
* expmed.c: Include regs.h.
(store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
* ree.c: Include regs.h.
(combine_reaching_defs): Use hard_regno_nregs instead of
HARD_REGNO_NREGS.
(add_removable_extension): Likewise.

From-SVN: r252015

7 years agoConvert hard_regno_nregs to a function
Richard Sandiford [Tue, 12 Sep 2017 13:29:05 +0000 (13:29 +0000)]
Convert hard_regno_nregs to a function

This patch converts hard_regno_nregs into an inline function, which
in turn allows hard_regno_nregs to be used as the name of a targetm
field.  This is just a mechanical change.

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* regs.h (hard_regno_nregs): Turn into a function.
(end_hard_regno): Update accordingly.
* caller-save.c (setup_save_areas): Likewise.
(save_call_clobbered_regs): Likewise.
(replace_reg_with_saved_mem): Likewise.
(insert_restore): Likewise.
(insert_save): Likewise.
* combine.c (can_change_dest_mode): Likewise.
(move_deaths): Likewise.
(distribute_notes): Likewise.
* config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
* config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
(rs6000_split_multireg_move): Likewise.
(rs6000_register_move_cost): Likewise.
(rs6000_memory_move_cost): Likewise.
* config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
(rs6000_split_multireg_move): Likewise.
(rs6000_register_move_cost): Likewise.
(rs6000_memory_move_cost): Likewise.
* cselib.c (cselib_reset_table): Likewise.
(cselib_lookup_1): Likewise.
* emit-rtl.c (set_mode_and_regno): Likewise.
* function.c (aggregate_value_p): Likewise.
* ira-color.c (setup_profitable_hard_regs): Likewise.
(check_hard_reg_p): Likewise.
(calculate_saved_nregs): Likewise.
(assign_hard_reg): Likewise.
(improve_allocation): Likewise.
(calculate_spill_cost): Likewise.
* ira-emit.c (modify_move_list): Likewise.
* ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
(ira_hard_reg_in_set_p): Likewise.
* ira.c (setup_reg_mode_hard_regset): Likewise.
(clarify_prohibited_class_mode_regs): Likewise.
(check_allocation): Likewise.
* lra-assigns.c (find_hard_regno_for_1): Likewise.
(lra_setup_reg_renumber): Likewise.
(setup_try_hard_regno_pseudos): Likewise.
(spill_for): Likewise.
(assign_hard_regno): Likewise.
(setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
* lra-constraints.c (in_class_p): Likewise.
(lra_constraint_offset): Likewise.
(simplify_operand_subreg): Likewise.
(lra_constraints): Likewise.
(split_reg): Likewise.
(split_if_necessary): Likewise.
(invariant_p): Likewise.
(inherit_in_ebb): Likewise.
* lra-lives.c (process_bb_lives): Likewise.
* lra-remat.c (reg_overlap_for_remat_p): Likewise.
(get_hard_regs): Likewise.
(do_remat): Likewise.
* lra-spills.c (assign_spill_hard_regs): Likewise.
* mode-switching.c (create_pre_exit): Likewise.
* postreload.c (reload_combine_recognize_pattern): Likewise.
* recog.c (peep2_find_free_register): Likewise.
* regcprop.c (kill_value_regno): Likewise.
(set_value_regno): Likewise.
(copy_value): Likewise.
(maybe_mode_change): Likewise.
(find_oldest_value_reg): Likewise.
(copyprop_hardreg_forward_1): Likewise.
* regrename.c (check_new_reg_p): Likewise.
(regrename_do_replace): Likewise.
* reload.c (push_reload): Likewise.
(combine_reloads): Likewise.
(find_dummy_reload): Likewise.
(operands_match_p): Likewise.
(find_reloads): Likewise.
(find_equiv_reg): Likewise.
(reload_adjust_reg_for_mode): Likewise.
* reload1.c (count_pseudo): Likewise.
(count_spilled_pseudo): Likewise.
(find_reg): Likewise.
(clear_reload_reg_in_use): Likewise.
(free_for_value_p): Likewise.
(allocate_reload_reg): Likewise.
(choose_reload_regs): Likewise.
(reload_adjust_reg_for_temp): Likewise.
(emit_reload_insns): Likewise.
(delete_output_reload): Likewise.
* rtlanal.c (subreg_get_info): Likewise.
* sched-deps.c (sched_analyze_reg): Likewise.
* sel-sched.c (init_regs_for_mode): Likewise.
(mark_unavailable_hard_regs): Likewise.
(choose_best_reg_1): Likewise.
(verify_target_availability): Likewise.
* valtrack.c (dead_debug_insert_temp): Likewise.
* var-tracking.c (track_loc_p): Likewise.
(emit_note_insn_var_location): Likewise.
* varasm.c (make_decl_rtl): Likewise.
* reginfo.c (choose_hard_reg_mode): Likewise.
(init_reg_modes_target): Refer directly to
this_target_regs->x_hard_regno_nregs.

From-SVN: r252014

7 years agoMake more use of in_hard_reg_set_p
Richard Sandiford [Tue, 12 Sep 2017 13:28:37 +0000 (13:28 +0000)]
Make more use of in_hard_reg_set_p

An upcoming patch will convert hard_regno_nregs into an inline
function, which in turn allows hard_regno_nregs to be used as the
name of a targetm field.  This patch rewrites a use that can use
in_hard_reg_set_p instead.

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
instead of hard_regno_nregs.

From-SVN: r252013

7 years agoMake more use of end_hard_regno
Richard Sandiford [Tue, 12 Sep 2017 13:28:27 +0000 (13:28 +0000)]
Make more use of end_hard_regno

An upcoming patch will convert hard_regno_nregs into an inline
function, which in turn allows hard_regno_nregs to be used as the
name of a targetm field.  This patch rewrites uses that can use
end_hard_regno instead.

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
end_hard_regno instead of hard_regno_nregs.
* config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
* config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
* config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
* ira-color.c (improve_allocation): Likewise.
* lra-assigns.c (find_hard_regno_for_1): Likewise.
* lra-lives.c (mark_regno_live): Likewise.
(mark_regno_dead): Likewise.
* lra-remat.c (operand_to_remat): Likewise.
* lra.c (collect_non_operand_hard_regs): Likewise.
* postreload.c (reload_combine_note_store): Likewise.
(move2add_valid_value_p): Likewise.
* reload.c (regno_clobbered_p): Likewise.

From-SVN: r252012

7 years agoMake more use of END_REGNO
Richard Sandiford [Tue, 12 Sep 2017 13:28:18 +0000 (13:28 +0000)]
Make more use of END_REGNO

An upcoming patch will convert hard_regno_nregs into an inline
function, which in turn allows hard_regno_nregs to be used as the
name of a targetm field.  This patch rewrites uses that are more
easily (and efficiently) written as END_REGNO.

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
hard_regno_nregs.
* config/v850/v850.c (v850_reorg): Likewise.
* reload.c (refers_to_regno_for_reload_p): Likewise.
(find_equiv_reg): Likewise.
* reload1.c (reload_reg_reaches_end_p): Likewise.

From-SVN: r252011

7 years agoMake more use of REG_NREGS
Richard Sandiford [Tue, 12 Sep 2017 13:28:08 +0000 (13:28 +0000)]
Make more use of REG_NREGS

An upcoming patch will convert hard_regno_nregs into an inline
function, which in turn allows hard_regno_nregs to be used as the
name of a targetm field.  This patch rewrites uses that are more
easily (and efficiently) written as REG_NREGS.

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* caller-save.c (add_used_regs): Use REG_NREGS instead of
hard_regno_nregs.
* config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
* config/arm/arm.c (output_move_neon): Likewise.
(arm_attr_length_move_neon): Likewise.
(neon_split_vcombine): Likewise.
* config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
(c6x_mark_reg_written): Likewise.
(c6x_dwarf_register_span): Likewise.
* config/i386/i386.c (ix86_save_reg): Likewise.
* config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
(rws_access_reg): Likewise.
* config/s390/s390.c (s390_call_saved_register_used): Likewise.
* mode-switching.c (create_pre_exit): Likewise.
* ree.c (combine_reaching_defs): Likewise.
(add_removable_extension): Likewise.
* regcprop.c (find_oldest_value_reg): Likewise.
(copyprop_hardreg_forward_1): Likewise.
* reload.c (reload_inner_reg_of_subreg): Likewise.
(push_reload): Likewise.
(combine_reloads): Likewise.
(find_dummy_reload): Likewise.
(reload_adjust_reg_for_mode): Likewise.
* reload1.c (find_reload_regs): Likewise.
(forget_old_reloads_1): Likewise.
(reload_reg_free_for_value_p): Likewise.
(reload_adjust_reg_for_temp): Likewise.
(emit_reload_insns): Likewise.
(delete_output_reload): Likewise.
* sel-sched.c (choose_best_reg_1): Likewise.
(choose_best_pseudo_reg): Likewise.

From-SVN: r252010

7 years agoTurn SLOW_UNALIGNED_ACCESS into a target hook
Richard Sandiford [Tue, 12 Sep 2017 13:27:55 +0000 (13:27 +0000)]
Turn SLOW_UNALIGNED_ACCESS into a target hook

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
    Alan Hayward  <alan.hayward@arm.com>
    David Sherwood <david.sherwood@arm.com>

gcc/
* defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
* target.def (slow_unaligned_access): New hook.
* targhooks.h (default_slow_unaligned_access): Declare.
* targhooks.c (default_slow_unaligned_access): New function.
* doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
(TARGET_SLOW_UNALIGNED_ACCESS): ...this.
* doc/tm.texi: Regenerate.
* config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
* config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
* config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
definition.
* config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
* config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
Redefine.
(rs6000_slow_unaligned_access): New function.
(rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
(expand_block_compare): Likewise.
(expand_strn_compare): Likewise.
(rs6000_rtx_costs): Likewise.
* config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
(riscv_slow_unaligned_access): Likewise.
* config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
(riscv_slow_unaligned_access_p): ...this and make static.
(riscv_option_override): Update accordingly.
(riscv_slow_unaligned_access): New function.
(TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
* config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
* config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
(rs6000_slow_unaligned_access): New function.
(rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
(rs6000_rtx_costs): Likewise.
* config/rs6000/rs6000-string.c (expand_block_compare)
(expand_strn_compare): Use targetm.slow_unaligned_access instead
of SLOW_UNALIGNED_ACCESS.
* config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
* config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
* calls.c (expand_call): Use targetm.slow_unaligned_access instead
of SLOW_UNALIGNED_ACCESS.
* expmed.c (simple_mem_bitfield_p): Likewise.
* expr.c (alignment_for_piecewise_move): Likewise.
(emit_group_load_1): Likewise.
(emit_group_store): Likewise.
(copy_blkmode_from_reg): Likewise.
(emit_push_insn): Likewise.
(expand_assignment): Likewise.
(store_field): Likewise.
(expand_expr_real_1): Likewise.
* gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
* lra-constraints.c (simplify_operand_subreg): Likewise.
* stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
* gimple-ssa-store-merging.c: Likewise in block comment at start
of file.
* tree-ssa-strlen.c: Include target.h.
(handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
of SLOW_UNALIGNED_ACCESS.
* system.h (SLOW_UNALIGNED_ACCESS): Poison.

Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
Co-Authored-By: David Sherwood <david.sherwood@arm.com>
From-SVN: r252009

7 years agoPR81285: Fix uninitialised variable in emit_store_flag_int
Richard Sandiford [Tue, 12 Sep 2017 13:27:13 +0000 (13:27 +0000)]
PR81285: Fix uninitialised variable in emit_store_flag_int

2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
PR rtl-optimization/82185
* expmed.c (emit_store_flag_int): Only test tem if it has been
initialized.

From-SVN: r252008

7 years agore PR middle-end/82149 (match.pd: 2919: bad if test ?)
Richard Biener [Tue, 12 Sep 2017 13:21:52 +0000 (13:21 +0000)]
re PR middle-end/82149 (match.pd: 2919: bad if test ?)

2017-09-12  Richard Biener  <rguenther@suse.de>

PR middle-end/82149
* match.pd ((FTYPE) N CMP CST): Fix typo.

From-SVN: r252007

7 years agoAdd short_call function attribute for MIPS
Simon Atanasyan [Tue, 12 Sep 2017 12:51:40 +0000 (12:51 +0000)]
Add short_call function attribute for MIPS

gcc/
* config/mips/mips.c (mips_attribute_table): Add 'short_call'
attribute.
(mips_near_type_p): Add 'short_call' attribute as a synonym
for 'near'.
* doc/extend.texi (short_call): Document new function attribute.

gcc/testsuite

* gcc.target/mips/near-far-1.c: Add check for 'short_call'
attribute.
* gcc.target/mips/near-far-2.c: Likewise.
* gcc.target/mips/near-far-3.c: Likewise.
* gcc.target/mips/near-far-4.c: Likewise.

From-SVN: r252006

7 years agoKill CLASSTYPE_SORTED_FIELDS.
Nathan Sidwell [Tue, 12 Sep 2017 12:50:56 +0000 (12:50 +0000)]
Kill CLASSTYPE_SORTED_FIELDS.

* cp-tree.h (struct lang_type): Lose sorted_fields member.
(CLASSTYPE_SORTED_FIELDS): Delete.
* name-lookup.h (set_class_bindings): Add EXTRA arg.
* name-lookup.c (fields_linear_search): New, broken out of ...
(lookup_field_1): ... here.  Delete remainder of function.
(get_class_binding_direct): Reimplement without sorted_fields.
(get_class_binding): Rename TYPE arg to KLASS, for consistency.
(get_method_slot): Call set_class_binding when creating method_vec
on complete type.
(method_name_cmp): Order identically named slots.
(sorted_fields_type_new): Delete.
(field_vc_append_class_fields): Rename to ...
(method_vec_append_class_fields): ... here.  Adjust.
(field_vec_append_enum_values): Renme to ...
(method_vec_append_enum_values): ... here. Adjust.
(method_vec_dedup): New.
(set_class_bindings): Reimplement.
(insert_late_enum_def_bindings): Reimplement.

From-SVN: r252005

7 years agoname-lookup.c (get_class_binding): Rename TYPE arg to KLASS for consistency.
Nathan Sidwell [Tue, 12 Sep 2017 12:15:07 +0000 (12:15 +0000)]
name-lookup.c (get_class_binding): Rename TYPE arg to KLASS for consistency.

* name-lookup.c (get_class_binding): Rename TYPE arg to KLASS for
consistency.
(restort_data): Move later.
(method_name_cmp, resort_method_name_cmp): Simplify.
(resort_type_method_vec): Reformat.

From-SVN: r252004

7 years agore PR target/82112 (internal compiler error: in fold_convert_loc, at fold-const.c...
Jakub Jelinek [Tue, 12 Sep 2017 11:49:29 +0000 (13:49 +0200)]
re PR target/82112 (internal compiler error: in fold_convert_loc, at fold-const.c:2262)

PR target/82112
* c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
assertion check that in the condition.
(get_atomic_generic_size): Likewise.  Before testing if parameter
has pointer type, if it has array type, call for C++
default_conversion to perform array-to-pointer conversion.

* c-c++-common/pr82112.c: New test.
* gcc.dg/pr82112.c: New test.

From-SVN: r252003

7 years agotree-vect-generic.c (expand_vector_operations_1): Do nothing for operations we cannot...
Richard Biener [Tue, 12 Sep 2017 10:51:33 +0000 (10:51 +0000)]
tree-vect-generic.c (expand_vector_operations_1): Do nothing for operations we cannot scalarize.

2017-09-12  Richard Biener  <rguenther@suse.de>

* tree-vect-generic.c (expand_vector_operations_1): Do nothing
for operations we cannot scalarize.

From-SVN: r252002

7 years ago[multiple changes]
Arnaud Charlet [Tue, 12 Sep 2017 10:15:46 +0000 (12:15 +0200)]
[multiple changes]

2017-09-12  Bob Duff  <duff@adacore.com>

* sem_warn.adb: Minor comment.

2017-09-12  Bob Duff  <duff@adacore.com>

* libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
libgnat/a-cbmutr.adb, libgnat/a-cborma.adb: Rename New_Item to
be Default_Initialized_Item, and apply pragma Unmodified to it,
to suppress the warning.

2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>

* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add early return
for access types.

2017-09-12  Yannick Moy  <moy@adacore.com>

* gnat1drv.adb (Adjust_Global_Switches): Consider Refined_Global
together with Global when ignoring one in CodePeer mode.

2017-09-12  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Analyze_Declarations): In nested
package declarations that have a private part enable missing check
of the RM rule 13.1.1(11/3): usage names in aspect definitions are
resolved at the end of the immediately enclosing declaration list.

From-SVN: r252001

7 years ago[multiple changes]
Arnaud Charlet [Tue, 12 Sep 2017 09:52:00 +0000 (11:52 +0200)]
[multiple changes]

2017-09-12  Bob Duff  <duff@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Initialize Def_Id to
Empty.

2017-09-12  Georges-Axel Jaloyan  <jaloyan@adacore.com>

* debug.adb: Reserving flag -gnatdF for safe pointer checking.
* gnat1drv.adb (gnat1drv): Adding the call to the analysis on
dF flag.
* sem_spark.adb, sem_spark.ads: Implementation of the analysis,
in preparation for the evolution of the SPARK language that
includes a pointer analysis for checking non-aliasing of access
types. The Check_Safe_Pointers function is the entry point, and
will traverse the AST and raise compile-time errors everytime
it detects non-begign aliasing.  Detailed comments are present
in the sem_spark.ads file.
* sem_util.adb, sem_util.ads (First_Global, Next_Global): New
functions to iterate over the list of globals of a subprogram.
* libgnat/system.ads: Add restriction No_Finalization.
* gcc-interface/Make-lang.in: Add new file sem_spark.adb and
dependency on g-dynhta.adb.

From-SVN: r252000

7 years agosem_ch6.adb (Analyze_Expression_Function): Call Check_Dynamically_Tagged_Expression.
Bob Duff [Tue, 12 Sep 2017 09:09:30 +0000 (09:09 +0000)]
sem_ch6.adb (Analyze_Expression_Function): Call Check_Dynamically_Tagged_Expression.

2017-09-12  Bob Duff  <duff@adacore.com>

* sem_ch6.adb (Analyze_Expression_Function): Call
Check_Dynamically_Tagged_Expression.
* sem_util.adb (Check_Dynamically_Tagged_Expression): Remove
"and then Is_Tagged_Type (Typ)" because there is an earlier
"Assert (Is_Tagged_Type (Typ))".

From-SVN: r251999

7 years agotree-ssa-threadbackward.c (fsm_find_thread_path): Make GC vectors heap vectors.
Aldy Hernandez [Tue, 12 Sep 2017 07:24:32 +0000 (07:24 +0000)]
tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC vectors heap vectors.

* tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
vectors heap vectors.  Clean up comments.
Make visited_bbs a reference.
(profitable_jump_thread_path): Make GC
vectors heap vectors.  Clean up comments.
Misc cleanups.
(convert_and_register_jump_thread_path): Make GC vectors heap
vectors.
(check_subpath_and_update_thread_path): Same.  Clean up comments.
Make visited_bbs a reference.
(handle_phi): Abstract common code to to
register_jump_thread_path_if_profitable.
Rename VAR_BB to DEF_BB.
Update comments.
Make GC vectors heap vectors.
Make visited_bbs a reference.
(handle_assignment): Same.
(register_jump_thread_path_if_profitable): New.
(fsm_find_control_statement_thread_paths): Rename VAR_BB to
DEF_BB.
Make GC vectors heap vectors.  Clean up comments.
Make visited_bbs a reference.
(find_jump_threads_backwards): Make visited_bbs live in the stack.
* tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
comment.

From-SVN: r251998

7 years ago* gcc-interface/Makefile.in (SPARC/Solaris): Remove obsolete stuff.
Eric Botcazou [Tue, 12 Sep 2017 07:05:19 +0000 (07:05 +0000)]
* gcc-interface/Makefile.in (SPARC/Solaris): Remove obsolete stuff.

From-SVN: r251997

7 years agoDaily bump.
GCC Administrator [Tue, 12 Sep 2017 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251996

7 years agoPR libstdc++/70483 make std::string_view fully constexpr
Jonathan Wakely [Mon, 11 Sep 2017 21:47:41 +0000 (22:47 +0100)]
PR libstdc++/70483 make std::string_view fully constexpr

PR libstdc++/70483
* include/bits/string_view.tcc (basic_string_view::find)
(basic_string_view::rfind, basic_string_view::find_first_of)
(basic_string_view::find_last_of, basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of): Add constexpr specifier.
* include/std/string_view (basic_string_view::operator=)
(basic_string_view::rbegin, basic_string_view::rend)
(basic_string_view::crbegin, basic_string_view::crend)
(basic_string_view::remove_prefix, basic_string_view::remove_suffix)
(basic_string_view::swap, basic_string_view::compare)
(basic_string_view::find, basic_string_view::rfind)
(basic_string_view::find_first_of, basic_string_view::find_last_of)
(basic_string_view::find_first_not_of)
(basic_string_view::find_last_not_of, basic_string_view::_M_check)
(basic_string_view::_M_limit, operator==, operator!=, operator<)
(operator>, operator<=, operator>=): Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
char/1.cc: Repeat tests in constexpr context.
* testsuite/21_strings/basic_string_view/modifiers/remove_prefix/
wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
char/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/remove_suffix/
wchar_t/1.cc: Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/char/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operators/char/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc:
Likewise.
* testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test
cbegin, cend, rbegin, rend, crbegin and crend.
* testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
Likewise.
* testsuite/21_strings/basic_string_view/operations/compare/char/1.cc:
Remove trailing whitespace.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
1.cc: Likewise.
* testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
New.
* testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
New.
* testsuite/21_strings/basic_string_view/operations/compare/char/2.cc:
New.
* testsuite/21_strings/basic_string_view/operations/compare/wchar_t/
2.cc: New.

From-SVN: r251988

7 years agoxtensa: fix PR target/82181
Max Filippov [Mon, 11 Sep 2017 21:33:36 +0000 (21:33 +0000)]
xtensa: fix PR target/82181

2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
words of E_DImode object are reachable by xtensa_uimm8x4 access.

From-SVN: r251986

7 years agore PR libstdc++/71500 (regex::icase only works on first character in a range)
Tim Shen [Mon, 11 Sep 2017 19:02:34 +0000 (19:02 +0000)]
re PR libstdc++/71500 (regex::icase only works on first character in a range)

PR libstdc++/71500
* include/bits/regex_executor.tcc: Support icase in regex_tratis<...>
for back reference matches.
* testsuite/28_regex/regression.cc: Test case.

From-SVN: r251982

7 years agoAdjust test to pass with old std::string
Jonathan Wakely [Mon, 11 Sep 2017 16:54:57 +0000 (17:54 +0100)]
Adjust test to pass with old std::string

* testsuite/21_strings/basic_string/lwg2946.cc: Adjust for
compatibility with old COW std::string.

From-SVN: r251981

7 years ago2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
Vidya Praveen [Mon, 11 Sep 2017 14:14:57 +0000 (15:14 +0100)]
2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>

Revert r251800 and r251799.

From-SVN: r251980

7 years agoAdd myself as ARM port maintainer
Kyrylo Tkachov [Mon, 11 Sep 2017 14:13:25 +0000 (14:13 +0000)]
Add myself as ARM port maintainer

2017-09-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* MAINTAINERS (Reviewers): Move myself from here...
(CPU Port Maintainers): ... to here.

From-SVN: r251979

7 years ago[multiple changes]
Arnaud Charlet [Mon, 11 Sep 2017 12:40:38 +0000 (14:40 +0200)]
[multiple changes]

2017-09-11  Arnaud Charlet  <charlet@adacore.com>

* doc/gnat_ugn/the_gnat_compilation_model.rst: Fix sphinx warning.
* doc/gnat_ugn/platform_specific_information.rst: Remove doc
for no longer supported platforms.
* doc/gnat_ugn/gnat_and_program_execution.rst: Added detailed
description of the semantics for dimensionality analysis.
* gnat_ugn.texi: Regenerated.

2017-09-11  Eric Botcazou  <ebotcazou@adacore.com>

* freeze.adb (Has_Incomplete_Compoent): Delete.
(Freeze_Profile):
Do not inhibit the freezing of the profile of an expression
function here.
(Freeze_Subprogram): Do not re-create extra formals.
* sem_ch6.adb (Analyze_Expression_Function): Always
pre-analyze the expression if the function is not a completion.
(Analyze_Subprogram_Body_Helper): For the body generated
from an expression function that is not a completion, do
not freeze the profile and temporary mask the types declared
outside the expression that are not yet frozen.
* sem_res.adb (Rewrite_Renamed_Operator): Also bail out if invoked
during the pre-analysis of an expression function.

From-SVN: r251978

7 years agoRemoved, no longer used.
Arnaud Charlet [Mon, 11 Sep 2017 12:40:31 +0000 (14:40 +0200)]
Removed, no longer used.

From-SVN: r251977

7 years agoRemoved, no longer used.
Arnaud Charlet [Mon, 11 Sep 2017 12:17:33 +0000 (14:17 +0200)]
Removed, no longer used.

From-SVN: r251976

7 years agogigi.h (enum standard_datatypes): Minor tweak.
Eric Botcazou [Mon, 11 Sep 2017 10:32:32 +0000 (10:32 +0000)]
gigi.h (enum standard_datatypes): Minor tweak.

* gcc-interface/gigi.h (enum standard_datatypes): Minor tweak.
(gigi): Likewise.

From-SVN: r251974

7 years agoRestored, removed by mistake.
Arnaud Charlet [Mon, 11 Sep 2017 10:24:31 +0000 (12:24 +0200)]
Restored, removed by mistake.

From-SVN: r251973

7 years agoRenamed s-thread__ae653.adb
Arnaud Charlet [Mon, 11 Sep 2017 10:18:05 +0000 (12:18 +0200)]
Renamed s-thread__ae653.adb

From-SVN: r251972

7 years agoRemoved, no longer used.
Arnaud Charlet [Mon, 11 Sep 2017 10:17:12 +0000 (12:17 +0200)]
Removed, no longer used.

From-SVN: r251971

7 years agoNew file.
Arnaud Charlet [Mon, 11 Sep 2017 10:15:59 +0000 (12:15 +0200)]
New file.

From-SVN: r251970

7 years agoRemoved, no longer used.
Arnaud Charlet [Mon, 11 Sep 2017 10:13:06 +0000 (12:13 +0200)]
Removed, no longer used.

From-SVN: r251969

7 years agolibgnat: Rename ?-[a-z]*-* into ?-[a-z]*__*
Arnaud Charlet [Mon, 11 Sep 2017 10:12:05 +0000 (12:12 +0200)]
libgnat: Rename ?-[a-z]*-* into ?-[a-z]*__*

2017-09-11  Jerome Lambourg  <lambourg@adacore.com>

        * libgnat: Rename ?-[a-z]*-* into ?-[a-z]*__*
        * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Take this
renaming into account.

From-SVN: r251968

7 years agolib-xref-spark_specific.adb: Minor rewrite.
Yannick Moy [Mon, 11 Sep 2017 09:48:04 +0000 (11:48 +0200)]
lib-xref-spark_specific.adb: Minor rewrite.

2017-09-11  Yannick Moy  <moy@adacore.com>

* lib-xref-spark_specific.adb: Minor rewrite.

From-SVN: r251967

7 years agoMakefile.in: Take this renaming into account.
Jerome Lambourg [Mon, 11 Sep 2017 09:19:29 +0000 (11:19 +0200)]
Makefile.in: Take this renaming into account.

2017-09-11  Jerome Lambourg  <lambourg@adacore.com>

* gcc-interface/Makefile.in: Take this renaming into account.

From-SVN: r251966

7 years agolibgnarl: Rename ?-[a-z]*-* into ?-[a-z]*__*
Arnaud Charlet [Mon, 11 Sep 2017 09:18:42 +0000 (11:18 +0200)]
libgnarl: Rename ?-[a-z]*-* into ?-[a-z]*__*

2017-09-11  Jerome Lambourg  <lambourg@adacore.com>

        * libgnarl: Rename ?-[a-z]*-* into ?-[a-z]*__*
        * gcc-interface/Makefile.in: Take this renaming into account.

From-SVN: r251965

7 years agoMake HSA resilient to side-effects of split_edge
Martin Jambor [Mon, 11 Sep 2017 09:09:26 +0000 (11:09 +0200)]
Make HSA resilient to side-effects of split_edge

2017-09-11  Martin Jambor  <mjambor@suse.cz>

PR hsa/82119
* hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
arguments in advance.
* hsa-regalloc.c (naive_process_phi): New parameter predecessors,
use it to find predecessor edges.
(naive_outof_ssa): Collect vector of predecessors.

From-SVN: r251964

7 years agoRemoved.
Arnaud Charlet [Mon, 11 Sep 2017 08:53:50 +0000 (10:53 +0200)]
Removed.

From-SVN: r251963

7 years ago* s-auxdec-empty.ads, s-auxdec-empty.adb: Removed, no longer used.
Arnaud Charlet [Mon, 11 Sep 2017 08:52:18 +0000 (10:52 +0200)]
* s-auxdec-empty.ads, s-auxdec-empty.adb: Removed, no longer used.

From-SVN: r251962

7 years agoUpdate header.
Arnaud Charlet [Mon, 11 Sep 2017 08:48:41 +0000 (10:48 +0200)]
Update header.

From-SVN: r251961

7 years agosem_util.adb (Check_Result_And_Post_State): Do not issue a warning about missing...
Yannick Moy [Mon, 11 Sep 2017 08:37:51 +0000 (08:37 +0000)]
sem_util.adb (Check_Result_And_Post_State): Do not issue a warning about missing reference to an outcome if...

2017-09-11  Yannick Moy  <moy@adacore.com>

* sem_util.adb (Check_Result_And_Post_State):
Do not issue a warning about missing reference to an outcome if
the subprogram is ghost and has no outputs.
* lib-xref-spark_specific.adb, sem_aggr.adb, sem_aux.ads: Minor
reformatting.

From-SVN: r251960

7 years agognat1drv.adb (Adjust_Global_Switches): Set Check_Validity_Of_Parameters to False...
Yannick Moy [Mon, 11 Sep 2017 08:06:46 +0000 (08:06 +0000)]
gnat1drv.adb (Adjust_Global_Switches): Set Check_Validity_Of_Parameters to False in GNATprove mode.

2017-09-11  Yannick Moy  <moy@adacore.com>

* gnat1drv.adb (Adjust_Global_Switches): Set
Check_Validity_Of_Parameters to False in GNATprove mode.
* opt.ads (Check_Validity_Of_Parameters): Document switch to
set option.

From-SVN: r251959

7 years agoNew files, to ease sync between AdaCore and FSF.
Arnaud Charlet [Mon, 11 Sep 2017 08:05:43 +0000 (10:05 +0200)]
New files, to ease sync between AdaCore and FSF.

From-SVN: r251958

7 years agoNew files, to ease sync between AdaCore and FSF.
Arnaud Charlet [Mon, 11 Sep 2017 08:04:48 +0000 (10:04 +0200)]
New files, to ease sync between AdaCore and FSF.

From-SVN: r251957

7 years agoDaily bump.
GCC Administrator [Mon, 11 Sep 2017 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r251956

7 years agore PR ada/79441 (gnat.dg/pack9.adb fails)
Eric Botcazou [Sun, 10 Sep 2017 17:04:19 +0000 (17:04 +0000)]
re PR ada/79441 (gnat.dg/pack9.adb fails)

PR ada/79441
* gnat.dg/pack9.adb: Robustify.

From-SVN: r251951

7 years agore PR fortran/34640 (ICE when assigning item of a derived-component to a pointer)
Paul Thomas [Sun, 10 Sep 2017 17:02:53 +0000 (17:02 +0000)]
re PR fortran/34640 (ICE when assigning item of a derived-component to a pointer)

2017-09-10  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/34640
PR fortran/40737
PR fortran/55763
PR fortran/57019
PR fortran/57116

* expr.c (is_subref_array): Add class pointer array dummies
to the list of expressions that return true.
* trans-array.c: Add SPAN_FIELD and update indices for
subsequent fields.
(gfc_conv_descriptor_span, gfc_conv_descriptor_span_get,
gfc_conv_descriptor_span_set, is_pointer_array,
get_array_span): New functions.
(gfc_get_descriptor_offsets_for_info): New function to preserve
API for access to descriptor fields for trans-types.c.
(gfc_conv_scalarized_array_ref): If the expression is a subref
array, make sure that info->descriptor is a descriptor type.
Otherwise, if info->descriptor is a pointer array, set 'decl'
and fix it if it is a component reference.
(build_array_ref): Simplify handling of class array refs by
passing the vptr to gfc_build_array_ref rather than generating
the pointer arithmetic in this function.
(gfc_conv_array_ref): As in gfc_conv_scalarized_array_ref, set
'decl'.
(gfc_array_allocate): Set the span field if this is a pointer
array. Use the expr3 element size if it is available, so that
the dynamic type element size is used.
(gfc_conv_expr_descriptor): Set the span field for pointer
assignments.
* trans-array.h: Prototypes for gfc_conv_descriptor_span_get
gfc_conv_descriptor_span_set and
gfc_get_descriptor_offsets_for_info added.
trans-decl.c (gfc_get_symbol_decl): If a non-class pointer
array, mark the declaration as a GFC_DECL_PTR_ARRAY_P. Remove
the setting of GFC_DECL_SPAN.
(gfc_trans_deferred_vars): Set the span field to zero in thge
originating scope.
* trans-expr.c (gfc_conv_procedure_call): Do not use copy-in/
copy-out to pass subref expressions to a pointer dummy.
(gfc_trans_pointer_assignment): Remove code for setting of
GFC_DECL_SPAN. Set the 'span' field for non-class pointers to
class function results. Likewise for rank remap. In the case
that the target is not a whole array, use the target array ref
for remap and, since the 'start' indices are missing, set the
lbounds to one, as required by the standard.
* trans-intrinsic.c (conv_expr_ref_to_caf_ref): Pick up the
'token' offset from the field decl in the descriptor.
(conv_isocbinding_subroutine): Set the 'span' field.
* trans-io.c (gfc_trans_transfer): Always scalarize pointer
array io.
* trans-stmt.c (trans_associate_var): Set the 'span' field.
* trans-types.c (gfc_get_array_descriptor_base): Add the 'span'
field to the array descriptor.
(gfc_get_derived_type): Pointer array components are marked as
GFC_DECL_PTR_ARRAY_P.
(gfc_get_array_descr_info): Replaced API breaking code for
descriptor offset calling gfc_get_descriptor_offsets_for_info.
* trans.c (get_array_span): New function.
(gfc_build_array_ref): Simplify by calling get_array_span and
obtain 'span' if 'decl' or 'vptr' present.
* trans.h : Rename DECL_LANG_FLAG_6, GFC_DECL_SUBREF_ARRAY_P,
as GFC_DECL_PTR_ARRAY_P.

2017-09-10  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/34640
* gfortran.dg/associate_24.f90: New test.
* gfortran.dg/assumed_type_2.f90: Adjust some of the tree dump
checks.
* gfortran.dg/no_arg_check_2.f90: Likewise.
* gfortran.dg/pointer_array_1.f90: New test.
* gfortran.dg/pointer_array_2.f90: New test.
* gfortran.dg/pointer_array_7.f90: New test.
* gfortran.dg/pointer_array_8.f90: New test.
* gfortran.dg/pointer_array_component_1.f90: New test.
* gfortran.dg/pointer_array_component_2.f90: New test.
* gfortran.dg/goacc/kernels-alias-4.f95: Bump up both tree scan
counts by 1.

PR fortran/40737
* gfortran.dg/pointer_array_3.f90: New test.

PR fortran/57116
* gfortran.dg/pointer_array_4.f90: New test.

PR fortran/55763
* gfortran.dg/pointer_array_5.f90: New test.

PR fortran/57019
* gfortran.dg/pointer_array_6.f90: New test.

2017-09-10  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/34640
* libgfortran/libgfortran.h: Add span field to descriptor.
* libgfortran/libtool-version : Bump up version number to 5:0:0.

From-SVN: r251949

7 years agoA partially initialized variable isn't constant.
Jason Merrill [Sun, 10 Sep 2017 09:11:40 +0000 (05:11 -0400)]
A partially initialized variable isn't constant.

* constexpr.c (reduced_constant_expression_p): If
CONSTRUCTOR_NO_IMPLICIT_ZERO, check that all fields are initialized.

From-SVN: r251948

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

From-SVN: r251945

7 years agoRevert: * dwarf2out.c (gen_formal_parameter_die): Remove obsolete hunk.
Jason Merrill [Sat, 9 Sep 2017 22:22:16 +0000 (18:22 -0400)]
Revert: * dwarf2out.c (gen_formal_parameter_die): Remove obsolete hunk.

Check ultimate_origin before setting reusing_die.

From-SVN: r251941

7 years ago[MAINTAINERS] Add myself as AArch64 CPU Port maintainer
James Greenhalgh [Sat, 9 Sep 2017 14:48:31 +0000 (14:48 +0000)]
[MAINTAINERS] Add myself as AArch64 CPU Port maintainer

From-SVN: r251940

7 years agoPR c++/81852 define feature-test macro for -fthreadsafe-statics
Jonathan Wakely [Sat, 9 Sep 2017 14:32:25 +0000 (15:32 +0100)]
PR c++/81852 define feature-test macro for -fthreadsafe-statics

gcc/c-family:

PR c++/81852
* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_threadsafe_static_init.

gcc/testsuite:

PR c++/81852
* g++.dg/cpp1y/feat-cxx11.C: Check __cpp_threadsafe_static_init.
* g++.dg/cpp1y/feat-cxx14.C: Likewise.
* g++.dg/cpp1y/feat-cxx98.C: Likewise.
* g++.dg/cpp1y/feat-neg.C: Likewise.
* g++.dg/cpp1z/feat-cxx1z.C: Likewise.

From-SVN: r251939

7 years agodwarf2out.c (gen_formal_parameter_die): Remove obsolete hunk.
Richard Biener [Sat, 9 Sep 2017 14:04:58 +0000 (14:04 +0000)]
dwarf2out.c (gen_formal_parameter_die): Remove obsolete hunk.

* dwarf2out.c (gen_formal_parameter_die): Remove obsolete hunk.

Check ultimate_origin before setting reusing_die.

Co-Authored-By: Jason Merrill <jason@redhat.com>
From-SVN: r251938

7 years agodecl.c (gnat_to_gnu_entity): Don't generate debug info for inner record types if...
Pierre-Marie de Rodat [Sat, 9 Sep 2017 13:05:40 +0000 (13:05 +0000)]
decl.c (gnat_to_gnu_entity): Don't generate debug info for inner record types if -fgnat-encodings=minimal.

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Don't
generate debug info for inner record types if -fgnat-encodings=minimal.
(gnat_to_gnu_entity) <E_Record_Subtype>: Use the ultimate base record
type as the debug type.

From-SVN: r251937

7 years agodecl.c (components_to_record): Do not reorder in non- packed record types if...
Eric Botcazou [Sat, 9 Sep 2017 12:48:41 +0000 (12:48 +0000)]
decl.c (components_to_record): Do not reorder in non- packed record types if...

* gcc-interface/decl.c (components_to_record): Do not reorder in non-
packed record types if pragma Optimize_Alignment (Space) is enabled.

From-SVN: r251936

7 years agotrans.c (Subprogram_Body_to_gnu): Disregard inlining limits for expression functions.
Eric Botcazou [Sat, 9 Sep 2017 12:45:45 +0000 (12:45 +0000)]
trans.c (Subprogram_Body_to_gnu): Disregard inlining limits for expression functions.

* gcc-interface/trans.c (Subprogram_Body_to_gnu): Disregard inlining
limits for expression functions.
(gnat_to_gnu) <N_Object_Declaration>: Fix formatting.

From-SVN: r251935

7 years agodecl.c (gnat_to_gnu_entity): Copy the layout of the record from the parent type only...
Eric Botcazou [Sat, 9 Sep 2017 12:41:19 +0000 (12:41 +0000)]
decl.c (gnat_to_gnu_entity): Copy the layout of the record from the parent type only if...

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Copy the
layout of the record from the parent type only if both are or are not
unchecked unions.
(is_stored_discriminant): Return false for an unchecked union.

From-SVN: r251934