platform/upstream/gcc.git
7 years agogimple-ssa-sprintf.c: Include domwalk.h.
Jeff Law [Fri, 27 Oct 2017 16:54:49 +0000 (10:54 -0600)]
gimple-ssa-sprintf.c: Include domwalk.h.

* gimple-ssa-sprintf.c: Include domwalk.h.
(class sprintf_dom_walker): New class, derived from dom_walker.
(sprintf_dom_walker::before_dom_children): New function.
(struct call_info): Moved into sprintf_dom_walker class
(compute_formath_length, handle_gimple_call): Likewise.
(sprintf_length::execute): Call the dominator walker rather
than walking the statements.

From-SVN: r254156

7 years agotree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple statement...
Jeff Law [Fri, 27 Oct 2017 15:35:37 +0000 (09:35 -0600)]
tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle gimple statement locations.

* tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
gimple statement locations.
(check_array_bounds): Corresponding changes.  Get the statement's
location directly from wi->stmt.

From-SVN: r254154

7 years agoRISC-V: Correct and improve the "-mabi" documentation
Palmer Dabbelt [Fri, 27 Oct 2017 15:22:43 +0000 (15:22 +0000)]
RISC-V: Correct and improve the "-mabi" documentation

The documentation for the "-mabi" argument on RISC-V was incorrect.  We
chose to treat this as a documentation bug rather than a code bug, and
to make the documentation match what GCC currently does.  In the
process, I also improved the documentation a bit.

Thanks to Alex Bradbury for finding the bug!

PR target/82717: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82717

gcc/ChangeLog

2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>

        PR target/82717
        * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.

From-SVN: r254153

7 years agox86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, [...]): Disable for Haswell and newer...
Jan Hubicka [Fri, 27 Oct 2017 14:30:00 +0000 (16:30 +0200)]
x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, [...]): Disable for Haswell and newer CPUs.

* config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
X86_TUNE_MOVX): Disable for Haswell and newer CPUs.

From-SVN: r254152

7 years agoFix profiledbootstrap.
Martin Liska [Fri, 27 Oct 2017 13:13:05 +0000 (15:13 +0200)]
Fix profiledbootstrap.

2017-10-27  Martin Liska  <mliska@suse.cz>

* Makefile.tpl: Use proper name of folder as it was renamed
during transition to 4 stages.
* Makefile.in: Regenerate.

From-SVN: r254150

7 years agoProvide filesystem::path overloads for file streams (LWG 2676, partial)
Jonathan Wakely [Fri, 27 Oct 2017 12:39:01 +0000 (13:39 +0100)]
Provide filesystem::path overloads for file streams (LWG 2676, partial)

* include/std/fstream (basic_filebuf::_If_path): New SFINAE helper.
(basic_filebuf::open<Path>(const Path&, const ios_base::openmode&))
(basic_ifstream<Path>(const Path&, const ios_base::openmode&))
(basic_ifstream::open<Path>(const Path&, const ios_base::openmode&))
(basic_ofstream<Path>(const Path&, const ios_base::openmode&))
(basic_ofstream::open<Path>(const Path&, const ios_base::openmode&))
(basic_fstream<Path>(const Path&, const ios_base::openmode&))
(basic_fstream::open<Path>(const Path&, const ios_base::openmode&)):
New constructors and member functions.
* testsuite/27_io/basic_filebuf/open/char/path.cc: New test.
* testsuite/27_io/basic_fstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_fstream/open/char/path.cc: New test.
* testsuite/27_io/basic_ifstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_ifstream/open/char/path.cc: New test.
* testsuite/27_io/basic_ofstream/cons/char/path.cc: New test.
* testsuite/27_io/basic_ofstream/open/char/path.cc: New test.

From-SVN: r254148

7 years ago* gcc.target/i386/pr70021.c: Add -mtune=skylake.
Jan Hubicka [Fri, 27 Oct 2017 12:36:28 +0000 (14:36 +0200)]
* gcc.target/i386/pr70021.c: Add -mtune=skylake.

From-SVN: r254147

7 years agore PR target/82703 (Wrong addition of std::array components with -O2 -ftree-loop...
Jakub Jelinek [Fri, 27 Oct 2017 12:20:55 +0000 (14:20 +0200)]
re PR target/82703 (Wrong addition of std::array components with -O2 -ftree-loop-vectorize -ftree-slp-vectorize (works fine with -O2))

PR target/82703
* config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
* config/i386/i386.c (maybe_get_pool_constant): Removed.
(ix86_split_to_parts): Use avoid_constant_pool_reference instead of
maybe_get_pool_constant.
* config/i386/predicates.md (zero_extended_scalar_load_operand):
Likewise.

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

From-SVN: r254145

7 years agoDefine std::filesystem::path::format enum (P0430R2)
Jonathan Wakely [Fri, 27 Oct 2017 12:01:49 +0000 (13:01 +0100)]
Define std::filesystem::path::format enum (P0430R2)

* include/bits/fs_path.h (path::format): Define new enumeration type.
(path(string_type&&), path<Source>(const Source&))
(path<InputIterator>(InputIterator, InputIterator))
(path<Source>(const Source&, const locale&))
(path<InputIterator>(InputIterator, InputIterator, const locale&)):
Add format parameter.
* testsuite/27_io/filesystem/path/construct/format.cc: New test.

From-SVN: r254144

7 years agoUpdate install.texi for Solaris 12 rename
Rainer Orth [Fri, 27 Oct 2017 11:59:37 +0000 (11:59 +0000)]
Update install.texi for Solaris 12 rename

* doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
2.26 caveat.  Update gas and gld versions.
(Specific, *-*-solaris2*): Update binutils version.  Remove caveat
reference.

From-SVN: r254143

7 years agoExtend ipa-pure-const pass to propagate malloc attribute.
Prathamesh Kulkarni [Fri, 27 Oct 2017 10:48:49 +0000 (10:48 +0000)]
Extend ipa-pure-const pass to propagate malloc attribute.

2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

* cgraph.h (set_malloc_flag): Declare.
* cgraph.c (set_malloc_flag_1): New function.
(set_malloc_flag): Likewise.
* ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
* ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
false.
(read_ipa_call_summary): Add support for reading is_return_callee.
(write_ipa_call_summary): Stream is_return_callee.
* ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
* ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
ipa-prop.h, ipa-fnsummary.h.
(pure_const_names): Change to static.
(malloc_state_e): Define.
(malloc_state_names): Define.
(funct_state_d): Add field malloc_state.
(varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
(check_retval_uses): New function.
(malloc_candidate_p): Likewise.
(analyze_function): Add support for malloc attribute.
(pure_const_write_summary): Stream malloc_state.
(pure_const_read_summary): Add support for reading malloc_state.
(dump_malloc_lattice): New function.
(propagate_malloc): New function.
(warn_function_malloc): New function.
(ipa_pure_const::execute): Call propagate_malloc and
ipa_free_fn_summary.
(pass_local_pure_const::execute): Add support for malloc attribute.
* ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
* doc/invoke.texi: Document Wsuggest-attribute=malloc.

testsuite/
* gcc.dg/ipa/propmalloc-1.c: New test-case.
* gcc.dg/ipa/propmalloc-2.c: Likewise.
* gcc.dg/ipa/propmalloc-3.c: Likewise.

From-SVN: r254140

7 years agore PR c++/71385 (Internal compiler error when using concept as placeholder)
Paolo Carlini [Fri, 27 Oct 2017 10:45:25 +0000 (10:45 +0000)]
re PR c++/71385 (Internal compiler error when using concept as placeholder)

2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71385
* g++.dg/concepts/pr71385.C: New.

From-SVN: r254139

7 years agore PR c++/80739 (Accessing value of X through a Y glvalue in a constant expression)
Paolo Carlini [Fri, 27 Oct 2017 08:53:08 +0000 (08:53 +0000)]
re PR c++/80739 (Accessing value of X through a Y glvalue in a constant expression)

2017-10-27  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80739
* g++.dg/cpp1y/constexpr-80739.C: New.

From-SVN: r254138

7 years agoDocument --coverage and fork-like functions (PR gcov-profile/82457).
Martin Liska [Fri, 27 Oct 2017 08:34:56 +0000 (10:34 +0200)]
Document --coverage and fork-like functions (PR gcov-profile/82457).

2017-10-27  Martin Liska  <mliska@suse.cz>

PR gcov-profile/82457
* doc/invoke.texi: Document that one needs a non-strict ISO mode
for fork-like functions to be properly instrumented.

From-SVN: r254137

7 years agore PR middle-end/81659 (ICE in verify_dominators, at dominance.c:1184)
Richard Biener [Fri, 27 Oct 2017 08:03:16 +0000 (08:03 +0000)]
re PR middle-end/81659 (ICE in verify_dominators, at dominance.c:1184)

2017-10-27  Richard Biener  <rguenther@suse.de>

PR middle-end/81659
* tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
info when we redirected EH.

* g++.dg/torture/pr81659.C: New testcase.

From-SVN: r254136

7 years agoaarch64.md (<optab>_trunc><vf><GPI:mode>2): New pattern.
Michael Collison [Fri, 27 Oct 2017 06:05:58 +0000 (06:05 +0000)]
aarch64.md (<optab>_trunc><vf><GPI:mode>2): New pattern.

2017-10-26  Michael Collison  <michael.collison@arm.com>

* config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
New pattern.
(<optab>_trunchf<GPI:mode>2: New pattern.
(<optab>_trunc<vgp><GPI:mode>2: New pattern.
* config/aarch64/iterators.md (wv): New mode attribute.
(vf, VF): New mode attributes.
(vgp, VGP): New mode attributes.
(s): Update attribute with SImode and DImode prefixes.
* testsuite/gcc.target/aarch64/fix_trunc1.c: New testcase.
* testsuite/gcc.target/aarch64/vect-vcvt.c: Fix scan-assembler
directives to allow float or integer destination registers for
fcvtz[su].

From-SVN: r254133

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

From-SVN: r254131

7 years agoProtect more algorithms from overloaded comma operators
Jonathan Wakely [Thu, 26 Oct 2017 23:50:40 +0000 (00:50 +0100)]
Protect more algorithms from overloaded comma operators

* include/bits/stl_algo.h (__find_if_not_n, generate_n): Cast to void
to ensure overloaded comma not used.
* include/bits/stl_algobase.h (__fill_n_a, equal): Likewise.
* include/bits/stl_uninitialized.h (__uninitialized_fill_n)
(__uninitialized_fill_n_a, __uninitialized_default_n_1)
(__uninitialized_default_n_a, __uninitialized_copy_n)
(__uninitialized_copy_n_pair): Likewise
* testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc:
Use test iterator wrappers with overloaded comma operator.
* testsuite/25_algorithms/fill_n/1.cc: Likewise.
* testsuite/25_algorithms/generate_n/1.cc: New test.
* testsuite/25_algorithms/stable_partition/1.cc: New test.
* testsuite/util/testsuite_iterators.h (operator,): Add deleted
non-member comma operator with iterator wrappers as right operand.

From-SVN: r254128

7 years agocompiler: explicitly convert between type aliases
Ian Lance Taylor [Thu, 26 Oct 2017 23:04:12 +0000 (23:04 +0000)]
compiler: explicitly convert between type aliases

    Otherwise we can get a crash in the backend.

    Test case is https://golang.org/cl/73790.

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

From-SVN: r254126

7 years agoconstraints.md ("S"): Match r0rel_constant_p too.
Sandra Loosemore [Thu, 26 Oct 2017 20:52:15 +0000 (16:52 -0400)]
constraints.md ("S"): Match r0rel_constant_p too.

2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
* config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
* config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
(nios2_option_overide): Initialize it.  Don't allow R0-relative
addressing with PIC.
(nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
(nios2_symbolic_constant_p): Likewise.
(nios2_legitimate_address_p): Likewise.
(nios2_r0rel_section_name_p): New.
(nios2_symbol_ref_in_r0rel_data_p): New.
(nios2_emit_move_sequence): Handle r0rel_constant_p.
(r0rel_constant_p): New.
(nios2_print_operand_address): Handle r0rel_constant_p.
(nios2_cdx_narrow_form_p): Likewise.
* config/nios2/nios2.opt (mr0rel-sec=): New option.
* doc/invoke.texi (Option Summary): Add -mr0rel-sec.
(Nios II Options): Document -mr0rel-sec.

gcc/testsuite/
* gcc.target/nios2/gpopt-r0rel-sec.c: New.

From-SVN: r254124

7 years agonios2.c: Include xregex.h.
Sandra Loosemore [Thu, 26 Oct 2017 20:49:48 +0000 (16:49 -0400)]
nios2.c: Include xregex.h.

2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.c: Include xregex.h.
(nios2_gprel_sec_regex): New.
(nios2_option_overide): Initialize it.  Don't allow GP-relative
addressing with PIC.
(nios2_small_section_name_p): Check for regex match.
* config/nios2/nios2.opt (mgprel-sec=): New option.
* doc/invoke.texi (Option Summary): Add -mgprel-sec.
(Nios II Options): Document -mgprel-sec.

gcc/testsuite/
* gcc.target/nios2/gpopt-gprel-sec.c: New.

From-SVN: r254123

7 years agoFix hyphenation build-time path and install-time path.
Jim Wilson [Thu, 26 Oct 2017 20:44:58 +0000 (13:44 -0700)]
Fix hyphenation build-time path and install-time path.

gcc/
* doc/invoke.texi (-fdebug-prefix-map): Expand documentation.

From-SVN: r254122

7 years agoAdd some usage info -fdebug-prefix-map= docs.
James E Wilson [Thu, 26 Oct 2017 20:41:20 +0000 (13:41 -0700)]
Add some usage info -fdebug-prefix-map= docs.

gcc/
* doc/invoke.texi (-fdebug-prefix-map): Expand documentation.

From-SVN: r254121

7 years agoFix unsharing of GIMPLE_OMP_{SINGLE,TARGET,TEAMS} in gimple_copy
Tom de Vries [Thu, 26 Oct 2017 20:09:24 +0000 (20:09 +0000)]
Fix unsharing of GIMPLE_OMP_{SINGLE,TARGET,TEAMS} in gimple_copy

2017-10-26  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/82707
* gimple.c (gimple_copy): Fix unsharing of
GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.

From-SVN: r254120

7 years agoAdding missing CMP* intrinsics
Olga Makhotina [Thu, 26 Oct 2017 18:18:56 +0000 (18:18 +0000)]
Adding missing CMP* intrinsics

gcc/
* config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
_mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
_mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
_mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
_mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
_mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
_mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
_mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
_mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
_mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
_mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
_mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
_mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
_mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
_mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
_mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
_mm512_mask_cmpunord_ps_mask): New intrinsics.
gcc/testsuite/
* gcc.target/i386/avx512f-vcmpps-1.c (_mm512_cmpeq_ps_mask,
_mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
_mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
_mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
_mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
_mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
_mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
_mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
_mm512_mask_cmpunord_ps_mask): Test new intrinsics.
* gcc.target/i386/avx512f-vcmpps-2.c (_mm512_cmpeq_ps_mask,
_mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
_mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
_mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
_mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
_mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
_mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
_mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
_mm512_mask_cmpunord_ps_mask): Test new intrinsics.
* gcc.target/i386/avx512f-vcmppd-1.c (_mm512_cmpeq_pd_mask,
_mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
_mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
_mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
_mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
_mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
_mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
_mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
_mm512_mask_cmpunord_pd_mask): Test new intrinsics.
* gcc.target/i386/avx512f-vcmppd-2.c (_mm512_cmpeq_pd_mask,
_mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
_mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
_mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
_mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
_mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
_mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
_mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
_mm512_mask_cmpunord_pd_mask): Test new intrinsics.

From-SVN: r254118

7 years agoaix.h (TARGET_IEEEQUAD_DEFAULT): Set long double default to IBM.
Michael Meissner [Thu, 26 Oct 2017 17:33:38 +0000 (17:33 +0000)]
aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double default to IBM.

[gcc]
2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
default to IBM.
* config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
* config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
warning to rs6000.c.  Remove the Undocumented flag, since it has
been documented.
(-mabi=ibmlongdouble): Likewise.
* config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
already set, set the default format for long double.
(rs6000_debug_reg_global): Print whether long double is IBM or
IEEE.
(rs6000_option_override_internal): Rework setting long double
format.  Only warn if the user is changing the long double default
and they did not use -Wno-psabi.
* doc/invoke.texi (PowerPC options): Update the documentation for
-mabi=ieeelongdouble and -mabi=ibmlongdouble.

From-SVN: r254116

7 years agoAdd wider_subreg_mode helper functions
Richard Sandiford [Thu, 26 Oct 2017 16:53:43 +0000 (16:53 +0000)]
Add wider_subreg_mode helper functions

This patch adds helper functions that say which of the two modes
involved in a subreg is the larger, preferring the outer mode in
the event of a tie.  It also converts IRA and reload to track modes
instead of byte sizes, since this is slightly more convenient when
variable-sized modes are added later.

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

gcc/
* rtl.h (wider_subreg_mode): New function.
* ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
rather than an unsigned int *.
* ira-color.c (regno_max_ref_width): Replace with...
(regno_max_ref_mode): ...this new variable.
(coalesced_pseudo_reg_slot_compare): Update accordingly.
Use wider_subreg_mode.
(ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
rather than an unsigned int *.
* lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
(process_alt_operands): Likewise.
(invariant_p): Likewise.
* lra-spills.c (assign_mem_slot): Likewise.
(add_pseudo_to_slot): Likewise.
* lra.c (collect_non_operand_hard_regs): Likewise.
(add_regs_to_insn_regno_info): Likewise.
* reload1.c (regno_max_ref_width): Replace with...
(regno_max_ref_mode): ...this new variable.
(reload): Update accordingly.  Update call to
ira_sort_regnos_for_alter_reg.
(alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
(init_eliminable_invariants): Update to use regno_max_ref_mode.
(scan_paradoxical_subregs): Likewise.

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

7 years agoIntroduce emit_frame_chain
Wilco Dijkstra [Thu, 26 Oct 2017 16:51:37 +0000 (16:51 +0000)]
Introduce emit_frame_chain

The current frame code combines the separate concepts of a frame chain
(saving old FP,LR in a record and pointing new FP to it) and a frame
pointer used to access locals.  Add emit_frame_chain to the aarch64_frame
descriptor and use it in the prolog and epilog code.  For now just
initialize it as before, so generated code is identical.

Also correctly set EXIT_IGNORE_STACK.  The current AArch64 epilog code
restores SP from FP if alloca is used.  If a frame pointer is used but
there is no alloca, SP must remain valid for the epilog to work correctly.

    gcc/
* config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
(aarch64_frame): Add emit_frame_chain boolean.
* config/aarch64/aarch64.c (aarch64_frame_pointer_required)
Move eh_return case to aarch64_layout_frame.
(aarch64_layout_frame): Initialize emit_frame_chain.
(aarch64_expand_prologue): Use emit_frame_chain.

From-SVN: r254114

7 years agoDeduction guides for associative containers, debug mode deduction guide fixes.
Ville Voutilainen [Thu, 26 Oct 2017 16:42:31 +0000 (19:42 +0300)]
Deduction guides for associative containers, debug mode deduction guide fixes.

* include/bits/stl_iterator.h (__iter_key_t)
(__iter_val_t, __iter_to_alloc_t): New.
* include/bits/stl_map.h: Add deduction guides.
* include/bits/stl_multimap.h: Likewise.
* include/bits/stl_multiset.h: Likewise.
* include/bits/stl_set.h: Likewise.
* include/bits/unordered_map.h: Likewise.
* include/bits/unordered_set.h: Likewise.
* include/debug/deque: Likewise.
* include/debug/forward_list: Likewise.
* include/debug/list: Likewise.
* include/debug/map.h: Likewise.
* include/debug/multimap.h: Likewise.
* include/debug/multiset.h: Likewise.
* include/debug/set.h: Likewise.
* include/debug/unordered_map: Likewise.
* include/debug/unordered_set: Likewise.
* include/debug/vector: Likewise.
* testsuite/23_containers/map/cons/deduction.cc: New.
* testsuite/23_containers/multimap/cons/deduction.cc: Likewise.
* testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
* testsuite/23_containers/set/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
* testsuite/23_containers/unordered_multimap/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_multiset/cons/deduction.cc:
Likewise.
* testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.

From-SVN: r254113

7 years agoSimplify frame layout for stack probing
Wilco Dijkstra [Thu, 26 Oct 2017 16:40:25 +0000 (16:40 +0000)]
Simplify frame layout for stack probing

This patch makes some changes to the frame layout in order to simplify
stack probing.  We want to use the save of LR as a probe in any non-leaf
function.  With shrinkwrapping we may only save LR before a call, so it
is useful to define a fixed location in the callee-saves. So force LR at
the bottom of the callee-saves even with -fomit-frame-pointer.

Also remove a rarely used frame layout that saves the callee-saves first
with -fomit-frame-pointer.  Doing so allows the store of LR to be used as
a valid stack probe in all frames.

    gcc/
* config/aarch64/aarch64.c (aarch64_layout_frame):
        Ensure LR is always stored at the bottom of the callee-saves.
        Remove rarely used frame layout which saves callee-saves at top of
        frame, so the store of LR can be used as a valid probe in all cases.

From-SVN: r254112

7 years agoImprove addressing of TI/TFmode
Wilco Dijkstra [Thu, 26 Oct 2017 16:34:03 +0000 (16:34 +0000)]
Improve addressing of TI/TFmode

In https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01125.html Jiong
pointed out some addressing inefficiencies due to a recent change in
regcprop (https://gcc.gnu.org/ml/gcc-patches/2017-04/msg00775.html).

This patch improves aarch64_legitimize_address_displacement to split
unaligned offsets of TImode and TFmode accesses.  The resulting code
is better and no longer relies on the original regcprop optimization.

For the test we now produce:

add x1, sp, 4
stp xzr, xzr, [x1, 24]

rather than:

        mov     x1, sp
        add     x1, x1, 28
        stp     xzr, xzr, [x1]

    gcc/
* config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
Improve unaligned TImode/TFmode base/offset split.

    testsuite/
* gcc.target/aarch64/ldp_stp_unaligned_2.c: New file.

From-SVN: r254111

7 years agoMake more use of df_read_modify_subreg_p
Richard Sandiford [Thu, 26 Oct 2017 16:12:09 +0000 (16:12 +0000)]
Make more use of df_read_modify_subreg_p

This patch uses df_read_modify_subreg_p to check whether writing
to a subreg would preserve some of the existing contents.

This has the effect of putting more emphasis on the
REGMODE_NATURAL_SIZE-based definition of whether something can be
partially modified, instead of using UNITS_PER_WORD unconditionally.
This becomes important for SVE, where UNITS_PER_WORD has no
significance for subregs of multi-register LD2/ST2, LD3/ST3 and
LD4/ST4 tuples.

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

gcc/
* caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
* combine.c (find_single_use_1): Likewise.
(expand_field_assignment): Likewise.
(move_deaths): Likewise.
* lra-constraints.c (simplify_operand_subreg): Likewise.
(curr_insn_transform): Likewise.
* lra.c (collect_non_operand_hard_regs): Likewise.
(add_regs_to_insn_regno_info): Likewise.
* rtlanal.c (reg_referenced_p): Likewise.
(covers_regno_no_parallel_p): Likewise.

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

7 years agoStop print_hex from printing bits above the precision
Richard Sandiford [Thu, 26 Oct 2017 16:09:17 +0000 (16:09 +0000)]
Stop print_hex from printing bits above the precision

2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* wide-int-print.cc (print_hex): Loop based on extract_uhwi.
Don't print any bits outside the precision of the value.
* wide-int.cc (test_printing): Add some new tests.

From-SVN: r254109

7 years ago[obvious][arm testsuite] Fixup expected location in require-pic-register-loc.c
James Greenhalgh [Thu, 26 Oct 2017 14:17:40 +0000 (14:17 +0000)]
[obvious][arm testsuite] Fixup expected location in require-pic-register-loc.c

After r254010 we now add -gcolumn-info by default, that means the tests
in gcc.target/arm/require-pic-register-loc.c need adjusting to not expect
to see column zero.

gcc/testsuite/

* gcc.target/arm/require-pic-register-loc.c: Use wider regex for
column information.

From-SVN: r254106

7 years ago[C++ PATCH] Kill IDENTIFIER_LABEL_VALUE
Nathan Sidwell [Thu, 26 Oct 2017 12:47:14 +0000 (12:47 +0000)]
[C++ PATCH] Kill IDENTIFIER_LABEL_VALUE

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01935.html
* decl.c (sort_labels): Restore function.
(pop_labels): Sort labels
(identify_goto): Add translation markup.

From-SVN: r254104

7 years agoUse -xbrace_comment=no with recent Solaris/x86 as
Rainer Orth [Thu, 26 Oct 2017 12:22:21 +0000 (12:22 +0000)]
Use -xbrace_comment=no with recent Solaris/x86 as

* configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
supports -xbrace_comment option.
* configure: Regenerate.
* config.in: Regenerate.
* config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
(ASM_CPU_SPEC): Use it.

From-SVN: r254103

7 years agoThis patch adds a new hook that gives the preferred alignment for a static rtx...
Richard Sandiford [Thu, 26 Oct 2017 11:28:25 +0000 (11:28 +0000)]
This patch adds a new hook that gives the preferred alignment for a static rtx...

TARGET_STATIC_RTX_ALIGNMENT

This patch adds a new hook that gives the preferred alignment for
a static rtx, so that we don't need to query the front end in
force_const_mem.

2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* target.def (static_rtx_alignment): New hook.
* targhooks.h (default_static_rtx_alignment): Declare.
* targhooks.c (default_static_rtx_alignment): New function.
* doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
* doc/tm.texi: Regenerate.
* varasm.c (force_const_mem): Use targetm.static_rtx_alignment
instead of targetm.constant_alignment.  Remove call to
set_mem_attributes.
* config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
(cris_preferred_mininum_alignment): New function, split out from...
(cris_constant_alignment): ...here.
(cris_static_rtx_alignment): New function.
* config/i386/i386.c (ix86_static_rtx_alignment): New function,
split out from...
(ix86_constant_alignment): ...here.
(TARGET_STATIC_RTX_ALIGNMENT): Redefine.
* config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
(mmix_static_rtx_alignment): New function.
* config/spu/spu.c (spu_static_rtx_alignment): New function.
(TARGET_STATIC_RTX_ALIGNMENT): Redefine.

From-SVN: r254102

7 years ago2017-10-26 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Thu, 26 Oct 2017 09:59:14 +0000 (09:59 +0000)]
2017-10-26  Tamar Christina  <tamar.christina@arm.com>

* gcc.dg/vect/vect-reduc-dot-s8a.c
(dg-additional-options, dg-require-effective-target): Add +dotprod.
* gcc.dg/vect/vect-reduc-dot-u8a.c
(dg-additional-options, dg-require-effective-target): Add +dotprod.

From-SVN: r254101

7 years ago2017-10-26 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Thu, 26 Oct 2017 09:57:09 +0000 (09:57 +0000)]
2017-10-26  Tamar Christina  <tamar.christina@arm.com>

* lib/target-supports.exp
(check_effective_target_arm_v8_2a_dotprod_neon_ok_nocache): New.
(check_effective_target_arm_v8_2a_dotprod_neon_ok): New.
(add_options_for_arm_v8_2a_dotprod_neon): New.
(check_effective_target_arm_v8_2a_dotprod_neon_hw): New.
(check_effective_target_vect_sdot_qi): Add ARM && AArch64.
(check_effective_target_vect_udot_qi): Likewise.
* gcc.target/arm/simd/vdot-exec.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vdot-exec.c: New.
* gcc/doc/sourcebuild.texi: Document arm_v8_2a_dotprod_neon.

From-SVN: r254100

7 years agovect-multitypes-1.c: Correct target selector.
Tamar Christina [Thu, 26 Oct 2017 06:56:31 +0000 (06:56 +0000)]
vect-multitypes-1.c: Correct target selector.

2017-10-26  Tamar Christina  <tamar.christina@arm.com>

* gcc.dg/vect/vect-multitypes-1.c: Correct target selector.

From-SVN: r254099

7 years agore PR target/81800 (On aarch64 ilp32 lrint should not be inlined as two instructions)
Tamar Christina [Thu, 26 Oct 2017 06:42:41 +0000 (06:42 +0000)]
re PR target/81800 (On aarch64 ilp32 lrint should not be inlined as two instructions)

2017-10-26  Tamar Christina  <tamar.christina@arm.com>

PR target/81800
* config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): Add flag_trapping_math
and flag_fp_int_builtin_inexact.

gcc/testsuite/
2017-10-26  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/inline-lrint_2.c (dg-options): Add -fno-trapping-math.

From-SVN: r254098

7 years agovect-dot-qi.h: New.
Tamar Christina [Thu, 26 Oct 2017 06:39:56 +0000 (06:39 +0000)]
vect-dot-qi.h: New.

2017-10-26  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/advsimd-intrinsics/vect-dot-qi.h: New.
* gcc.target/aarch64/advsimd-intrinsics/vdot-compile.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vect-dot-s8.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vect-dot-u8.c: New.

From-SVN: r254097

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

From-SVN: r254096

7 years agoC: detect more missing semicolons (PR c/7356)
David Malcolm [Wed, 25 Oct 2017 23:53:41 +0000 (23:53 +0000)]
C: detect more missing semicolons (PR c/7356)

c_parser_declaration_or_fndef has logic for parsing what might be
either a declaration or a function definition.

This patch adds a test to detect cases where a semicolon would have
terminated the decls as a declaration, where the token that follows
would start a new declaration specifier, and updates the error message
accordingly, with a fix-it hint.

This addresses PR c/7356, fixing the case of a stray token before a
#include that previously gave inscrutable output, and improving e.g.:

  int i
  int j;

from:

  t.c:2:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int'
   int j;
   ^~~

to:

  t.c:1:6: error: expected ';' before 'int'
   int i
        ^
        ;
   int j;
   ~~~

gcc.dg/noncompile/920923-1.c needs a slight update, as the output for
the first line changes from:

  920923-1.c:2:14: error: expected '=', ',', ';', 'asm' or
  '__attribute__' before 'unsigned'
   typedef BYTE unsigned char; /* { dg-error "expected" } */
                ^~~~~~~~

to:
  920923-1.c:2:13: error: expected ';' before 'unsigned'
   typedef BYTE unsigned char; /* { dg-error "expected" } */
               ^~~~~~~~~
               ;
  920923-1.c:2:1: warning: useless type name in empty declaration
   typedef BYTE unsigned char; /* { dg-error "expected" } */
   ^~~~~~~

The patch also adds a test for PR c/44515 as a baseline.

gcc/c/ChangeLog:
PR c/7356
* c-parser.c (c_parser_declaration_or_fndef): Detect missing
semicolons.

gcc/testsuite/ChangeLog:
PR c/7356
PR c/44515
* c-c++-common/pr44515.c: New test case.
* gcc.dg/pr7356-2.c: New test case.
* gcc.dg/pr7356.c: New test case.
* gcc.dg/spellcheck-typenames.c: Update the "singed" char "TODO"
case to reflect changes to output.
* gcc.dg/noncompile/920923-1.c: Add dg-warning to reflect changes
to output.

From-SVN: r254093

7 years agoRISC-V: Add Sign/Zero extend patterns for PIC loads
Palmer Dabbelt [Wed, 25 Oct 2017 22:45:55 +0000 (22:45 +0000)]
RISC-V: Add Sign/Zero extend patterns for PIC loads

Loads on RISC-V are sign-extending by default, but we weren't telling
GCC this in our PIC load patterns.  This corrects the problem, and adds
a zero-extending pattern as well.

gcc/ChangeLog

2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>

       * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
       * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
       mark as a sign-extending load.
       (local_pic_load_u): Define.

From-SVN: r254092

7 years agoMakefile.am (check-go-tool): Output colon after ${fl}.
Ian Lance Taylor [Wed, 25 Oct 2017 22:00:50 +0000 (22:00 +0000)]
Makefile.am (check-go-tool): Output colon after ${fl}.

* Makefile.am (check-go-tool): Output colon after ${fl}.
(check-runtime, check-cgo-test, check-carchive-test): Likewise.
* Makefile.in: Rebuild.

From-SVN: r254090

7 years agore PR middle-end/82062 (simple conditional expressions no longer folded)
Eric Botcazou [Wed, 25 Oct 2017 21:53:21 +0000 (21:53 +0000)]
re PR middle-end/82062 (simple conditional expressions no longer folded)

PR middle-end/82062
* fold-const.c (operand_equal_for_comparison_p): Also return true
if ARG0 is a simple variant of ARG1 with narrower precision.
(fold_ternary_loc): Always pass unstripped operands to the predicate.

From-SVN: r254089

7 years ago[C++ PATCH] Kill IDENTIFIER_LABEL_VALUE
Nathan Sidwell [Wed, 25 Oct 2017 21:37:33 +0000 (21:37 +0000)]
[C++ PATCH] Kill IDENTIFIER_LABEL_VALUE

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01854.html
Kill IDENTIFIER_LABEL_VALUE.
* cp-tree.h (lang_identifier): Delete label_value slot.
(IDENTIFIER_LABEL_VALUE, SET_IDENTIFIER_LABEL_VALUE): Delete.
(struct named_label_hasher): Rename to ...
(struct named_label_hash): ... here.  Reimplement.
(struct language_function): Adjust x_named_labels.
* name-lookup.h (struct cp_label_binding): Delete.
(struct cp_binding_level): Delete shadowed_labels slot.
* decl.c (struct named_label_entry): Add name and outer slots.
(pop_label): Rename to ...
(check_label_used): ... here.  Don't pop.
(note_label, sort_labels): Delete.
(pop_labels, pop_local_label): Reimplement.
(poplevel): Pop local labels as any other decl. Remove
shadowed_labels handling.
(named_label_hash::hash, named_label_hash::equal): New.
(make_label_decl): Absorb into ...
(lookup_label_1): ... here.  Add making_local_p arg, reimplement.
(lookup_label, declare_local_label): Adjust.
(check_goto, define_label): Adjust.
* lex.c (make_conv_op_name): Don't clear IDENTIFIER_LABEL_VALUE.
* ptree.c (cxx_print_identifier): Don't print identifier binding.

From-SVN: r254087

7 years ago[C++ PATCH] Label checking cleanups
Nathan Sidwell [Wed, 25 Oct 2017 20:52:54 +0000 (20:52 +0000)]
[C++ PATCH] Label checking cleanups

https://gcc.gnu.org/ml/gcc-patches/2017-10/msg01847.html
* decl.c (identifier_goto): Reduce duplication.
(check_previous_goto_1): Likewise.
(check_goto): Move var decls to initialization.
(check_omp_return, define_label_1, define_label): Likewise.

From-SVN: r254086

7 years agoi386.c (ix86_builtin_vectorization_cost): Compute scatter/gather cost correctly.
Jan Hubicka [Wed, 25 Oct 2017 19:11:41 +0000 (21:11 +0200)]
i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather cost correctly.

* i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
cost correctly.
* i386.h (processor_costs): Add gather_static, gather_per_elt,
scatter_static, scatter_per_elt.
* x86-tune-costs.h: Add new cost entries.

From-SVN: r254083

7 years agomatch.c (gfc_match_type_is): Fix typo in error message
Bernhard Reutner-Fischer [Wed, 25 Oct 2017 19:10:15 +0000 (21:10 +0200)]
match.c (gfc_match_type_is): Fix typo in error message

2017-10-25  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>

* match.c (gfc_match_type_is): Fix typo in error message.

From-SVN: r254082

7 years agoUpdate C++17 library status documentation
Jonathan Wakely [Wed, 25 Oct 2017 14:06:12 +0000 (15:06 +0100)]
Update C++17 library status documentation

* doc/xml/manual/status_cxx2017.xml: Update C++17 status, and
information on feature-test macros.
* doc/html/*: Regenerate.

From-SVN: r254078

7 years agoPR libstdc++/82716 avoid stupid -Wmismatched-tags warnings
Jonathan Wakely [Wed, 25 Oct 2017 13:55:56 +0000 (14:55 +0100)]
PR libstdc++/82716 avoid stupid -Wmismatched-tags warnings

PR libstdc++/82716
* include/std/array (tuple_size, tuple_element): Change class-key
from class to struct, to avoid annoying Clang warnings.

From-SVN: r254077

7 years agoPR libstdc++/79283 fix filesystem::read_symlink for /proc
Jonathan Wakely [Wed, 25 Oct 2017 12:42:58 +0000 (13:42 +0100)]
PR libstdc++/79283 fix filesystem::read_symlink for /proc

PR libstdc++/79283
* src/filesystem/ops.cc (read_symlink): Handle st_size being zero.
* src/filesystem/std-ops.cc (read_symlink): Likewise.
(do_copy_file) [!NEED_DO_COPY_FILE]: Avoid multiple definitions.

From-SVN: r254076

7 years agoFix filesystem::path::lexically_normal algorithm
Jonathan Wakely [Wed, 25 Oct 2017 12:42:53 +0000 (13:42 +0100)]
Fix filesystem::path::lexically_normal algorithm

* src/filesystem/std-path.cc (path::lexically_normal): Add missing
step to algorithm, for removing dot-dot elements after root-directory.
* testsuite/27_io/filesystem/operations/canonical.cc: Use
compare_paths for more exhaustive checks.
* testsuite/27_io/filesystem/operations/proximate.cc: Likewise.
* testsuite/27_io/filesystem/path/append/path.cc: Likewise.
* testsuite/27_io/filesystem/path/concat/path.cc: Likewise.
* testsuite/27_io/filesystem/path/concat/strings.cc: Fix comment.
* testsuite/27_io/filesystem/path/construct/locale.cc: Likewise.
* testsuite/27_io/filesystem/path/decompose/root_directory.cc:
Likewise.
* testsuite/27_io/filesystem/path/generation/normal.cc: Use
compare_paths for more exhaustive checks. Add extra testcases.
* testsuite/27_io/filesystem/path/generation/proximate.cc: Use
compare_paths for more exhaustive checks.
* testsuite/27_io/filesystem/path/generation/relative.cc: Likewise.
* testsuite/27_io/filesystem/path/generic/generic_string.cc: Remove
unused header.
* testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: Fix
comment.
* testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: Use
compare_paths for more exhaustive checks.
* testsuite/27_io/filesystem/path/modifiers/replace_extension.cc:
Likewise.
* testsuite/27_io/filesystem/path/modifiers/replace_filename.cc:
Likewise.
* testsuite/util/testsuite_fs.h (compare_paths): Also compare native
strings.

From-SVN: r254075

7 years agotree-ssa-sccvn.h (vn_eliminate): Declare.
Richard Biener [Wed, 25 Oct 2017 10:20:37 +0000 (10:20 +0000)]
tree-ssa-sccvn.h (vn_eliminate): Declare.

2017-10-25  Richard Biener  <rguenther@suse.de>

* tree-ssa-sccvn.h (vn_eliminate): Declare.
* tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
class pass_fre): Move to ...
* tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
class pass_fre): ... here and adjust for statistics.

From-SVN: r254074

7 years agore PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect...
Richard Biener [Wed, 25 Oct 2017 09:59:39 +0000 (09:59 +0000)]
re PR tree-optimization/82436 (465.tonto ICE in vect_get_slp_vect_defs, at tree-vect-slp.c:3410)

2017-10-25  Richard Biener  <rguenther@suse.de>

PR tree-optimization/82436
* gcc.dg/torture/pr82436-2.c: New testcase.

From-SVN: r254073

7 years agore PR c++/71820 (ICE on valid C++ code: in arg_assoc_type, at cp/name-lookup.c:5583)
Paolo Carlini [Wed, 25 Oct 2017 09:55:21 +0000 (09:55 +0000)]
re PR c++/71820 (ICE on valid C++ code: in arg_assoc_type, at cp/name-lookup.c:5583)

2017-10-25  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71820
* g++.dg/ext/typeof12.C: New.

From-SVN: r254072

7 years agoFix scan-assembler in tree-ssa/loop-1.c for nvptx
Tom de Vries [Wed, 25 Oct 2017 09:43:54 +0000 (09:43 +0000)]
Fix scan-assembler in tree-ssa/loop-1.c for nvptx

2017-10-25  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/tree-ssa/loop-1.c: Add xfail for nvptx in scan-assembler-times
line, and add nvptx-specific version.

From-SVN: r254071

7 years agoFix gcc.target/i386/cet-sjlj-5.c on Solaris
Rainer Orth [Wed, 25 Oct 2017 09:15:30 +0000 (09:15 +0000)]
Fix gcc.target/i386/cet-sjlj-5.c on Solaris

* gcc.target/i386/cet-sjlj-5.c: Allow for emtpy user label prefix
in setjmp call.

From-SVN: r254070

7 years agore PR libstdc++/81706 (std::sin vectorization bug)
Jakub Jelinek [Wed, 25 Oct 2017 08:05:58 +0000 (10:05 +0200)]
re PR libstdc++/81706 (std::sin vectorization bug)

PR libstdc++/81706
* attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
(duplicate_one_attribute, copy_attributes_to_builtin): New functions.
* attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
declarations.

* c-decl.c (merge_decls): Copy "omp declare simd" attributes from
newdecl to corresponding __builtin_ if any.

* decl.c (duplicate_decls): Copy "omp declare simd" attributes from
newdecl to corresponding __builtin_ if any.

* gcc.target/i386/pr81706.c: New test.
* g++.dg/ext/pr81706.C: New test.

From-SVN: r254069

7 years agotree-ssa-pre.c (need_eh_cleanup, [...]): Move inside...
Richard Biener [Wed, 25 Oct 2017 07:08:12 +0000 (07:08 +0000)]
tree-ssa-pre.c (need_eh_cleanup, [...]): Move inside...

2017-10-25  Richard Biener  <rguenther@suse.de>

* tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
eliminate_push_avail, eliminate_insert): Move inside...
(class eliminate_dom_walker): ... this class in preparation
of move.
(fini_eliminate): Remove by merging with ...
(eliminate): ... this function.  Adjust for class changes.
(pass_pre::execute): Remove fini_eliminate call.
(pass_fre::execute): Likewise.

From-SVN: r254068

7 years agoPR libstdc++/82706 fix test for case where operations succeed
Jonathan Wakely [Wed, 25 Oct 2017 00:27:10 +0000 (01:27 +0100)]
PR libstdc++/82706 fix test for case where operations succeed

PR libstdc++/82706
* testsuite/27_io/filesystem/operations/permissions.cc: Fix test.

From-SVN: r254067

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

From-SVN: r254066

7 years agolibstdc++.exp (check_v3_target_normal_mode): Add c++config.h include.
François Dumont [Tue, 24 Oct 2017 20:20:12 +0000 (20:20 +0000)]
libstdc++.exp (check_v3_target_normal_mode): Add c++config.h include.

2017-10-24  François Dumont  <fdumont@gcc.gnu.org>

* testsuite/lib/libstdc++.exp (check_v3_target_normal_mode): Add
c++config.h include.
(check_v3_target_normal_namespace): New.
* testsuite/lib/dg-options.exp (dg-require-normal-namespace): New.
* testsuite/18_support/headers/limits/synopsis.cc: Add latter.
* testsuite/20_util/from_chars/requirements.cc: Likewise.
* testsuite/20_util/headers/functional/synopsis.cc: Likewise.
* testsuite/20_util/headers/memory/synopsis.cc: Likewise.
* testsuite/20_util/headers/utility/synopsis.cc: Likewise.
* testsuite/20_util/to_chars/requirements.cc: Likewise.
* testsuite/21_strings/headers/string/synopsis.cc: Likewise.
* testsuite/22_locale/headers/locale/synopsis.cc: Likewise.
* testsuite/23_containers/headers/bitset/synopsis.cc: Likewise.
* testsuite/23_containers/headers/deque/synopsis.cc: Likewise.
* testsuite/23_containers/headers/forward_list/synopsis.cc: Likewise.
* testsuite/23_containers/headers/list/synopsis.cc: Likewise.
* testsuite/23_containers/headers/map/synopsis.cc: Likewise.
* testsuite/23_containers/headers/queue/synopsis.cc: Likewise.
* testsuite/23_containers/headers/set/synopsis.cc: Likewise.
* testsuite/23_containers/headers/stack/synopsis.cc: Likewise.
* testsuite/23_containers/headers/vector/synopsis.cc: Likewise.
* testsuite/23_containers/map/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/23_containers/multimap/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/23_containers/multiset/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/23_containers/set/modifiers/erase/abi_tag.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis_c++11.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis_c++14.cc: Likewise.
* testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: Likewise.
* testsuite/26_numerics/complex/abi_tag.cc: Likewise.
* testsuite/26_numerics/headers/complex/synopsis.cc: Likewise.
* testsuite/26_numerics/headers/valarray/synopsis.cc: Likewise.
* testsuite/27_io/headers/fstream/synopsis.cc: Likewise.
* testsuite/27_io/headers/ios/synopsis.cc: Likewise.
* testsuite/27_io/headers/istream/synopsis.cc: Likewise.
* testsuite/27_io/headers/ostream/synopsis.cc: Likewise.
* testsuite/27_io/headers/sstream/synopsis.cc: Likewise.
* testsuite/27_io/headers/streambuf/synopsis.cc: Likewise.

From-SVN: r254060

7 years agore PR target/82460 (AVX512: choose between vpermi2d and vpermt2d to save mov instruct...
Jakub Jelinek [Tue, 24 Oct 2017 19:35:37 +0000 (21:35 +0200)]
re PR target/82460 (AVX512: choose between vpermi2d and vpermt2d to save mov instructions.  Also, fails to optimize away shifts before shuffle)

PR target/82460
* config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
(VPERMI2, VPERMI2I): New mode iterators.
(<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
patterns.
(<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
mode iterator.  Remove 3 old define_insn patterns.
(*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
(<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
VPERMI2 mode iterator, remove the other two expanders.
(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
to use VPERMI2 mode iterator, add another alternative for vpermi2*
instructions, remove the other two patterns.
(<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
mode iterator, remove the other two patterns.
* config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
(ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
and adjust argument order accordingly.
(ix86_expand_vec_perm): Adjust caller.
(expand_vec_perm_1): Likewise.
(expand_vec_perm_vpermi2_vpshub2): Rename to ...
(expand_vec_perm_vpermt2_vpshub2): ... this.
(ix86_expand_vec_perm_const_1): Adjust caller.
(ix86_vectorize_vec_perm_const_ok): Adjust comments.

* gcc.target/i386/pr82460-1.c: New test.
* gcc.target/i386/pr82460-2.c: New test.
* gcc.target/i386/avx512f-vpermt2pd-1.c: Adjust scan-assembler*
regexps to allow vpermt2* to vpermi2* replacement or vice versa
where possible.
* gcc.target/i386/avx512vl-vpermt2pd-1.c: Likewise.
* gcc.target/i386/avx512f-vpermt2d-1.c: Likewise.
* gcc.target/i386/vect-pack-trunc-2.c: Likewise.
* gcc.target/i386/avx512vl-vpermt2ps-1.c: Likewise.
* gcc.target/i386/avx512vl-vpermt2q-1.c: Likewise.
* gcc.target/i386/avx512f-vpermt2ps-1.c: Likewise.
* gcc.target/i386/avx512vl-vpermt2d-1.c: Likewise.
* gcc.target/i386/avx512bw-vpermt2w-1.c: Likewise.
* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Likewise.
* gcc.target/i386/avx512f-vpermt2q-1.c: Likewise.

From-SVN: r254059

7 years agore PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but...
Jakub Jelinek [Tue, 24 Oct 2017 19:34:06 +0000 (21:34 +0200)]
re PR target/82370 (AVX512 can use a memory operand for immediate-count vpsrlw, but gcc doesn't.)

PR target/82370
* config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
(VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
(vec_shl_<mode>): Remove unused expander.
(avx512bw_<shift_insn><mode>3): New define_insn.
(<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
(<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.

* gcc.target/i386/pr82370.c: New test.

From-SVN: r254058

7 years agore PR c++/82466 (Missing warning for re-declaration of built-in function as variable)
Paolo Carlini [Tue, 24 Oct 2017 19:01:03 +0000 (19:01 +0000)]
re PR c++/82466 (Missing warning for re-declaration of built-in function as variable)

2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82466
* doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
description.

/cp
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82466
* decl.c (duplicate_decls): Warn for built-in functions declared as
non-function, use OPT_Wbuiltin_declaration_mismatch.

* decl.c (duplicate_decls): Avoid redundant '+' in warning_at.

/c
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82466
* c-decl.c (diagnose_mismatched_decls): Use
OPT_Wbuiltin_declaration_mismatch.

/testsuite
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82466
* c-c++-common/Wbuiltin-declaration-mismatch-1.c: New.
* c-c++-common/Wno-builtin-declaration-mismatch-1.c: Likewise.
* g++.dg/warn/Wbuiltin_declaration_mismatch-1.C: Likewise.
* g++.dg/parse/builtin2.C: Adjust.
* g++.old-deja/g++.mike/p811.C: Likewise.

From-SVN: r254057

7 years agoCleanup autopref scheduling
Wilco Dijkstra [Tue, 24 Oct 2017 17:21:19 +0000 (17:21 +0000)]
Cleanup autopref scheduling

r253236 broke AArch64 bootstrap. Earlier revision r253071 changed scheduling
behaviour on AArch64 as autopref scheduling no longer checks the base.

This patch fixes the bootstrap failure and cleans up autopref scheduling.
The code is greatly simplified.  Sort accesses on the offset first, and
only if the offsets are the same fall back to other comparisons in
rank_for_schedule.  This doesn't at all restore the original behaviour
since we no longer compare the base address, but it now defines a total
sorting order.  More work will be required to improve the sorting so
that only loads/stores with the same base are affected.

    gcc/
PR rtl-optimization/82396
* gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
(autopref_multipass_init): Simplify initialization.
(autopref_rank_data): Simplify sort order.
* gcc/sched-int.h (autopref_multipass_data_): Remove
multi_mem_insn_p, min_offset and max_offset.

From-SVN: r254056

7 years agoPR60580: Fix frame pointer option magic
Wilco Dijkstra [Tue, 24 Oct 2017 16:58:02 +0000 (16:58 +0000)]
PR60580: Fix frame pointer option magic

To fix PR60580 simplify the logic in aarch64_override_options_after_change_1 ().
If the frame pointer is enabled, set it to a special value that behaves similar
to frame pointer omission.  If we don't do this all leaf functions will get a
frame pointer even if flag_omit_leaf_frame_pointer is set.

If flag_omit_frame_pointer has this special value, we must force the frame
pointer if not in a leaf function.  We also need to force it in a leaf function
if flag_omit_frame_pointer is not set or if LR is used.

Doing this allows both -fomit-frame-pointer and -fomit-leaf-frame-pointer to be
independently set and changed in each function with the expected behaviour.

    gcc/
PR middle-end/60580
* config/aarch64/aarch64.c (aarch64_frame_pointer_required)
Check special value of flag_omit_frame_pointer.
(aarch64_can_eliminate): Likewise.
(aarch64_override_options_after_change_1): Simplify handling of
-fomit-frame-pointer and -fomit-leaf-frame-pointer.

From-SVN: r254052

7 years agore PR c++/80991 (ICE with __is_trivially_constructible in template)
Paolo Carlini [Tue, 24 Oct 2017 16:41:05 +0000 (16:41 +0000)]
re PR c++/80991 (ICE with __is_trivially_constructible in template)

/cp
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80991
* pt.c (value_dependent_expression_p, [TRAIT_EXPR]): Handle
a TREE_LIST as TRAIT_EXPR_TYPE2.

/testsuite
2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80991
* g++.dg/ext/is_trivially_constructible5.C: New.

From-SVN: r254051

7 years agoFix gcc.target/i386/387-ficom-[12].c on Solaris
Rainer Orth [Tue, 24 Oct 2017 16:30:44 +0000 (16:30 +0000)]
Fix gcc.target/i386/387-ficom-[12].c on Solaris

* gcc.target/i386/387-ficom-1.c: Allow for ficomp without s
suffix.
* gcc.target/i386/387-ficom-2.c: Likewise.

From-SVN: r254050

7 years agoFix gcc.target/i386/cet-sjlj-3.c on Solaris
Rainer Orth [Tue, 24 Oct 2017 16:29:20 +0000 (16:29 +0000)]
Fix gcc.target/i386/cet-sjlj-3.c on Solaris

* gcc.target/i386/cet-sjlj-3.c: Allow for emtpy user label prefix
in setjmp call.

From-SVN: r254049

7 years agore PR tree-optimization/82697 (Wrong optimization with aliasing and "if")
Richard Biener [Tue, 24 Oct 2017 13:51:45 +0000 (13:51 +0000)]
re PR tree-optimization/82697 (Wrong optimization with aliasing and "if")

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

PR tree-optimization/82697
* tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
zero for conditional load and unconditional store.

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

From-SVN: r254047

7 years agore PR c++/82307 (unscoped enum-base incorrect cast)
Mukesh Kapoor [Tue, 24 Oct 2017 13:49:13 +0000 (13:49 +0000)]
re PR c++/82307 (unscoped enum-base incorrect cast)

/cp
2017-10-24  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
    Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82307
* cvt.c (type_promotes_to): Implement C++17, 7.6/4, about unscoped
enumeration type whose underlying type is fixed.

/testsuite
2017-10-24  Mukesh Kapoor  <mukesh.kapoor@oracle.com>
    Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/82307
* g++.dg/cpp0x/enum35.C: New.
* g++.dg/cpp0x/enum36.C: Likewise.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r254046

7 years agoAvoid -Wattribute-alias warnings for long double compat symbols
Jonathan Wakely [Tue, 24 Oct 2017 13:18:59 +0000 (14:18 +0100)]
Avoid -Wattribute-alias warnings for long double compat symbols

* config/locale/gnu/c_locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]: Ignore
-Wattribute-alias warnings.
* src/c++11/istream-inst.cc: Likewise.
* src/c++11/locale-inst.cc: Likewise.
* src/c++11/ostream-inst.cc: Likewise.
* src/c++11/wlocale-inst.cc: Likewise.
* src/c++98/hash-long-double-tr1-aux.cc: Likewise.

From-SVN: r254045

7 years agoRefactor std::basic_string_view members and add noexcept
Jonathan Wakely [Tue, 24 Oct 2017 13:18:52 +0000 (14:18 +0100)]
Refactor std::basic_string_view members and add noexcept

* include/bits/string_view.tcc (find_first_of, find_last_of)
(find_first_not_of, find_last_not_of): Add noexcept.
* include/std/string_view (basic_string_view(const _CharT*))
(basic_string_view(const _CharT*, size_type))
(front, back, remove_prefix, remove_suffix, find, rfind)
(find_first_of, find_first_not_of): Add noexcept.
(at(size_type), _S_compare(size_type, size_type)): Replace conditional
expressions with if statements.
(copy(_CharT*, size_type, size_type), substr(size_type, size_type)):
Use _M_check for length checks.
(compare(basic_string_view)): Reformat.
(_M_check(size_type, const char)): Add noexcept(false).
(_M_limit(size_type, size_type)): Use noexcept not _GLIBCXX_NOEXCEPT.

From-SVN: r254044

7 years agoAdd bootstrap-cet.mk to bootstrap GCC with Intel CET
H.J. Lu [Tue, 24 Oct 2017 12:50:03 +0000 (12:50 +0000)]
Add bootstrap-cet.mk to bootstrap GCC with Intel CET

Bootstrap GCC with Intel CET by configuring GCC with

--with-build-config="bootstrap-cet bootstrap-debug"

Tested on Linux/i686 and Linux/x86-64.

config/

* bootstrap-cet.mk: New file.

gcc/

* doc/install.texi: Document bootstrap-cet.

From-SVN: r254043

7 years agoPR82687, g++.dg/asan/default-options-1.C fails with PR82575 fix
Alan Modra [Tue, 24 Oct 2017 12:45:01 +0000 (23:15 +1030)]
PR82687, g++.dg/asan/default-options-1.C fails with PR82575 fix

The problem with making discarded symbols hidden is that the
non-default visibility is sticky.  When symbols other than the
__gnu_lto ones are discarded that turns out to be a bad idea.

PR lto/82687
PR lto/82575
* simple-object-elf.c (simple_object_elf_copy_lto_debug_sections):
Only make __gnu_lto symbols hidden.  Delete outdated comment.
Silence ISO C warning.

From-SVN: r254042

7 years agoPR libstdc++/82685 add 'noexcept' to string_view literals
Jonathan Wakely [Tue, 24 Oct 2017 11:28:40 +0000 (12:28 +0100)]
PR libstdc++/82685 add 'noexcept' to string_view literals

PR libstdc++/82685
* include/experimental/string_view (operator""sv): Add noexcept.
* include/std/string_view (operator""sv): Likewise.

From-SVN: r254041

7 years agoi386: Don't insert ENDBR at function entrance when called directly
H.J. Lu [Tue, 24 Oct 2017 10:52:50 +0000 (10:52 +0000)]
i386: Don't insert ENDBR at function entrance when called directly

There is no need to insert ENDBR instruction at function entrance if
function is only called directly.

gcc/

PR target/82659
* config/i386/i386.c (rest_of_insert_endbranch): Don't insert
ENDBR instruction at function entrance if function is only
called directly.

gcc/testsuite/

PR target/82659
* gcc.target/i386/cet-label-2.c: New test.
* gcc.target/i386/cet-sjlj-4.c: Likewise.
* gcc.target/i386/cet-sjlj-5.c: Likewise.
* gcc.target/i386/cet-switch-3.c: Likewise.
* gcc.target/i386/pr82659-1.c: Likewise.
* gcc.target/i386/pr82659-2.c: Likewise.
* gcc.target/i386/pr82659-3.c: Likewise.
* gcc.target/i386/pr82659-4.c: Likewise.
* gcc.target/i386/pr82659-5.c: Likewise.
* gcc.target/i386/pr82659-6.c: Likewise.

From-SVN: r254040

7 years agore PR rtl-optimization/82628 (wrong code at -Os on x86_64-linux-gnu in the 32-bit...
Jakub Jelinek [Tue, 24 Oct 2017 10:44:56 +0000 (12:44 +0200)]
re PR rtl-optimization/82628 (wrong code at -Os on x86_64-linux-gnu in the 32-bit mode)

PR target/82628
* config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
patterns to better describe from which operation the CF is computed.
(addcarry<mode>_0, subborrow<mode>_0): New patterns.
* config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
is 0, use _0 suffixed expanders instead of emitting a comparison
before it.

From-SVN: r254039

7 years agoAvoid 512-bit mode MOV for prefer-avx256 option in Intel AVX512 configuration
Sergey Shalnov [Tue, 24 Oct 2017 10:34:55 +0000 (10:34 +0000)]
Avoid 512-bit mode MOV for prefer-avx256 option in Intel AVX512 configuration

gcc/
* config/i386/i386.md(*movsf_internal, *movdf_internal):
Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.

From-SVN: r254038

7 years agore PR middle-end/82569 (failure in 177.mesa cpu2000 test case after r253530)
Eric Botcazou [Tue, 24 Oct 2017 07:26:52 +0000 (07:26 +0000)]
re PR middle-end/82569 (failure in 177.mesa cpu2000 test case after r253530)

PR middle-end/82569
* tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
* expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
* loop-iv.c (iv_get_reaching_def): Likewise.
* cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
variable is promoted and the partition contains undefined values.

From-SVN: r254037

7 years agore PR tree-optimization/82672 ([GRAPHITE] ICE in verify_gimple_in_cfg)
Richard Biener [Tue, 24 Oct 2017 07:02:48 +0000 (07:02 +0000)]
re PR tree-optimization/82672 ([GRAPHITE] ICE in verify_gimple_in_cfg)

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

PR tree-optimization/82672
* graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
Fold the stmt if we propagated into it.

* gfortran.dg/graphite/pr82672.f90: New testcase.

From-SVN: r254036

7 years agocdx-branch.c: Fix broken test.
Sandra Loosemore [Tue, 24 Oct 2017 02:39:11 +0000 (22:39 -0400)]
cdx-branch.c: Fix broken test.

2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* gcc.target/nios2/cdx-branch.c:  Fix broken test.
* gcc.target/nios2/lo-addr-bypass.c: New.
* gcc.target/nios2/lo-addr-char.c: New.
* gcc.target/nios2/lo-addr-int.c: New.
* gcc.target/nios2/lo-addr-pic.c: New.
* gcc.target/nios2/lo-addr-short.c: New.
* gcc.target/nios2/lo-addr-tls.c: New.
* gcc.target/nios2/lo-addr-uchar.c: New.
* gcc.target/nios2/lo-addr-ushort.c: New.
* gcc.target/nios2/lo-addr-volatile.c: New.

From-SVN: r254035

7 years agonios2.c (nios2_rtx_costs): Make costs better reflect reality.
Sandra Loosemore [Tue, 24 Oct 2017 02:37:02 +0000 (22:37 -0400)]
nios2.c (nios2_rtx_costs): Make costs better reflect reality.

2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.c (nios2_rtx_costs): Make costs better
reflect reality.
(nios2_address_cost): Define.
(nios2_legitimize_address): Recognize (exp + constant) directly.
(TARGET_ADDRESS_COST): Define.

From-SVN: r254034

7 years agonios2-protos.h (nios2_large_constant_p): Declare.
Sandra Loosemore [Tue, 24 Oct 2017 02:35:50 +0000 (22:35 -0400)]
nios2-protos.h (nios2_large_constant_p): Declare.

2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
(nios2_symbolic_memory_operand_p): Declare.
(nios2_split_large_constant): Declare.
(nios2_split_symbolic_memory_operand): Declare.
* config/nios2/nios2.c: Adjust includes.
(nios2_symbolic_constant_allowed): New.
(nios2_symbolic_constant_p): New.
(nios2_plus_symbolic_constant_p): New.
(nios2_valid_addr_expr_p): Recognize addresses involving
symbolic constants.
(nios2_legitimate_address_p): Likewise, also LO_SUM.
(nios2_symbolic_memory_operand_p): New.
(nios2_large_constant_p): New.
(nios2_split_large_constant): New.
(nios2_split_plus_large_constant): New.
(nios2_split_symbolic_memory_operand): New.
(nios2_legitimize_address): Code refactoring.  Handle addresses
involving symbolic constants.
(nios2_emit_move_sequence): Likewise.
(nios2_print_operand): Improve error output.
(nios2_print_operand_address): Handle LO_SUM.
(nios2_cdx_narrow_form_p): Likewise.
* config/nios2/nios2.md (movqi_internal): Add splitter for memory
operands involving symbolic constants.
(movhi_internal, movsi_internal): Likewise.
(zero_extendhisi2, zero_extendqi<mode>2): Likewise.
(extendhisi2, extendqi<mode>2): Likewise.

From-SVN: r254033

7 years agotree-pass.h (PROP_rtl_split_insns): Define.
Sandra Loosemore [Tue, 24 Oct 2017 02:24:34 +0000 (22:24 -0400)]
tree-pass.h (PROP_rtl_split_insns): Define.

2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* tree-pass.h (PROP_rtl_split_insns): Define.
* recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.

From-SVN: r254032

7 years agonios2.c (TARGET_LRA_P): Don't override.
Sandra Loosemore [Tue, 24 Oct 2017 02:00:34 +0000 (22:00 -0400)]
nios2.c (TARGET_LRA_P): Don't override.

2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config/nios2/nios2.c (TARGET_LRA_P): Don't override.

From-SVN: r254031

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

From-SVN: r254030

7 years agore PR c++/80449 (ICE reporting failed partial class template specialization class...
Paolo Carlini [Mon, 23 Oct 2017 21:37:59 +0000 (21:37 +0000)]
re PR c++/80449 (ICE reporting failed partial class template specialization class template argument deduction)

/cp
2017-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80449
* semantics.c (finish_compound_literal): Check do_auto_deduction
return value for error_mark_node.

/testsuite
2017-10-23  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/80449
* g++.dg/cpp1z/class-deduction46.C: New.

From-SVN: r254026

7 years agore PR debug/82630 (Bogus DW_AT_GNU_call_site_value)
Jakub Jelinek [Mon, 23 Oct 2017 20:39:59 +0000 (22:39 +0200)]
re PR debug/82630 (Bogus DW_AT_GNU_call_site_value)

PR debug/82630
* target.def (const_not_ok_for_debug_p): Default to
default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
* targhooks.h (default_const_not_ok_for_debug_p): New declaration.
* targhooks.c (default_const_not_ok_for_debug_p): New function.
* dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
which targetm.const_not_ok_for_debug_p returned true.
* config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
for UNSPECs.
* config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
Likewise.
* config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
* config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
if !base_term_p.
(ix86_const_not_ok_for_debug_p): New function.
(i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
(TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.

* g++.dg/guality/pr82630.C: New test.

From-SVN: r254025

7 years agoAdd INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)
David Malcolm [Mon, 23 Oct 2017 20:25:58 +0000 (20:25 +0000)]
Add INCLUDE_UNIQUE_PTR and use it (PR bootstrap/82610)

gcc/ChangeLog:
PR bootstrap/82610
* system.h: Conditionally include "unique-ptr.h" if
INCLUDE_UNIQUE_PTR is defined.
* unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
of defining INCLUDE_UNIQUE_PTR before including "system.h".

include/ChangeLog:
* unique-ptr.h: Make include of <memory> conditional on C++11 or
later.

From-SVN: r254024

7 years agoPR c++/77369 - wrong noexcept handling in C++14 and below
Jason Merrill [Mon, 23 Oct 2017 19:06:37 +0000 (15:06 -0400)]
PR c++/77369 - wrong noexcept handling in C++14 and below

* tree.c (strip_typedefs): Canonicalize TYPE_RAISES_EXCEPTIONS.

From-SVN: r254022

7 years ago* g++.dg/opt/pr82577: Fix for C++17.
Jason Merrill [Mon, 23 Oct 2017 19:06:32 +0000 (15:06 -0400)]
* g++.dg/opt/pr82577: Fix for C++17.

From-SVN: r254021

7 years agore PR target/82662 (ifcvt is not performed on double-word compare)
Uros Bizjak [Mon, 23 Oct 2017 19:01:38 +0000 (21:01 +0200)]
re PR target/82662 (ifcvt is not performed on double-word compare)

PR target/82662
* gcc.target/i386/pr82662.c: New test.

From-SVN: r254020

7 years agorl78.md: New define_expand "subdi3".
Sebastian Perta [Mon, 23 Oct 2017 17:54:02 +0000 (17:54 +0000)]
rl78.md: New define_expand "subdi3".

* config/rl78/rl78.md: New define_expand "subdi3".
* config/rl78/subdi3.S: New assembly file.
* config/rl78/t-rl78: Added subdi3.S to LIB2ADD.

From-SVN: r254019

7 years agoForgot to add the new file :-P 2017-10-13 Sebastian Perta <sebastian.perta@renesas...
Sebastian Perta [Mon, 23 Oct 2017 17:30:22 +0000 (13:30 -0400)]
Forgot to add the new file :-P 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>

Forgot to add the new file :-P
2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
* config/rl78/adddi3.S: New assembly file.
* config/rl78/t-rl78: Added adddi3.S to LIB2ADD.

From-SVN: r254016

7 years agore PR c/82681 (c-warn.c:1218: typo in warning message)
Marek Polacek [Mon, 23 Oct 2017 17:03:11 +0000 (17:03 +0000)]
re PR c/82681 (c-warn.c:1218: typo in warning message)

PR c/82681
* c-warn.c (warnings_for_convert_and_check): Fix typos.

* gcc.dg/c90-const-expr-11.c: Fix typos in dg-warning.
* gcc.dg/overflow-warn-5.c: Likewise.
* gcc.dg/overflow-warn-8.c: Likewise.

From-SVN: r254014