platform/upstream/gcc.git
7 years agopr71347.c: Put back XFAIL on sparc.
Richard Biener [Fri, 31 Mar 2017 09:18:18 +0000 (09:18 +0000)]
pr71347.c: Put back XFAIL on sparc.

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

* gcc.dg/tree-ssa/pr71347.c: Put back XFAIL on sparc.

From-SVN: r246612

7 years agopr71347.c: Put back XFAIL.
Richard Biener [Fri, 31 Mar 2017 09:14:52 +0000 (09:14 +0000)]
pr71347.c: Put back XFAIL.

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

* gcc.dg/tree-ssa/pr71347.c: Put back XFAIL.

From-SVN: r246611

7 years agore PR libstdc++/80251 (Is the is_aggregate meta function missing?)
Jakub Jelinek [Fri, 31 Mar 2017 06:40:39 +0000 (08:40 +0200)]
re PR libstdc++/80251 (Is the is_aggregate meta function missing?)

PR libstdc++/80251
c-family/
* c-common.h (enum rid): Add RID_IS_AGGREGATE.
* c-common.c (c_common_reswords): Add __is_aggregate trait.
cp/
* cp-tree.h (enum cp_trait_kind): Add CPTK_IS_AGGREGATE.
* cxx-pretty-print.c (pp_cxx_trait_expression): Handle
CPTK_IS_AGGREGATE.
* semantics.c (trait_expr_value): Handle CPTK_IS_AGGREGATE.
Remove extraneous parens.
(finish_trait_expr): Handle CPTK_IS_AGGREGATE.
* parser.c (cp_parser_primary_expression): Handle RID_IS_AGGREGATE.
(cp_parser_trait_expr): Likewise.
testsuite/
* g++.dg/ext/is_aggregate.C: New test.

From-SVN: r246609

7 years agore PR middle-end/80173 (ICE in store_bit_field_1, at expmed.c:787)
Jakub Jelinek [Fri, 31 Mar 2017 06:38:35 +0000 (08:38 +0200)]
re PR middle-end/80173 (ICE in store_bit_field_1, at expmed.c:787)

PR middle-end/80173
* expmed.c (store_bit_field_1): Don't attempt to create
a word subreg out of hard registers wider than word if they
have HARD_REGNO_NREGS of 1 for their mode.

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

From-SVN: r246608

7 years agore PR middle-end/80163 (ICE on hopefully valid code)
Jakub Jelinek [Fri, 31 Mar 2017 06:32:46 +0000 (08:32 +0200)]
re PR middle-end/80163 (ICE on hopefully valid code)

PR middle-end/80163
* varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
conversions to integer types wider than word and pointer.

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

From-SVN: r246607

7 years agore PR debug/80025 (ICE w/ -O2 (-O3, -Ofast) -g -ftracer (infinite recursion in rtx_eq...
Jakub Jelinek [Fri, 31 Mar 2017 06:05:47 +0000 (08:05 +0200)]
re PR debug/80025 (ICE w/ -O2 (-O3, -Ofast) -g -ftracer (infinite recursion in rtx_equal_for_cselib_1))

PR debug/80025
* cselib.h (rtx_equal_for_cselib_1): Add depth argument.
(rtx_equal_for_cselib_p): Pass 0 to it.
* cselib.c (cselib_hasher::equal): Likewise.
(rtx_equal_for_cselib_1): Add depth argument.  If depth
is 128, don't look up VALUE locs and punt.  Increment
depth in recursive calls when walking VALUE locs.

* gcc.dg/torture/pr80025.c: New test.

From-SVN: r246606

7 years agogcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
Bernd Edlinger [Fri, 31 Mar 2017 02:52:39 +0000 (02:52 +0000)]
gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.

2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
        (make_gcov_file_name): Use the canonical path name for generating
        the MD5 value.
        (read_line): Fix handling of files with ascii null bytes.

From-SVN: r246605

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

From-SVN: r246604

7 years agoFix ICE when expanding MSA constant vectors with replicated values
Matthew Fortune [Thu, 30 Mar 2017 22:47:38 +0000 (22:47 +0000)]
Fix ICE when expanding MSA constant vectors with replicated values

gcc/
* config/mips/mips.c (mips_expand_vector_init): Create
a const_vector to initialise a vector register instead of
using a const_int.

From-SVN: r246601

7 years agoFix pr52125.c test when built as -mno-abicalls -mabi=64
Matthew Fortune [Thu, 30 Mar 2017 21:59:20 +0000 (21:59 +0000)]
Fix pr52125.c test when built as -mno-abicalls -mabi=64

gcc/testsuite/
* gcc.target/mips/pr52125.c: Add -msym32.

From-SVN: r246600

7 years agore PR translation/80189 (gimplify.c: check whether parallel/task/teams should be...
Jakub Jelinek [Thu, 30 Mar 2017 20:31:40 +0000 (22:31 +0200)]
re PR translation/80189 (gimplify.c: check whether parallel/task/teams should be translated)

PR translation/80189
* gimplify.c (omp_default_clause): Use %qs instead of %s in
diagnostic messages.
testsuite/
* g++.dg/gomp/predetermined-1.C: Adjust expected diagnostics.
* g++.dg/gomp/sharing-1.C: Likewise.
* gfortran.dg/gomp/pr44536.f90: Likewise.
* gfortran.dg/gomp/pr44036-1.f90: Likewise.
* gfortran.dg/gomp/sharing-3.f90: Likewise.
* gfortran.dg/gomp/crayptr3.f90: Likewise.
* gfortran.dg/gomp/pr33439.f90: Likewise.
* gfortran.dg/gomp/appendix-a/a.24.1.f90: Likewise.
* gfortran.dg/gomp/sharing-1.f90: Likewise.
* gfortran.dg/gomp/sharing-2.f90: Likewise.
* gcc.dg/gomp/appendix-a/a.24.1.c: Likewise.
* gcc.dg/gomp/sharing-1.c: Likewise.

From-SVN: r246599

7 years ago* env.c (initialize_env): Initialize stacksize to 0.
Jakub Jelinek [Thu, 30 Mar 2017 20:29:20 +0000 (22:29 +0200)]
* env.c (initialize_env): Initialize stacksize to 0.

From-SVN: r246598

7 years agore PR target/80246 (Builtin's for POWER's dxex[q] and diex[q] use the wrong types)
Peter Bergner [Thu, 30 Mar 2017 19:57:20 +0000 (14:57 -0500)]
re PR target/80246 (Builtin's for POWER's dxex[q] and diex[q] use the wrong types)

gcc/
PR target/80246
* config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
(dfp_diex_<mode>): Update mode of operand 1.
* doc/extend.texi (dxex, dxexq): Document change to return type.
(diex, diexq): Document change to argument type.

gcc/testsuite/
PR target/80246
* gcc.target/powerpc/dfp-builtin-1.c: Remove unneeded dg-skip-if for
Darwin and SPE.
(dxex, dxexq): Update return type.
(diex, diexq): Update argument type.
* gcc.target/powerpc/pr80246.c: New test.

From-SVN: r246594

7 years ago[PR 77333] Fixup fntypes of gimple calls of clones
Martin Jambor [Thu, 30 Mar 2017 13:51:02 +0000 (15:51 +0200)]
[PR 77333] Fixup fntypes of gimple calls of clones

2017-03-30  Martin Jambor  <mjambor@suse.cz>

PR ipa/77333
* cgraph.h (cgraph_build_function_type_skip_args): Declare.
* cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
it reflects the signature changes performed at the callee side.
* cgraphclones.c (build_function_type_skip_args): Make public, renamed
to cgraph_build_function_type_skip_args.
(build_function_decl_skip_args): Adjust call to the above function.

testsuite/
* g++.dg/ipa/pr77333.C: New test.

From-SVN: r246589

7 years agore PR target/80206 (ICE in extract_insn, at recog.c:2327)
Jakub Jelinek [Thu, 30 Mar 2017 13:29:28 +0000 (15:29 +0200)]
re PR target/80206 (ICE in extract_insn, at recog.c:2327)

PR target/80206
* config/i386/sse.md
(<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
register as dest whenever it is a MEM not rtx_equal_p to the
corresponding dup operand, and when forcing into reg move the
reg into the memory afterwards.
(<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
for the force_reg mode.
(avx512vl_vextractf128<mode>): Use register as dest either
always when a MEM, or when it is a MEM not rtx_equal_p to the
corresponding dup operand, or even not when it is a CONST_VECTOR
depending on the mode and lo vs. hi.
(avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
parens.
(avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
(<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
Likewise.  Require that operands[2] is even.
(<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
Remove extraneous parens.  Require that operands[2] is a multiple
of 4.
(vec_extract_lo_<mode><mask_name>): Don't bother testing if
operands[0] is a MEM if <mask_applied>, the predicates/constraints
disallow memory then.

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

From-SVN: r246588

7 years agore PR tree-optimization/77498 (Performance drop after r239414 on spec2000/172mgrid)
Richard Biener [Thu, 30 Mar 2017 07:15:39 +0000 (07:15 +0000)]
re PR tree-optimization/77498 (Performance drop after r239414 on spec2000/172mgrid)

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

PR tree-optimization/77498
* tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
to non-constants over backedges.

* gfortran.dg/pr77498.f: New testcase.

From-SVN: r246583

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

From-SVN: r246581

7 years agore PR c/79730 (ICE tree check: expected var_decl, have function_decl in finish_decl...
Marek Polacek [Wed, 29 Mar 2017 23:40:36 +0000 (23:40 +0000)]
re PR c/79730 (ICE tree check: expected var_decl, have function_decl in finish_decl, at c/c-decl.c:5063)

PR c/79730
* c-decl.c (finish_decl): Check VAR_P.

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

From-SVN: r246578

7 years agore PR fortran/78670 ([F03] Incorrect file position with namelist read under DTIO)
Jerry DeLisle [Wed, 29 Mar 2017 21:37:45 +0000 (21:37 +0000)]
re PR fortran/78670 ([F03] Incorrect file position with namelist read under DTIO)

2017-03-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/78670
* io/list_read.c (nml_get_obj_data): Delete code which calls the
child read procedure. (nml_read_obj): Insert the code which
calls the child procedure. Don't need to touch nodes if using
dtio since parent will not be traversing the components.

PR libgfortran/78670
* gfortran.dg/dtio_25.f90: Use 'a1' format when trying to read
a character of length 1. Update test for success.
* gfortran.dg/dtio_28.f03: New test.
* gfortran.dg/dtio_4.f90: Update to open test file with status =
'scratch' to delete the file when done.

From-SVN: r246576

7 years agocombine: Fix PR80233
Segher Boessenkool [Wed, 29 Mar 2017 20:53:59 +0000 (22:53 +0200)]
combine: Fix PR80233

If combine has added an unconditional trap there will be a new basic
block as well.  It will then end up considering the NOTE_INSN_BASIC_BLOCK
as the last_combined_insn, but then it tries to take the DF_INSN_LUID
of that and that dereferences a NULL pointer (since such a note is not
an INSN_P).

This fixes it by not taking non-insns as last_combined_insn.

PR rtl-optimization/80233
* combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
as last_combined_insn.  Do not test for BARRIER_P separately.

gcc/testsuite/
PR rtl-optimization/80233
* gcc.c-torture/compile/pr80233.c: New testcase.

From-SVN: r246575

7 years ago* fr.po: Update.
Joseph Myers [Wed, 29 Mar 2017 19:47:51 +0000 (20:47 +0100)]
* fr.po: Update.

From-SVN: r246574

7 years agore PR fortran/80254 (Windows test failure: dec_io_2.f90)
Thomas Koenig [Wed, 29 Mar 2017 17:30:58 +0000 (17:30 +0000)]
re PR fortran/80254 (Windows test failure: dec_io_2.f90)

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

PR fortran/80254
* gfortran.dg/dec_io_2.f90:  Do not run on MINGW, run
* gfortran.dg/dec_io_2a.f90:  instead (new test).

From-SVN: r246573

7 years agore PR ada/80146 (ICE in copy_to_mode_reg, at explow.c:612)
Andreas Schwab [Wed, 29 Mar 2017 14:18:07 +0000 (14:18 +0000)]
re PR ada/80146 (ICE in copy_to_mode_reg, at explow.c:612)

PR ada/80146
* calls.c (prepare_call_address): Convert funexp to Pmode before
copying to temp reg.

From-SVN: r246570

7 years agoChange log cleanup from 2017-03-21
William Schmidt [Wed, 29 Mar 2017 13:00:56 +0000 (13:00 +0000)]
Change log cleanup from 2017-03-21

From-SVN: r246569

7 years agore PR tree-optimization/80158 (ICE in all_phi_incrs_profitable)
Bill Schmidt [Wed, 29 Mar 2017 12:56:26 +0000 (12:56 +0000)]
re PR tree-optimization/80158 (ICE in all_phi_incrs_profitable)

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

PR tree-optimization/80158
* gimple-ssa-strength-reduction.c (replace_mult_candidate):
Handle possible future case of more than one alternate
interpretation.
(replace_rhs_if_not_dup): Likewise.
(replace_one_candidate): Likewise.

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

7 years agoAdjust optional's pretty printer for LWG 2900.
Ville Voutilainen [Wed, 29 Mar 2017 12:05:50 +0000 (15:05 +0300)]
Adjust optional's pretty printer for LWG 2900.

* python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__):
Look at the nested payload in case of non-experimental optional.

From-SVN: r246566

7 years ago[g++, testsuite] XFAIL thread_local-order2.C on newlib
Jiong Wang [Wed, 29 Mar 2017 10:33:04 +0000 (10:33 +0000)]
[g++, testsuite] XFAIL thread_local-order2.C on newlib

testsuite/
* g++.dg/tls/thread_local-order2.C: XFAIL on newlib.

As commented by Mike, it's better that newlib support this feature, tracked by

  https://sourceware.org/bugzilla/show_bug.cgi?id=21325

From-SVN: r246563

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

From-SVN: r246560

7 years ago* es.po: Update.
Joseph Myers [Tue, 28 Mar 2017 23:27:18 +0000 (00:27 +0100)]
* es.po: Update.

From-SVN: r246557

7 years agoImplement LWG 2900, The copy and move constructors of optional are not constexpr.
Ville Voutilainen [Tue, 28 Mar 2017 23:05:21 +0000 (02:05 +0300)]
Implement LWG 2900, The copy and move constructors of optional are not constexpr.

Implement LWG 2900, The copy and move constructors
of optional are not constexpr.
* include/std/optional (_Optional_payload): New.
(_Optional_base): Remove the bool parameter.
(_Optional_base<_Tp, false>): Remove.
(_Optional_base()): Adjust.
(_Optional_base(nullopt_t)): Likewise.
(_Optional_base(in_place_t, _Args&&...)): Likewise.
(_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)):
Likewise.
(_Optional_base(const _Optional_base&)): Likewise.
(_Optional_base(_Optional_base&&)): Likewise.
(operator=(const _Optional_base&)): Likewise.
(operator=(_Optional_base&&)): Likewise.
(~_Optional_base()): Remove.
(_M_is_engaged()): Adjust.
(_M_get()): Likewise.
(_M_construct(_Args&&...)): Likewise.
(_M_destruct()): Likewise.
(_M_reset()): Likewise.
(_Optional_base::_Empty_byte): Remove.
(_Optional_base::_M_empty): Remove.
(_Optional_base::_M_payload): Adjust.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.
* testsuite/20_util/optional/constexpr/cons/value.cc: Add tests.

From-SVN: r246556

7 years agors6000: Fix gcc.target/powerpc/gcse-1.c for PIC (PR43496)
Segher Boessenkool [Tue, 28 Mar 2017 22:26:17 +0000 (00:26 +0200)]
rs6000: Fix gcc.target/powerpc/gcse-1.c for PIC (PR43496)

With PIC a @ha relocation isn't generated, so skip that test then.

PR testsuite/43496
* gcc.target/powerpc/gcse-1.c: Skip scan-assembler-times "@ha" if
generating PIC code.

From-SVN: r246555

7 years agore PR rtl-optimization/80193 (ICE on valid (but hairy) C code at -O3 on x86_64-linux...
Vladimir Makarov [Tue, 28 Mar 2017 20:55:38 +0000 (20:55 +0000)]
re PR rtl-optimization/80193 (ICE on valid (but hairy) C code at -O3 on x86_64-linux-gnu: in check_allocation, at ira.c:2563)

2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/80193
* ira.c (ira): Do not check allocation for LRA.

2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/80193
* gcc.target/i386/pr80193.c: New.

From-SVN: r246554

7 years agore PR go/80226 (ICE gimple-expr.c:474 on Go function returning multiple empty struct...
Than McIntosh [Tue, 28 Mar 2017 20:08:31 +0000 (20:08 +0000)]
re PR go/80226 (ICE gimple-expr.c:474 on Go function returning multiple empty struct/array values)

PR go/80226
* go-gcc.cc (Gcc_backend::return_statement): Check for
void_type_node when checking result size.

From-SVN: r246553

7 years agoOpenMP/PTX privatization in SIMD regions
Alexander Monakov [Tue, 28 Mar 2017 17:24:57 +0000 (20:24 +0300)]
OpenMP/PTX privatization in SIMD regions

* config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
(nvptx_output_simt_exit): Declare.
* config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
(init_softstack_frame): Move initialization of crtl->is_leaf to...
(nvptx_declare_function_name): ...here.  Emit declaration of local
memory space buffer for omp_simt_enter insn.
(nvptx_output_unisimt_switch): New.
(nvptx_output_softstack_switch): New.
(nvptx_output_simt_enter): New.
(nvptx_output_simt_exit): New.
* config/nvptx/nvptx.h (struct machine_function): New fields
has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
* config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
(UNSPECV_SIMT_EXIT): Ditto.
(omp_simt_enter_insn): New insn.
(omp_simt_enter): New expansion.
(omp_simt_exit): New insn.
* config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.

* internal-fn.c (expand_GOMP_SIMT_ENTER): New.
(expand_GOMP_SIMT_ENTER_ALLOC): New.
(expand_GOMP_SIMT_EXIT): New.
* internal-fn.def (GOMP_SIMT_ENTER): New internal function.
(GOMP_SIMT_ENTER_ALLOC): Ditto.
(GOMP_SIMT_EXIT): Ditto.
* target-insns.def (omp_simt_enter): New insn.
(omp_simt_exit): Ditto.
* omp-low.c (struct omplow_simd_context): New fields simt_eargs,
simt_dlist.
(lower_rec_simd_input_clauses): Implement SIMT privatization.
(lower_rec_input_clauses): Likewise.
(lower_lastprivate_clauses): Handle SIMT privatization.

* omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
(ompdevlow_adjust_simt_enter): New.
(find_simtpriv_var_op): New.
(execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.

* tree-inline.h (struct copy_body_data): New field dst_simt_vars.
* tree-inline.c (expand_call_inline): Handle SIMT privatization.
(copy_decl_for_dup_finish): Ditto.

* tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.

From-SVN: r246550

7 years agore PR fortran/78661 ([OOP] Namelist output missing object designator under DTIO)
Janus Weil [Tue, 28 Mar 2017 17:01:05 +0000 (19:01 +0200)]
re PR fortran/78661 ([OOP] Namelist output missing object designator under DTIO)

2017-03-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78661
* trans-io.c (transfer_namelist_element): Perform a polymorphic call
to a DTIO procedure if necessary.

2017-03-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78661
* gfortran.dg/dtio_25.f90: Modified test case.
* gfortran.dg/dtio_27.f90: New test case.

2017-03-28  Janus Weil  <janus@gcc.gnu.org>

PR fortran/78661
* io/write.c (nml_write_obj): Build a class container only if necessary.

From-SVN: r246546

7 years ago* ChangeLog: Fix my ChangeLog entry.
Uros Bizjak [Tue, 28 Mar 2017 16:53:50 +0000 (18:53 +0200)]
* ChangeLog: Fix my ChangeLog entry.

From-SVN: r246545

7 years agore PR target/53383 (Allow -mpreferred-stack-boundary=3 on x86-64)
Uros Bizjak [Tue, 28 Mar 2017 16:51:00 +0000 (18:51 +0200)]
re PR target/53383 (Allow -mpreferred-stack-boundary=3 on x86-64)

PR target/53383
* config/i386/i386.c (ix86_option_override_internal): Always
allow -mincoming-stack-boundary=3 for 64-bit targets.

testsuite/ChangeLog:

PR target/53383
* gcc.target/i386/pr53383-1.c (dg-options): Remove -mno-sse.
* gcc.target/i386/pr53383-2.c (dg-options): Ditto.
* gcc.target/i386/pr53383-3.c (dg-options): Ditto.

From-SVN: r246543

7 years agoPR libstdc++/80137 use std::nextafter instead of looping
Jonathan Wakely [Tue, 28 Mar 2017 16:09:49 +0000 (17:09 +0100)]
PR libstdc++/80137 use std::nextafter instead of looping

PR libstdc++/80137
* include/bits/random.tcc (generate_canonical): Use std::nextafter
or numeric_limits::epsilon() to reduce out-of-range values.
* testsuite/26_numerics/random/uniform_real_distribution/operators/
64351.cc: Verify complexity requirement is met.

From-SVN: r246542

7 years agotree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
Bin Cheng [Tue, 28 Mar 2017 15:35:56 +0000 (15:35 +0000)]
tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.

* tree-vect-loop.c (optimize_mask_stores): Add bb to the right
loop.

From-SVN: r246541

7 years agotree-vect-loop-manip.c (slpeel_add_loop_guard): New param and mark new edge's irreduc...
Bin Cheng [Tue, 28 Mar 2017 15:32:29 +0000 (15:32 +0000)]
tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and mark new edge's irreducible flag accordign to it.

* tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
mark new edge's irreducible flag accordign to it.
(vect_do_peeling): Check loop preheader edge's irreducible flag
and pass it to function slpeel_add_loop_guard.
gcc/testsuite
* gcc.c-torture/compile/irreducible-loop.c: New.

From-SVN: r246540

7 years agore PR tree-optimization/80218 (tree-call-cdce does not update block frequencies)
Richard Sandiford [Tue, 28 Mar 2017 15:14:36 +0000 (15:14 +0000)]
re PR tree-optimization/80218 (tree-call-cdce does not update block frequencies)

gcc/
PR tree-optimization/80218
* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
Update block frequencies and counts.

gcc/testsuite/
PR tree-optimization/80218
* gcc.dg/pr80218.c: New test.

From-SVN: r246538

7 years agore PR ipa/78644 (ICE: SIGSEGV in is_gimple_reg_type with -Og -fipa-cp)
Richard Biener [Tue, 28 Mar 2017 13:57:43 +0000 (13:57 +0000)]
re PR ipa/78644 (ICE: SIGSEGV in is_gimple_reg_type with -Og -fipa-cp)

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

PR tree-optimization/78644
* tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
of a simplification result we may not use it at all.

* gcc.dg/pr78644-1.c: New testcase.
* gcc.dg/pr78644-2.c: Likewise.

From-SVN: r246534

7 years agoSkip pic-3,4.c and pie-3,4.c for mips*-*-linux-*.
Toma Tabacu [Tue, 28 Mar 2017 12:43:33 +0000 (12:43 +0000)]
Skip pic-3,4.c and pie-3,4.c for mips*-*-linux-*.

gcc/testsuite/

* gcc.dg/pic-3.c: Skip for mips*-*-linux-*.
* gcc.dg/pic-4.c: Likewise.
* gcc.dg/pie-3.c: Likewise.
* gcc.dg/pie-4.c: Likewise.

From-SVN: r246533

7 years agoAdd _GLIBCXX_RELEASE macro to "Using" section of manual
Jonathan Wakely [Tue, 28 Mar 2017 12:43:06 +0000 (13:43 +0100)]
Add _GLIBCXX_RELEASE macro to "Using" section of manual

* doc/xml/manual/abi.xml: Add xml:id anchor.
* doc/xml/manual/using.xml (manual.intro.using.macros): Document
_GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes.
(concurrency.io.structure): Add markup.
* doc/html/*: Regenerate.

From-SVN: r246532

7 years agoHandle PHI nodes w/o a argument (PR ipa/80205).
Martin Liska [Tue, 28 Mar 2017 11:37:22 +0000 (11:37 +0000)]
Handle PHI nodes w/o a argument (PR ipa/80205).

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

PR ipa/80205
* g++.dg/ipa/pr80205.C: New test.
2017-03-28  Richard Biener  <rguenther@suse.de>

PR ipa/80205
* tree-inline.c (copy_phis_for_bb): Do not create PHI node
without arguments, generate default definition of a SSA name.

From-SVN: r246530

7 years agoFix broken tests for avr target
Senthil Kumar Selvaraj [Tue, 28 Mar 2017 10:55:18 +0000 (10:55 +0000)]
Fix broken tests for avr target

These tests assume {unsigned,} ints are 32 bits or wider. Explicitly
specify __{U}INT32_TYPE__ for targets with __SIZEOF_INT__ < 4.

gcc/testsuite/

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

* gcc.c-torture/execute/pr79121.c:Use __{U}INT32_TYPE__ for targets
with sizeof(int) < 4.
* gcc.c-torture/execute/pr79737-1.c (struct S): Likewise.
* gcc.c-torture/execute/pr79737-2.c: Likewise.
* gcc.dg/torture/pr79777.c: Likewise.
* gcc.dg/torture/pr79910.c: Likewise.

From-SVN: r246529

7 years agoSupport for Ada on aarch64 with -mabi=ilp32
Andreas Schwab [Tue, 28 Mar 2017 10:29:34 +0000 (10:29 +0000)]
Support for Ada on aarch64 with -mabi=ilp32

PR ada/80117
* system-linux-aarch64-ilp32.ads: New file.
* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename
from LIBGNAT_TARGET_PAIRS.
(LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define.
(LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and
LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64
or -mabi=ilp32, resp.

From-SVN: r246528

7 years agore PR middle-end/80222 (may_alias folded away)
Richard Biener [Tue, 28 Mar 2017 10:10:01 +0000 (10:10 +0000)]
re PR middle-end/80222 (may_alias folded away)

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

PR middle-end/80222
* gimple-fold.c (gimple_fold_indirect_ref): Do not touch
TYPE_REF_CAN_ALIAS_ALL references.
* fold-const.c (fold_indirect_ref_1): Likewise.

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

From-SVN: r246527

7 years agoFix calls.c for a _complex type (PR ipa/80104).
Martin Liska [Tue, 28 Mar 2017 09:01:57 +0000 (11:01 +0200)]
Fix calls.c for a _complex type (PR ipa/80104).

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

PR ipa/80104
* cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
thunk call as DECL_GIMPLE_REG_P when vector or complex type.
2017-03-28  Martin Liska  <mliska@suse.cz>

PR ipa/80104
* gcc.dg/ipa/pr80104.c: New test.

From-SVN: r246525

7 years ago[ARC] Define _REENTRANT when -pthread is passed.
Claudiu Zissulescu [Tue, 28 Mar 2017 08:56:44 +0000 (10:56 +0200)]
[ARC] Define _REENTRANT when -pthread is passed.

The compiler is supposed to have the builtin defined _REENTRANT defined
when -pthread is passed, which wasn't done on the ARC architecture.

When _REENTRANT is not passed, the C library will not use reentrant
functions, and the latest version of ax_pthread.m4 from the
autoconf-archive will no longer detect that thread support is
available (see https://savannah.gnu.org/patch/?8186).

gcc/
2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

* config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
(EXTRA_SPECS): Define.
(SUBTARGET_EXTRA_SPECS): Likewise.
(SUBTARGET_CPP_SPEC): Likewise.
* config/arc/elf.h (EXTRA_SPECS): Renamed to
SUBTARGET_EXTRA_SPECS.
* config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.

Co-Authored-By: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
From-SVN: r246524

7 years ago[ARC] Update ARC SIMD patterns.
Claudiu Zissulescu [Tue, 28 Mar 2017 08:56:33 +0000 (10:56 +0200)]
[ARC] Update ARC SIMD patterns.

vec_select expects in selection a list of subparts. The old ARC SIMD
extension instructions were not up-to-date.

gcc/
2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/simdext.md (vst64_insn): Update pattern.
(vld32wh_insn): Likewise.
(vld32wl_insn): Likewise.
(vld64_insn): Likewise.
(vld32_insn): Likewise.

From-SVN: r246523

7 years agore PR sanitizer/80067 (ICE in fold_comparison with -fsanitize=undefined)
Marek Polacek [Tue, 28 Mar 2017 08:13:04 +0000 (08:13 +0000)]
re PR sanitizer/80067 (ICE in fold_comparison with -fsanitize=undefined)

PR sanitizer/80067
* fold-const.c (fold_comparison): Use protected_set_expr_location
instead of SET_EXPR_LOCATION.

* c-c++-common/ubsan/shift-10.c: New test.

From-SVN: r246521

7 years agoPR libstdc++/80229 restore support for shared_ptr<function type>
Jonathan Wakely [Tue, 28 Mar 2017 07:35:04 +0000 (08:35 +0100)]
PR libstdc++/80229 restore support for shared_ptr<function type>

PR libstdc++/80229
* include/bits/shared_ptr_base.h
(__shared_ptr::_M_enable_shared_from_this_with): Change parameters to
non-const and then use remove_cv to get unqualified type.
* testsuite/20_util/enable_shared_from_this/members/const.cc: Don't
cast away constness on object created const.
* testsuite/20_util/shared_ptr/cons/80229.cc: New test.

From-SVN: r246520

7 years agoAvoid name lookup warning
Markus Trippelsdorf [Tue, 28 Mar 2017 05:47:13 +0000 (05:47 +0000)]
Avoid name lookup warning

/home/markus/gcc/gcc/tree.c: In function â€˜void inchash::add_expr(const_tree, inchash::hash&, unsigned int)’:
/home/markus/gcc/gcc/tree.c:8013:11: warning: name lookup of â€˜i’ changed
      for (i = TREE_OPERAND_LENGTH (t) - 1; i >= 0; --i)
           ^
/home/markus/gcc/gcc/tree.c:7773:7: warning:   matches this â€˜i’ under ISO standard rules
   int i;
       ^
/home/markus/gcc/gcc/tree.c:7869:16: warning:   matches this â€˜i’ under old rules
       for (int i = 0; i < TREE_VEC_LENGTH (t); ++i)
                ^

From-SVN: r246519

7 years agoFix PR# in last commit
Jeff Law [Tue, 28 Mar 2017 03:30:35 +0000 (21:30 -0600)]
Fix PR# in last commit

From-SVN: r246518

7 years agore PR target/80162 (ICE on invalid code (address of register variable))
Jeff Law [Tue, 28 Mar 2017 03:22:25 +0000 (21:22 -0600)]
re PR target/80162 (ICE on invalid code (address of register variable))

        PR tree-optimization/80162
* tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
function name.  Limit recursion depth.
(record_temporary_equivalences): Corresponding changes.

PR tree-optimization/80162
* gcc.c-torture/compile/pr80216.c: New test.

From-SVN: r246517

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

From-SVN: r246516

7 years agoRestructure -Wno-narrowing documentation
Jonathan Wakely [Mon, 27 Mar 2017 22:00:45 +0000 (23:00 +0100)]
Restructure -Wno-narrowing documentation

* doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
covered first.

From-SVN: r246513

7 years agore PR target/80162 (ICE on invalid code (address of register variable))
Jakub Jelinek [Mon, 27 Mar 2017 21:07:21 +0000 (23:07 +0200)]
re PR target/80162 (ICE on invalid code (address of register variable))

PR middle-end/80162
c-family/
* c-common.c (c_common_mark_addressable_vec): Don't set
TREE_ADDRESSABLE on DECL_HARD_REGISTER.
c/
* c-tree.h (c_mark_addressable): Add array_ref_p argument.
* c-typeck.c (c_mark_addressable): Likewise.  Look through
VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
to ARRAY_TYPE.
(build_array_ref): Pass true as array_ref_p to c_mark_addressable.
cp/
* cp-tree.h (cxx_mark_addressable): Add array_ref_p argument.
* typeck.c (cxx_mark_addressable): Likewise.  Look through
VIEW_CONVERT_EXPR unless array_ref_p and VCE is from VECTOR_TYPE
to ARRAY_TYPE.
(cp_build_array_ref): Pass true as array_ref_p to cxx_mark_addressable.
testsuite/
* c-c++-common/pr80162-1.c: New test.
* c-c++-common/pr80162-2.c: New test.
* c-c++-common/pr80162-3.c: New test.

From-SVN: r246512

7 years agore PR target/80102 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2330)
Jakub Jelinek [Mon, 27 Mar 2017 21:00:35 +0000 (23:00 +0200)]
re PR target/80102 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2330)

PR target/80102
* reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
notes.
* cfgcleanup.c (reg_note_cfa_p): New array.
(insns_have_identical_cfa_notes): New function.
(old_insns_match_p): Don't cross-jump in between /f
and non-/f instructions.  If both i1 and i2 are frame related,
verify all CFA notes, their order and content.

* g++.dg/opt/pr80102.C: New test.

From-SVN: r246511

7 years ago* de.po, fr.po: Update.
Joseph Myers [Mon, 27 Mar 2017 20:31:49 +0000 (21:31 +0100)]
* de.po, fr.po: Update.

From-SVN: r246510

7 years agore PR target/78543 (ICE in push_reload, at reload.c:1349 on powerpc64le-linux-gnu)
Michael Meissner [Mon, 27 Mar 2017 19:19:00 +0000 (19:19 +0000)]
re PR target/78543 (ICE in push_reload, at reload.c:1349 on powerpc64le-linux-gnu)

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

PR target/78543
* config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
HImode and SImode with zero extend to DImode to one insn.
(bswap<mode>2_extenddi): Likewise.
(bswapsi2_extenddi): Likewise.
(bswaphi2_extendsi): Likewise.
(bswaphi2): Combine bswap HImode and SImode into one insn.
Separate memory insns from swapping register.
(bswapsi2): Likewise.
(bswap<mode>2): Likewise.
(bswaphi2_internal): Delete, no longer used.
(bswapsi2_internal): Likewise.
(bswap<mode>2_load): Split bswap HImode/SImode into separate load,
store, and gpr<-gpr swap insns.
(bswap<mode>2_store): Likewise.
(bswaphi2_reg): Register only splitter, combine with the splitter.
(bswaphi2 splitter): Likewise.
(bswapsi2_reg): Likewise.
(bswapsi2 splitter): Likewise.
(bswapdi2): If we have the LDBRX and STDBRX instructions, split
the insns into load, store, and register/register insns.
(bswapdi2_ldbrx): Likewise.
(bswapdi2_load): Likewise.
(bswapdi2_store): Likewise.
(bswapdi2_reg): Likewise.

[gcc/testsuite]
2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/78543
* gcc.target/powerpc/pr78543.c: New test.

From-SVN: r246508

7 years agolist_read.c: Insert /* Fall through.
Dominique d'Humieres [Mon, 27 Mar 2017 18:51:58 +0000 (20:51 +0200)]
list_read.c: Insert /* Fall through.

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

* io/list_read.c: Insert /* Fall through. */ in the macro
CASE_SEPARATORS in order to silence warnings.

From-SVN: r246507

7 years agosystem.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
Gunther Nikl [Mon, 27 Mar 2017 17:53:35 +0000 (17:53 +0000)]
system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.

* system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
(HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.

From-SVN: r246506

7 years agore PR target/80103 (ICE in output_1144, at config/rs6000/vsx.md:2298)
Kelvin Nilsen [Mon, 27 Mar 2017 17:04:07 +0000 (17:04 +0000)]
re PR target/80103 (ICE in output_1144, at config/rs6000/vsx.md:2298)

gcc/testsuite/ChangeLog:

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

PR target/80103
* gcc.target/powerpc/pr80103-1.c: New test.

gcc/ChangeLog:

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

PR target/80103
* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
add comments.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Add
special handling for target option conflicts between dform
options (-mpower9-dform, -mpower9-dform-vector,
-mpower9-dform-scalar) and -mno-direct-move.

From-SVN: r246505

7 years agocplus_demangle_fill_component: Handle DEMANGLE_COMPONENT_RVALUE_REFERENCE
Pedro Alves [Mon, 27 Mar 2017 14:23:49 +0000 (14:23 +0000)]
cplus_demangle_fill_component: Handle DEMANGLE_COMPONENT_RVALUE_REFERENCE

This patch almost a decade ago:

...
    2007-08-31  Douglas Gregor  <doug.gregor@gmail.com>

        * cp-demangle.c (d_dump): Handle
        DEMANGLE_COMPONENT_RVALUE_REFERENCE.
        (d_make_comp): Ditto.
...

... missed doing the same change to cplus_demangle_fill_component that
was done to d_make_comp.  I.e., teach it to only validate that we're
not passing in a "right" subtree.  GDB has recently (finally) learned
about rvalue references, and a change to make it use
cplus_demangle_fill_component more ran into an assertion because of
this.

(GDB is the only user of cplus_demangle_fill_component in both the gcc
and binutils-gdb trees.)

libiberty/ChangeLog:
2017-03-27  Pedro Alves  <palves@redhat.com>

* cp-demint.c (cplus_demangle_fill_component): Handle
DEMANGLE_COMPONENT_RVALUE_REFERENCE.

From-SVN: r246502

7 years agore PR tree-optimization/80181 (ICE in set_lattice_value, at tree-ssa-ccp.c:505)
Richard Biener [Mon, 27 Mar 2017 12:52:13 +0000 (12:52 +0000)]
re PR tree-optimization/80181 (ICE in set_lattice_value, at tree-ssa-ccp.c:505)

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

PR tree-optimization/80181
* tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.

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

From-SVN: r246500

7 years ago[ARC] Fix move_double_src_operand predicate.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:46 +0000 (12:56 +0200)]
[ARC] Fix move_double_src_operand predicate.

Durring compilation process, (subreg (mem ...) ...) can occur. Hence,
we need to check if the address of mem is a valid one. This patch is
fixing this check by directly calling the address_operand, instead of
calling move_double_src_operand, as the latter is always checking
against the original mode, thus, returning false when the inner and
outer modes are different.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/predicates.md (move_double_src_operand): Replace the
call to move_double_src_operand with a call to address_operand.

From-SVN: r246499

7 years ago[ARC] Fix divdf3 emulation for arcem.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:35 +0000 (12:56 +0200)]
[ARC] Fix divdf3 emulation for arcem.

libgcc/
2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/ieee-754/divdf3.S (__divdf3): Use __ARCEM__.

From-SVN: r246498

7 years ago[ARC] Disable TP register when building for bare metal.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:24 +0000 (12:56 +0200)]
[ARC] Disable TP register when building for bare metal.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
* config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
* config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.

From-SVN: r246497

7 years ago[ARC] Fix detection of long immediate for load/store operands.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:14 +0000 (12:56 +0200)]
[ARC] Fix detection of long immediate for load/store operands.

ARC can use scaled offsets when loading (i.e. ld.as rA,[base,
offset]).  Where base and offset can be a register or an immediate
operand.  The scaling only applies on the offset part of the
instruction.  The compiler can accept an address like this:

(plus:SI (mult:SI (reg:SI 2 r2 [orig:596 _2129 ] [596])
          (const_int 4 [0x4]))
 (const_int 60 [0x3c]))

Hence, to emit this instruction we place the (const_int 60) into base
and the register into offset to take advantage of the scaled offset
facility of the load instruction.  As a result the length of the load
instruction is 8 bytes.  However, the long_immediate_loadstore_operand
predicate used for calculating the length attribute doesn't recognize
this address and returns a wrong decision leading to a wrong length
computation for a load instruction using the above address.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/predicates.md (long_immediate_loadstore_operand):
Consider scaled addresses cases.

From-SVN: r246496

7 years ago[ARC] Save/restore blink when in ISR.
Claudiu Zissulescu [Mon, 27 Mar 2017 10:56:04 +0000 (12:56 +0200)]
[ARC] Save/restore blink when in ISR.

gcc/
2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/arc.c (arc_epilogue_uses): BLINK should be also
restored when in interrupt.
* config/arc/arc.md (simple_return): ARCv2 rtie instruction
doesn't have delay slot.

2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>

* testsuite/gcc.target/arc/interrupt-4.c: New file.

From-SVN: r246495

7 years agore PR ipa/79776 (ICE on valid code in insert_vi_for_tree, at tree-ssa-structalias...
Richard Biener [Mon, 27 Mar 2017 10:50:55 +0000 (10:50 +0000)]
re PR ipa/79776 (ICE on valid code in insert_vi_for_tree, at tree-ssa-structalias.c:2807)

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

PR ipa/79776
* tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
inlined thunk clones.

* g++.dg/ipa/pr79776.C: New testcase.

From-SVN: r246494

7 years agore PR sanitizer/80168 (ICE in make_decl_rtl, at varasm.c:1311 w/ VLA and -fsanitize...
Jakub Jelinek [Mon, 27 Mar 2017 08:25:01 +0000 (10:25 +0200)]
re PR sanitizer/80168 (ICE in make_decl_rtl, at varasm.c:1311 w/ VLA and -fsanitize=address)

PR sanitizer/80168
* asan.c (instrument_derefs): Copy over last operand from
original COMPONENT_REF to the new COMPONENT_REF with
DECL_BIT_FIELD_REPRESENTATIVE.
* ubsan.c (instrument_object_size): Likewise.

* gcc.dg/asan/pr80168.c: New test.

From-SVN: r246492

7 years agore PR tree-optimization/80170 (SLP vectorization creates aligned access)
Richard Biener [Mon, 27 Mar 2017 08:07:49 +0000 (08:07 +0000)]
re PR tree-optimization/80170 (SLP vectorization creates aligned access)

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

PR tree-optimization/80170
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
sure DR/SCEV didnt fold in constants we do not see when looking
at the reference base alignment.

* gcc.dg/pr80170.c: New testcase.

From-SVN: r246491

7 years agore PR tree-optimization/80171 (ICE (Segmentation fault) with optimization)
Richard Biener [Mon, 27 Mar 2017 07:35:44 +0000 (07:35 +0000)]
re PR tree-optimization/80171 (ICE (Segmentation fault) with optimization)

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

PR middle-end/80171
* gimple-fold.c (fold_ctor_reference): Properly guard against
NULL return value from canonicalize_constructor_val.

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

From-SVN: r246490

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

From-SVN: r246489

7 years agopr79732.c: Require alias support.
John David Anglin [Sun, 26 Mar 2017 15:40:29 +0000 (15:40 +0000)]
pr79732.c: Require alias support.

* gcc.dg/torture/pr79732.c: Require alias support.
* gcc.dg/tree-ssa/pr56727.c: Move dg-require-alias after dg-do compile.

From-SVN: r246485

7 years agocoarray_failed_images_1.f08: Add "-latomic" option if libatomic_available.
John David Anglin [Sun, 26 Mar 2017 15:19:40 +0000 (15:19 +0000)]
coarray_failed_images_1.f08: Add "-latomic" option if libatomic_available.

* gfortran.dg/coarray_failed_images_1.f08: Add "-latomic" option if
libatomic_available.
* gfortran.dg/coarray_image_status_1.f08: Likewise.
* gfortran.dg/coarray_stopped_images_1.f08: Likewise.

From-SVN: r246484

7 years agoFix PR80183 : _M_color not moved
Markus Trippelsdorf [Sun, 26 Mar 2017 12:33:35 +0000 (12:33 +0000)]
Fix PR80183 : _M_color not moved

PR libstdc++/80183
* include/bits/stl_tree.h:
(_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color.

From-SVN: r246483

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

From-SVN: r246482

7 years agore PR fortran/78881 ([F03] reading from string with DTIO procedure does not work...
Jerry DeLisle [Sat, 25 Mar 2017 18:48:01 +0000 (18:48 +0000)]
re PR fortran/78881 ([F03] reading from string with DTIO procedure does not work properly)

2017-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/78881
* io/io.h (st_parameter_dt): Rename unused component last_char to
child_saved_iostat. Move comment to gfc_unit.
* io/list_read.c (list_formatted_read_scalar): After call to
child READ procedure, save the returned iostat value for later
check. (finish_list_read): Only finish READ if child_saved_iostat
was OK.
* io/transfer.c (read_sf_internal): If there is a saved character
in last character, seek back one. Add a new check for EOR
condition. (read_sf): If there is a saved character
in last character, seek back one. (formatted_transfer_scalar_read):
Initialize last character before invoking child procedure.
(data_transfer_init): If child dtio, set advance
status to nonadvancing. Move update of size and check for EOR
condition to before child dtio return.

* gfortran.dg/dtio_26.f90: New test.

From-SVN: r246478

7 years agore PR fortran/80156 (Generic DTIO interface reported missing if public statement...
Paul Thomas [Sat, 25 Mar 2017 17:38:17 +0000 (17:38 +0000)]
re PR fortran/80156 (Generic DTIO interface reported missing if public statement preceeds the interface block)

2017-03-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80156
PR fortran/79382
* decl.c (access_attr_decl): Remove the error for an absent
generic DTIO interface and ensure that symbol has the flavor
FL_PROCEDURE.

2017-03-25  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/80156
PR fortran/79382
* gfortran.dg/dtio_23.f90 : Remove the dg-error and add the
testcase for PR80156. Add a main programme that tests that
the typebound generic is accessible.

From-SVN: r246476

7 years agore PR target/80180 (Incorrect codegen from rdseed intrinsic use (CVE-2017-11671))
Uros Bizjak [Sat, 25 Mar 2017 16:34:09 +0000 (17:34 +0100)]
re PR target/80180 (Incorrect codegen from rdseed intrinsic use (CVE-2017-11671))

PR target/80180
* config/i386/i386.c (ix86_expand_builtin)
<IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
flags reg setting and flags reg using instructions.
<IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
clobbering instructions to zero extend op2.

From-SVN: r246475

7 years agoinstall.texi (Configuration): Update link to AIX ld.
Gerald Pfeifer [Sat, 25 Mar 2017 14:17:55 +0000 (14:17 +0000)]
install.texi (Configuration): Update link to AIX ld.

* doc/install.texi (Configuration) <--with-aix-soname>:
Update link to AIX ld.

From-SVN: r246474

7 years agore PR target/80160 (operand has impossible constraints)
Bernd Schmidt [Sat, 25 Mar 2017 01:12:04 +0000 (01:12 +0000)]
re PR target/80160 (operand has impossible constraints)

PR rtl-optimization/80160
PR rtl-optimization/80159
* lra-assigns.c (must_not_spill_p): Tighten new test to also take
reg_alternate_class into account.

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

From-SVN: r246473

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

From-SVN: r246472

7 years agore PR target/79904 (ICE in annotate_constant_pool_refs, at config/s390/s390.c:7909)
Jakub Jelinek [Fri, 24 Mar 2017 21:43:08 +0000 (22:43 +0100)]
re PR target/79904 (ICE in annotate_constant_pool_refs, at config/s390/s390.c:7909)

PR sanitizer/79904
* gcc.dg/ubsan/pr79904-2.c: Add -Wno-psabi to dg-options.

From-SVN: r246468

7 years agore PR target/80148 (operand has impossible constraints)
Vladimir Makarov [Fri, 24 Mar 2017 18:47:38 +0000 (18:47 +0000)]
re PR target/80148 (operand has impossible constraints)

2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>

PR target/80148
* lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
to consider in curr_insn_transform.

From-SVN: r246467

7 years agoPR c++/77339 - ICE with invalid use of alias template.
Jason Merrill [Fri, 24 Mar 2017 14:40:13 +0000 (10:40 -0400)]
PR c++/77339 - ICE with invalid use of alias template.

* pt.c (lookup_template_class_1): Don't try to enter the scope of an
alias template.

From-SVN: r246462

7 years agore PR c++/80119 (-Wmaybe-uninitialized wrongly flags the body of a short-circuited...
Marek Polacek [Fri, 24 Mar 2017 14:22:01 +0000 (14:22 +0000)]
re PR c++/80119 (-Wmaybe-uninitialized wrongly flags the body of a short-circuited if-clause)

PR c++/80119
* cp-gimplify.c (cp_fold): Strip CLEANUP_POINT_EXPR if the expression
doesn't have side effects.

* g++.dg/warn/Wuninitialized-9.C: New test.

From-SVN: r246461

7 years agogenrecog.c (validate_pattern): Add VEC_SELECT validation.
Jakub Jelinek [Fri, 24 Mar 2017 14:09:33 +0000 (15:09 +0100)]
genrecog.c (validate_pattern): Add VEC_SELECT validation.

* genrecog.c (validate_pattern): Add VEC_SELECT validation.
* genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
and emit_mode_inner.

From-SVN: r246460

7 years agoS/390: arch12: New builtins.
Andreas Krebbel [Fri, 24 Mar 2017 14:04:12 +0000 (14:04 +0000)]
S/390: arch12: New builtins.

This patch implements a set of low-level builtins for instruction
which would otherwise not be emitted by the compiler plus a set of
high-level builtins as defined by the IBM XL compiler.  The high-level
builtins will be described in a future revision of the z/OS XL C/C++
Programming Guide.

I'll try to come up with a documentation appropriate for the GCC
manual as well (sometimes in the future).

gcc/ChangeLog:

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

* config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
argument to the overloaded builtin variants.  Use the new flag to
deprecate certain builtin variants.
* config/s390/s390-builtin-types.def: Add new builtin types.
* config/s390/s390-builtins.h: Support new flags field for
overloaded builtins.
* config/s390/s390-c.c (OB_DEF_VAR): New flags field.
(s390_macro_to_expand): Enable vector float data type.
(s390_cpu_cpp_builtins_internal): Indicate support of the new
builtins by incrementing the __VEC__ version number.
(s390_expand_overloaded_builtin): Support expansion of vec_xl and
vec_xst.
(s390_resolve_overloaded_builtin): Emit error messages depending
on the builtin flags.
* config/s390/s390.c (s390_expand_builtin): Support additional
flags argument.  Change error message to match the messages
emitted in s390-c.c.
* config/s390/s390.md: New UNSPEC_* constants.
(op_type): Add new instruction types.
* config/s390/vecintrin.h: Add new builtins and test data class
constants.
* config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
(V_HW_4, VEC_HW, VECF_HW): New mode iterators.
(VEC_INEXACT, VEC_NOINEXACT): New constants.
("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
("vec_mergel<mode>"): V_HW -> VEC_HW.

("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.

("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.

("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...

("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
("vec_scatter_element<V_HW_4:mode>_DI")
("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
("vec_fpint<mode>", "vflls")
("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
("*vec_cmphe<mode>_cc"): ... these.

("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
mode constant instead of magic value.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/target-attribute/tattr-3.c: Adjust error message
and remove the high-level builtin.  The error message for the
would prevent compilation from reaching the second.
* gcc.target/s390/target-attribute/tattr-4.c: Likewise.

From-SVN: r246459

7 years agoS/390: arch12: Support new vector floating point modes.
Andreas Krebbel [Fri, 24 Mar 2017 14:03:24 +0000 (14:03 +0000)]
S/390: arch12: Support new vector floating point modes.

This patch adds support for the new floating point vector elements (SF
and TF) introduced with arch12.

gcc/ChangeLog:

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

* config/s390/s390.c (s390_expand_vec_compare): Support other
vector floating point modes than just V2DF.
(s390_expand_vcond): Likewise.
(s390_hard_regno_mode_ok): Allow SFmode values in VRs.
(s390_cannot_change_mode_class): Prevent mode changes between TF
and V1TF in vector registers.
* config/s390/s390.md (DF, SF): New mode attributes.
("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
SFmode support for VRs.
* config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
vector fp modes.
(VFT, VF_HW): New mode iterators.
(vw, sdx): New mode attributes.
("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
("vec_unorderedv2df"): Adjust the v2df only patterns to support
also the new vector floating point modes.  Renaming to ...

("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
("abs<mode>2", "negabs<mode>2", "smax<mode>3")
("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
("vec_unordered<mode>"): ... these.

("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
("*vec_extendv2df"): New insn definitions.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/vxe/negfma-1.c: New test.

From-SVN: r246458

7 years agoS/390: arch12: Support the mul/add/subtract
Andreas Krebbel [Fri, 24 Mar 2017 14:02:51 +0000 (14:02 +0000)]
S/390: arch12: Support the mul/add/subtract
 instructions.

gcc/ChangeLog:

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

* config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
("mulditi3_2", "*muldi3_sign"): New patterns.
("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
rename the pattern definition.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/arch12/aghsghmgh-1.c: New test.
* gcc.target/s390/arch12/mul-1.c: New test.
* gcc.target/s390/arch12/mul-2.c: New test.

From-SVN: r246457

7 years agoS/390: arch12: Add indirect branch pattern
Andreas Krebbel [Fri, 24 Mar 2017 14:02:17 +0000 (14:02 +0000)]
S/390: arch12: Add indirect branch pattern

This adds support for the branch indirect instruction.

gcc/ChangeLog:

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

* config/s390/s390.md ("indirect_jump"): Turn insn definition into
expander.
("*indirect_jump", "*indirect2_jump"): New pattern definitions.

From-SVN: r246456

7 years agoS/390: arch12: Add vllezlf instruction.
Andreas Krebbel [Fri, 24 Mar 2017 14:01:54 +0000 (14:01 +0000)]
S/390: arch12: Add vllezlf instruction.

This adds support for the vector load element and zero instruction and
makes sure it is used when initializing vectors with elements while
setting the rest to 0.

gcc/ChangeLog:

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

* config/s390/s390.c (s390_expand_vec_init): Use vllezl
instruction if possible.
* config/s390/vector.md (vec_halfnumelts): New mode
attribute.
("*vec_vllezlf<mode>"): New pattern.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/vxe/vllezlf-1.c: New test.

From-SVN: r246455

7 years agoS/390: arch12: New vector popcount variants
Andreas Krebbel [Fri, 24 Mar 2017 14:01:18 +0000 (14:01 +0000)]
S/390: arch12: New vector popcount variants

arch12 provides pop count vector instructions for bigger elements than
just chars.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/vxe/popcount-1.c: New test.

gcc/ChangeLog:

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

* config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
("popcountv4si2", "popcountv2di2"): Rename to ...
("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
condition.
("popcount<mode>2_vxe"): New pattern.

From-SVN: r246454

7 years agoS/390: arch12: Add support for new vector bit
Andreas Krebbel [Fri, 24 Mar 2017 14:00:43 +0000 (14:00 +0000)]
S/390: arch12: Add support for new vector bit
 operations.

This patch adds support for the new bit operations introduced with
arch12.

The patch also renames the one complement pattern to the proper RTL
standard name.

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

* config/s390/s390.c (s390_rtx_costs): Return low costs for the
canonical form of ~AND to make sure the new instruction will be
used.
* config/s390/vector.md ("notand<mode>3", "ior_not<mode>3")
("notxor<mode>3"): Add new pattern definitions.
("*not<mode>"): Rename to ...
("one_cmpl<mode>2"): ... this.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/vxe/bitops-1.c: New test.

From-SVN: r246453

7 years agoS/390: arch12: Add arch12 option.
Andreas Krebbel [Fri, 24 Mar 2017 13:59:51 +0000 (13:59 +0000)]
S/390: arch12: Add arch12 option.

This patch covers the mechanical work of making the new architecture
option arch12 available wherever it will be needed later.

gcc/testsuite/ChangeLog:

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

* gcc.target/s390/s390.exp: Run tests in arch12 and vxe dirs.
* lib/target-supports.exp: Add effective target check s390_vxe.

gcc/ChangeLog:

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

* common/config/s390/s390-common.c (processor_flags_table): Add
arch12.
* config.gcc: Add arch12.
* config/s390/driver-native.c (s390_host_detect_local_cpu):
Default to arch12 for unknown CPU model numbers.
* config/s390/s390-builtins.def: Add B_VXE builtin flag.
* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
PROCESSOR_max sanity check.
* config/s390/s390-opts.h (enum processor_type): Add
PROCESSOR_ARCH12.
* config/s390/s390.c (processor_table): Add arch12.
(s390_expand_builtin): Add check for B_VXE flag.
(s390_issue_rate): Add PROCESSOR_ARCH12.
(s390_get_sched_attrmask): Likewise.
(s390_get_unit_mask): Likewise.
(s390_sched_score): Enable z13 scheduling for arch12.
(s390_sched_reorder): Likewise.
(s390_sched_variable_issue): Likewise.
* config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
PF_VXE.
(s390_tune_attr): Use z13 scheduling also for arch12.
(TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
(TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
(TARGET_VXE_P): New macros.
* config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
* config/s390/s390.opt: Add arch12 as processor_type.

From-SVN: r246452