gcc.git
6 years agoReverted 250770
Tamar Christina [Tue, 1 Aug 2017 12:23:59 +0000 (12:23 +0000)]
Reverted 250770

From-SVN: r250773

6 years agoMake mempcpy more optimal (PR middle-end/70140).
Martin Liska [Tue, 1 Aug 2017 11:59:27 +0000 (13:59 +0200)]
Make mempcpy more optimal (PR middle-end/70140).

2017-08-01  Martin Liska  <mliska@suse.cz>

PR middle-end/70140
* gcc.dg/string-opt-1.c: Adjust test-case to scan for memcpy.
2017-08-01  Martin Liska  <mliska@suse.cz>

PR middle-end/70140
* builtins.c (expand_builtin_memcpy_args): Remove.
(expand_builtin_memcpy): Call newly added function
expand_builtin_memory_copy_args.
(expand_builtin_memcpy_with_bounds): Likewise.
(expand_builtin_mempcpy): Remove last argument.
(expand_builtin_mempcpy_with_bounds): Likewise.
(expand_builtin_memory_copy_args): New function created from
expand_builtin_mempcpy_args with small modifications.
(expand_builtin_mempcpy_args): Remove.
(expand_builtin_stpcpy): Remove unused argument.
(expand_builtin): Likewise.
(expand_builtin_with_bounds): Likewise.

From-SVN: r250771

6 years agodbl_mov_immediate_1.c: Use conditional assembler scans.
Tamar Christina [Tue, 1 Aug 2017 11:41:03 +0000 (11:41 +0000)]
dbl_mov_immediate_1.c: Use conditional assembler scans.

2017-08-01  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/dbl_mov_immediate_1.c:
Use conditional assembler scans.

From-SVN: r250770

6 years agore PR target/81641 (Assemble failure with named address spaces and -masm=intel)
Uros Bizjak [Tue, 1 Aug 2017 11:15:52 +0000 (13:15 +0200)]
re PR target/81641 (Assemble failure with named address spaces and -masm=intel)

PR target/81641
* config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
print "ds:" only for immediates in generic address space.

testsuite/ChangeLog:

PR target/81641
* gcc.target/i386/pr81641.c: New test.

From-SVN: r250769

6 years agore PR target/81639 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2669 with a naked function)
Uros Bizjak [Tue, 1 Aug 2017 10:57:55 +0000 (12:57 +0200)]
re PR target/81639 (ICE in rtl_verify_bb_insns, at cfgrtl.c:2669 with a naked function)

PR target/81639
* config/i386/i386.c (ix86_funciton_naked): New prototype.
(ix86_function_ok_for_sibcall): Return false for naked functions.

testsuite/ChangeLog:

PR target/81639
* gcc.target/i386/pr81639.c: New test.

From-SVN: r250768

6 years agotree-ssa-pre.c (print_pre_expr): Handle NULL expr.
Richard Biener [Tue, 1 Aug 2017 10:47:14 +0000 (10:47 +0000)]
tree-ssa-pre.c (print_pre_expr): Handle NULL expr.

2017-08-01  Richard Biener  <rguenther@suse.de>

* tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
(compute_antic): Seed worklist with exit block predecessors.
* cfganal.c (dfs_find_deadend): For a cycle return the source
of the edge closing it.

* gcc.dg/tree-ssa/ssa-dce-3.c: Adjust.
* gcc.dg/tree-ssa/split-path-5.c: Remove case with just dead
endless loop.
* gcc.dg/uninit-23.c: Adjust.

From-SVN: r250767

6 years ago2017-08-01 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Tue, 1 Aug 2017 09:56:31 +0000 (09:56 +0000)]
2017-08-01  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.c
(aarch64_can_const_movi_rtx_p): Move 0 check.

From-SVN: r250766

6 years agotree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
Bin Cheng [Tue, 1 Aug 2017 09:28:18 +0000 (09:28 +0000)]
tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.

* tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
* fold-const.c (fold_comparison, fold_binary_loc): Delete use of
above macro.
* match.pd: Ditto in address comparison pattern.

gcc/testsuite
* gcc.dg/no-strict-overflow-7.c: Revise comment and test string.
* gcc.dg/tree-ssa/pr81388-1.c: Ditto.

From-SVN: r250765

6 years agore PR tree-optimization/81627 (ICE on valid code at -O3: in check_loop_closed_ssa_use...
Bin Cheng [Tue, 1 Aug 2017 09:20:08 +0000 (09:20 +0000)]
re PR tree-optimization/81627 (ICE on valid code at -O3: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:707)

PR tree-optimization/81627
* tree-predcom.c (prepare_finalizers): Always rewrite into loop
closed ssa form for store-store chain.

gcc/testsuite
* gcc.dg/tree-ssa/pr81627.c: New.

From-SVN: r250764

6 years agore PR tree-optimization/81620 (ICE in is_inv_store_elimination_chain, at tree-predcom...
Bin Cheng [Tue, 1 Aug 2017 09:17:29 +0000 (09:17 +0000)]
re PR tree-optimization/81620 (ICE in is_inv_store_elimination_chain, at tree-predcom.c:1651 with -O3)

PR tree-optimization/81620
* tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
for store-store chain.

gcc/testsuite
* gcc.dg/tree-ssa/pr81620-1.c: New.
* gcc.dg/tree-ssa/pr81620-2.c: New.

From-SVN: r250763

6 years agore PR fortran/53542 (Diagnostic of USE-associated variables shows original instead...
Dominique d'Humieres [Tue, 1 Aug 2017 09:02:58 +0000 (11:02 +0200)]
re PR fortran/53542 (Diagnostic of USE-associated variables shows original instead of renamed symbol name)

2017-08-01  Dominique d'Humieres  <dominiq@lps.ens.fr>

PR fortran/53542
* expr.c (gfc_check_init_expr): Use the renamed name.

PR testsuite/53542
* gfortran.dg/use_30.f90: New test.

From-SVN: r250762

6 years agore PR tree-optimization/81588 (Wrong code at -O2)
Jakub Jelinek [Tue, 1 Aug 2017 08:32:37 +0000 (10:32 +0200)]
re PR tree-optimization/81588 (Wrong code at -O2)

PR tree-optimization/81588
* tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
ranges[i].in_p, invert comparison code ccode.  For >/>=,
swap rhs1 and rhs2 and comparison code unconditionally,
for </<= don't do that.  Don't swap rhs1/rhs2 again if
ranges[i].in_p, instead invert comparison code ccode if
opcode or oe->rank is BIT_IOR_EXPR.

* gcc.dg/tree-ssa/pr81588.c: New test.
* gcc.dg/pr81588.c: New test.
* gcc.c-torture/execute/pr81588.c: New test.

From-SVN: r250760

6 years agore PR target/80846 (auto-vectorized AVX2 horizontal sum should narrow to 128b right...
Jakub Jelinek [Tue, 1 Aug 2017 08:26:14 +0000 (10:26 +0200)]
re PR target/80846 (auto-vectorized AVX2 horizontal sum should narrow to 128b right away, to be more efficient for Ryzen and Intel)

PR target/80846
* optabs.def (vec_extract_optab, vec_init_optab): Change from
a direct optab to conversion optab.
* optabs.c (expand_vector_broadcast): Use convert_optab_handler
with GET_MODE_INNER as last argument instead of optab_handler.
* expmed.c (extract_bit_field_1): Likewise.  Use vector from
vector extraction if possible and optab is available.
* expr.c (store_constructor): Use convert_optab_handler instead
of optab_handler.  Use vector initialization from smaller
vectors if possible and optab is available.
* tree-vect-stmts.c (vectorizable_load): Likewise.
* doc/md.texi (vec_extract, vec_init): Document that the optabs
now have two modes.
* config/i386/i386.c (ix86_expand_vector_init): Handle expansion
of vec_init from half-sized vectors with the same element mode.
* config/i386/sse.md (ssehalfvecmode): Add V4TI case.
(ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
(reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
after mode in gen_vec_extract* calls.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><ssescalarmodelower>): ... this.
(vec_extract<mode><ssehalfvecmodelower>): New expander.
(rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
element mode after mode in gen_vec_init* calls.
(VEC_INIT_HALF_MODE): New mode iterator.
(vec_init<mode>): Renamed to ...
(vec_init<mode><ssescalarmodelower>): ... this.
(vec_init<mode><ssehalfvecmodelower>): New expander.
* config/i386/mmx.md (vec_extractv2sf): Renamed to ...
(vec_extractv2sfsf): ... this.
(vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
(vec_extractv2si): Renamed to ...
(vec_extractv2sisi): ... this.
(vec_initv2si): Renamed to ...
(vec_initv2sisi): ... this.
(vec_extractv4hi): Renamed to ...
(vec_extractv4hihi): ... this.
(vec_initv4hi): Renamed to ...
(vec_initv4hihi): ... this.
(vec_extractv8qi): Renamed to ...
(vec_extractv8qiqi): ... this.
(vec_initv8qi): Renamed to ...
(vec_initv8qiqi): ... this.
* config/rs6000/vector.md (VEC_base_l): New mode attribute.
(vec_init<mode>): Renamed to ...
(vec_init<mode><VEC_base_l>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><VEC_base_l>): ... this.
* config/rs6000/paired.md (vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
* config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
element mode after mode in gen_vec_init* calls.
* config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
(vec_init<mode><Vel>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><Vel>): ... this.
* config/aarch64/iterators.md (Vel): New mode attribute.
* config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
Add element mode after mode in gen_vec_extract* calls.
* config/s390/vector.md (non_vec_l): New mode attribute.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><non_vec_l>): ... this.
(vec_init<mode>): Renamed to ...
(vec_init<mode><non_vec_l>): ... this.
* config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
vec_extract mode.
* config/arm/iterators.md (V_elem_l): New mode attribute.
* config/arm/neon.md (vec_extract<mode>): Renamed to ...
(vec_extract<mode><V_elem_l>): ... this.
(vec_extractv2di): Renamed to ...
(vec_extractv2didi): ... this.
(vec_init<mode>): Renamed to ...
(vec_init<mode><V_elem_l>): ... this.
(reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
Add element mode after gen_vec_extract* calls.
* config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
(vec_init<mode><unitmode>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><unitmode>): ... this.
* config/mips/loongson.md (vec_init<mode>): Renamed to ...
(vec_init<mode><unitmode>): ... this.
* config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
(vec_extractv2sf): Renamed to ...
(vec_extractv2sfsf): ... this.
(reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
Add element mode after gen_vec_extract* calls.
* config/mips/mips.md (unitmode): New mode iterator.
* config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
spu_builtin_extract): Add element mode after gen_vec_extract* calls.
* config/spu/spu.md (inner_l): New mode attribute.
(vec_init<mode>): Renamed to ...
(vec_init<mode><inner_l>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><inner_l>): ... this.
* config/sparc/sparc.md (veltmode): New mode iterator.
(vec_init<VMALL:mode>): Renamed to ...
(vec_init<VMALL:mode><VMALL:veltmode>): ... this.
* config/ia64/vect.md (vec_initv2si): Renamed to ...
(vec_initv2sisi): ... this.
(vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
(vec_extractv2sf): Renamed to ...
(vec_extractv2sfsf): ... this.
* config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
(vec_init<mode>): Renamed to ...
(vec_init<mode><VEC_base_l>): ... this.
(vec_extract<mode>): Renamed to ...
(vec_extract<mode><VEC_base_l>): ... this.
* config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
(vec_initv2sfsf): ... this.
* config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
gen_vec_init* calls.

From-SVN: r250759

6 years agore PR tree-optimization/81297 (ICE in get_single_symbol)
Richard Biener [Tue, 1 Aug 2017 07:04:10 +0000 (07:04 +0000)]
re PR tree-optimization/81297 (ICE in get_single_symbol)

2017-08-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/81297
* tree-vrp.c (get_single_symbol): Remove assert, instead drop
TREE_OVERFLOW from INTEGER_CSTs.

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

From-SVN: r250758

6 years agonaked-1.c (dg-options): Add -fno-pic.
Uros Bizjak [Tue, 1 Aug 2017 05:56:28 +0000 (07:56 +0200)]
naked-1.c (dg-options): Add -fno-pic.

* gcc.target/i386/naked-1.c (dg-options): Add -fno-pic.

From-SVN: r250757

6 years agoDaily bump.
GCC Administrator [Tue, 1 Aug 2017 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250756

6 years agore PR tree-optimization/80925 (vect peeling failures)
Steve Ellcey [Mon, 31 Jul 2017 21:44:34 +0000 (21:44 +0000)]
re PR tree-optimization/80925 (vect peeling failures)

2017-07-31  Steve Ellcey  <sellcey@cavium.com>

PR tree-optimization/80925
* gcc.dg/vect/no-section-anchors-vect-69.c: Add
--param vect-max-peeling-for-alignment=0 option.
Remove unaligned access and peeling checks.
* gcc.dg/vect/section-anchors-vect-69.c: Ditto.

From-SVN: r250752

6 years agobuiltins-4-runnable.c: Fix dg argument that got missed in commit 250746.
Carl Love [Mon, 31 Jul 2017 21:01:39 +0000 (21:01 +0000)]
builtins-4-runnable.c: Fix dg argument that got missed in commit 250746.

gcc/testsuite/ChangeLog:

2017-07-31  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-4-runnable.c: Fix dg argument that got
missed in commit 250746.

From-SVN: r250751

6 years agoUpdate myself in MAINTAINERS
Richard Henderson [Mon, 31 Jul 2017 18:37:27 +0000 (11:37 -0700)]
Update myself in MAINTAINERS

From-SVN: r250750

6 years agors6000: Trailing comma warning in enum
Segher Boessenkool [Mon, 31 Jul 2017 17:00:57 +0000 (19:00 +0200)]
rs6000: Trailing comma warning in enum

* config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.

From-SVN: r250749

6 years ago* es.po, uk.po: Update.
Joseph Myers [Mon, 31 Jul 2017 15:50:40 +0000 (16:50 +0100)]
* es.po, uk.po: Update.

From-SVN: r250747

6 years agors6000-c: Add support for built-in functions vector signed char vec_xl_be (signed...
Carl Love [Mon, 31 Jul 2017 15:42:01 +0000 (15:42 +0000)]
rs6000-c: Add support for built-in functions vector signed char vec_xl_be (signed long...

gcc/ChangeLog:

2017-07-31  Carl Love  <cel@us.ibm.com>

* config/rs6000/rs6000-c: Add support for built-in functions
vector signed char vec_xl_be (signed long long, signed char *);
vector unsigned char vec_xl_be (signed long long, unsigned char *);
vector signed int vec_xl_be (signed long long, signed int *);
vector unsigned int vec_xl_be (signed long long, unsigned int *);
vector signed long long vec_xl_be (signed long long, signed long long *);
vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
vector signed short vec_xl_be (signed long long, signed short *);
vector unsigned short vec_xl_be (signed long long, unsigned short *);
vector double vec_xl_be (signed long long, double *);
vector float vec_xl_be (signed long long, float *);
* config/rs6000/altivec.h (vec_xl_be): Add #define.
* config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI,
XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions for the builtins.
* config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
(altivec_expand_builtin): Add switch statement to call altivec_expand_xl_be
for each builtin.
(altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
__builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di, __builtin_vsx_le_be_v4sf,
__builtin_vsx_le_be_v2df, __builtin_vsx_le_be_v16qi.
* doc/extend.texi: Update the built-in documentation file for the
new built-in functions.

gcc/testsuite/ChangeLog:

2017-07-31  Carl Love  <cel@us.ibm.com>

* gcc.target/powerpc/builtins-4-runnable.c: Add test cases for the
new builtins.

From-SVN: r250746

6 years agoCompile pr79793-[12].c with -mtune=generic
H.J. Lu [Mon, 31 Jul 2017 14:59:24 +0000 (14:59 +0000)]
Compile pr79793-[12].c with -mtune=generic

pr79793-1.c and pr79793-2.c are failed when GCC is configured with
--with-cpu=slm since lea is used to adjust stack, instead of sub/add.
This patch uses -mtune=generic to always generate sub and add.

* gcc.target/i386/pr79793-1.c: Compile with -mtune=generic.
* gcc.target/i386/pr79793-2.c: Likewise.

From-SVN: r250745

6 years agore PR libstdc++/81599 (Error in documentation of std::stack)
Marek Polacek [Mon, 31 Jul 2017 13:44:16 +0000 (13:44 +0000)]
re PR libstdc++/81599 (Error in documentation of std::stack)

PR libstdc++/81599
* include/bits/stl_stack.h: Fix typo.

From-SVN: r250743

6 years agore PR target/25967 (Add attribute naked for x86)
Uros Bizjak [Mon, 31 Jul 2017 13:11:59 +0000 (15:11 +0200)]
re PR target/25967 (Add attribute naked for x86)

PR target/25967
* config/i386/i386.c (ix86_allocate_stack_slots_for_args):
New function.
(TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.

testsuite/ChangeLog:

PR target/25967
* gcc.target/i386/naked-3.c (dg-options): Use -O0.
(naked): Add attribute regparm(1) for x86_32 targets.
Add integer argument.  Remove global "data" variable.
(main): Pass integer argument to naked function.
* gcc.target/i386/naked-4.c: New test.

From-SVN: r250742

6 years agoAdd myself to MAINTAINERS.
Robin Dapp [Mon, 31 Jul 2017 12:02:33 +0000 (12:02 +0000)]
Add myself to MAINTAINERS.

From-SVN: r250741

6 years ago[Committed] S/390: Support z14 as CPU name.
Andreas Krebbel [Mon, 31 Jul 2017 11:31:09 +0000 (11:31 +0000)]
[Committed] S/390: Support z14 as CPU name.

With IBM z14 officially announced we can add support for z14 as
preferred CPU name.  We still pass arch12 to Binutils in order to keep
older Binutils versions supported.

gcc/ChangeLog:

2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config.gcc: Add z14.
* config/s390/driver-native.c (s390_host_detect_local_cpu): Add
CPU model numbers for z13s and z14.
* config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
arch12 with z14.
* config/s390/s390-opts.h (enum processor_type): Rename
PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
* config/s390/s390.c (processor_table): Add field for CPU name to
be passed to Binutils.
(s390_asm_output_machine_for_arch): Use the new field in
processor_table for Binutils.
(s390_expand_builtin): Replace arch12 with z14.
(s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
(s390_get_sched_attrmask): Likewise.
(s390_get_unit_mask): Likewise.
* config/s390/s390.opt: Add z14 to processor_type enum.

From-SVN: r250739

6 years ago[PR 81477] Set versionable regardless of optimization level
Martin Jambor [Mon, 31 Jul 2017 11:18:31 +0000 (13:18 +0200)]
[PR 81477] Set versionable regardless of optimization level

2017-07-31  Martin Jambor  <mjambor@suse.cz>

PR hsa/81477
* ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
regardless of optimization level.

From-SVN: r250738

6 years agoRecover GOTO predictor.
Jan Hubicka [Mon, 31 Jul 2017 11:16:00 +0000 (13:16 +0200)]
Recover GOTO predictor.

2017-07-31  Jan Hubicka <hubicka@ucw.cz>
    Martin Liska  <mliska@suse.cz>

* c-typeck.c (c_finish_goto_label): Build gimple predict
stament.
2017-07-31  Jan Hubicka <hubicka@ucw.cz>
    Martin Liska  <mliska@suse.cz>

* predict.def: Remove old comment and adjust probability.
* gimplify.c (should_warn_for_implicit_fallthrough): Ignore
PREDICT statements.
2017-07-31  Jan Hubicka <hubicka@ucw.cz>
    Martin Liska  <mliska@suse.cz>

* gcc.dg/predict-15.c: New test.
* gcc.dg/tree-ssa/vrp24.c: Update scanned pattern.
2017-07-31  Jan Hubicka <hubicka@ucw.cz>
    Martin Liska  <mliska@suse.cz>

* pt.c (tsubst_copy): Copy PREDICT_EXPR.
* semantics.c (finish_goto_stmt): Build gimple predict
stament.
* constexpr.c (potential_constant_expression_1): Handle
PREDICT_EXPR.

Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r250737

6 years agore PR target/25967 (Add attribute naked for x86)
Uros Bizjak [Mon, 31 Jul 2017 10:22:41 +0000 (12:22 +0200)]
re PR target/25967 (Add attribute naked for x86)

PR target/25967
* config/i386/i386.c (ix86_function_naked): New function.
(ix86_can_use_return_insn_p): Return false for naked functions.
(ix86_expand_prologue): Skip prologue for naked functions.
(ix86_expand_epilogue): Skip epilogue for naked functions
and emit trap instruction.
(ix86_warn_func_return): New function.
(ix86_attribute_table): Add "naked" attribute specification.
(TARGET_WARN_FUNC_RETURN): Define.
* doc/extend.texi (x86 Function Attributes) <naked>: Document it.

testsuite/ChangeLog:

PR target/25967
* gcc.target/i386/naked-1.c: New test.
* gcc.target/i386/naked-2.c: Ditto.
* gcc.target/i386/naked-3.c: Ditto.
* gcc.target/x86_64/abi/ms-sysv/ms-sysv.c: Remove
do_test_body0 stub function, use attribute "naked" instead.
* gcc.dg/pr44290-1.c: Use naked_functions effective target.
* gcc.dg/pr44290-2.c: Ditto.

From-SVN: r250736

6 years agore PR fortran/81581 (runtime checks for DIM argument of intrinsic SUM missing)
Thomas Koenig [Mon, 31 Jul 2017 09:34:36 +0000 (09:34 +0000)]
re PR fortran/81581 (runtime checks for DIM argument of intrinsic SUM missing)

2017-07-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/81581
* m4/ifuntion.m4 (name`'rtype_qual`_'atype_code): Perform check
for dim.
(`m'name`'rtype_qual`_'atype_code): Likewise. Change type of rank
and tim to index_type.
(`s'name`'rtype_qual`_'atype_code): Perform check for dim.
* generated/iall_i16.c: Regenerated.
* generated/iall_i1.c: Regenerated.
* generated/iall_i2.c: Regenerated.
* generated/iall_i4.c: Regenerated.
* generated/iall_i8.c: Regenerated.
* generated/iany_i16.c: Regenerated.
* generated/iany_i1.c: Regenerated.
* generated/iany_i2.c: Regenerated.
* generated/iany_i4.c: Regenerated.
* generated/iany_i8.c: Regenerated.
* generated/iparity_i16.c: Regenerated.
* generated/iparity_i1.c: Regenerated.
* generated/iparity_i2.c: Regenerated.
* generated/iparity_i4.c: Regenerated.
* generated/iparity_i8.c: Regenerated.
* generated/maxloc1_16_i16.c: Regenerated.
* generated/maxloc1_16_i1.c: Regenerated.
* generated/maxloc1_16_i2.c: Regenerated.
* generated/maxloc1_16_i4.c: Regenerated.
* generated/maxloc1_16_i8.c: Regenerated.
* generated/maxloc1_16_r10.c: Regenerated.
* generated/maxloc1_16_r16.c: Regenerated.
* generated/maxloc1_16_r4.c: Regenerated.
* generated/maxloc1_16_r8.c: Regenerated.
* generated/maxloc1_4_i16.c: Regenerated.
* generated/maxloc1_4_i1.c: Regenerated.
* generated/maxloc1_4_i2.c: Regenerated.
* generated/maxloc1_4_i4.c: Regenerated.
* generated/maxloc1_4_i8.c: Regenerated.
* generated/maxloc1_4_r10.c: Regenerated.
* generated/maxloc1_4_r16.c: Regenerated.
* generated/maxloc1_4_r4.c: Regenerated.
* generated/maxloc1_4_r8.c: Regenerated.
* generated/maxloc1_8_i16.c: Regenerated.
* generated/maxloc1_8_i1.c: Regenerated.
* generated/maxloc1_8_i2.c: Regenerated.
* generated/maxloc1_8_i4.c: Regenerated.
* generated/maxloc1_8_i8.c: Regenerated.
* generated/maxloc1_8_r10.c: Regenerated.
* generated/maxloc1_8_r16.c: Regenerated.
* generated/maxloc1_8_r4.c: Regenerated.
* generated/maxloc1_8_r8.c: Regenerated.
* generated/maxval_i16.c: Regenerated.
* generated/maxval_i1.c: Regenerated.
* generated/maxval_i2.c: Regenerated.
* generated/maxval_i4.c: Regenerated.
* generated/maxval_i8.c: Regenerated.
* generated/maxval_r10.c: Regenerated.
* generated/maxval_r16.c: Regenerated.
* generated/maxval_r4.c: Regenerated.
* generated/maxval_r8.c: Regenerated.
* generated/minloc1_16_i16.c: Regenerated.
* generated/minloc1_16_i1.c: Regenerated.
* generated/minloc1_16_i2.c: Regenerated.
* generated/minloc1_16_i4.c: Regenerated.
* generated/minloc1_16_i8.c: Regenerated.
* generated/minloc1_16_r10.c: Regenerated.
* generated/minloc1_16_r16.c: Regenerated.
* generated/minloc1_16_r4.c: Regenerated.
* generated/minloc1_16_r8.c: Regenerated.
* generated/minloc1_4_i16.c: Regenerated.
* generated/minloc1_4_i1.c: Regenerated.
* generated/minloc1_4_i2.c: Regenerated.
* generated/minloc1_4_i4.c: Regenerated.
* generated/minloc1_4_i8.c: Regenerated.
* generated/minloc1_4_r10.c: Regenerated.
* generated/minloc1_4_r16.c: Regenerated.
* generated/minloc1_4_r4.c: Regenerated.
* generated/minloc1_4_r8.c: Regenerated.
* generated/minloc1_8_i16.c: Regenerated.
* generated/minloc1_8_i1.c: Regenerated.
* generated/minloc1_8_i2.c: Regenerated.
* generated/minloc1_8_i4.c: Regenerated.
* generated/minloc1_8_i8.c: Regenerated.
* generated/minloc1_8_r10.c: Regenerated.
* generated/minloc1_8_r16.c: Regenerated.
* generated/minloc1_8_r4.c: Regenerated.
* generated/minloc1_8_r8.c: Regenerated.
* generated/minval_i16.c: Regenerated.
* generated/minval_i1.c: Regenerated.
* generated/minval_i2.c: Regenerated.
* generated/minval_i4.c: Regenerated.
* generated/minval_i8.c: Regenerated.
* generated/minval_r10.c: Regenerated.
* generated/minval_r16.c: Regenerated.
* generated/minval_r4.c: Regenerated.
* generated/minval_r8.c: Regenerated.
* generated/norm2_r10.c: Regenerated.
* generated/norm2_r16.c: Regenerated.
* generated/norm2_r4.c: Regenerated.
* generated/norm2_r8.c: Regenerated.
* generated/parity_l16.c: Regenerated.
* generated/parity_l1.c: Regenerated.
* generated/parity_l2.c: Regenerated.
* generated/parity_l4.c: Regenerated.
* generated/parity_l8.c: Regenerated.
* generated/product_c10.c: Regenerated.
* generated/product_c16.c: Regenerated.
* generated/product_c4.c: Regenerated.
* generated/product_c8.c: Regenerated.
* generated/product_i16.c: Regenerated.
* generated/product_i1.c: Regenerated.
* generated/product_i2.c: Regenerated.
* generated/product_i4.c: Regenerated.
* generated/product_i8.c: Regenerated.
* generated/product_r10.c: Regenerated.
* generated/product_r16.c: Regenerated.
* generated/product_r4.c: Regenerated.
* generated/product_r8.c: Regenerated.
* generated/sum_c10.c: Regenerated.
* generated/sum_c16.c: Regenerated.
* generated/sum_c4.c: Regenerated.
* generated/sum_c8.c: Regenerated.
* generated/sum_i16.c: Regenerated.
* generated/sum_i1.c: Regenerated.
* generated/sum_i2.c: Regenerated.
* generated/sum_i4.c: Regenerated.
* generated/sum_i8.c: Regenerated.
* generated/sum_r10.c: Regenerated.
* generated/sum_r16.c: Regenerated.
* generated/sum_r4.c: Regenerated.
* generated/sum_r8.c: Regenerated.

2017-07-31  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/81581
* gfortran.dg/dim_sum_1.f90: New test case.
* gfortran.dg/dim_sum_2.f90: New test case.
* gfortran.dg/dim_sum_3.f90: New test case.

From-SVN: r250735

6 years ago* check.c (gfc_check_num_images): Fix a pasto.
Jakub Jelinek [Mon, 31 Jul 2017 09:32:02 +0000 (11:32 +0200)]
* check.c (gfc_check_num_images): Fix a pasto.

From-SVN: r250734

6 years agoLearn GIMPLE pretty printer to produce nicer dump output.
Martin Liska [Mon, 31 Jul 2017 08:54:05 +0000 (10:54 +0200)]
Learn GIMPLE pretty printer to produce nicer dump output.

2017-07-31  Martin Liska  <mliska@suse.cz>

* gimple-pretty-print.c (dump_gimple_label): Never dump
BB info.
(dump_gimple_bb_header): Always dump BB info.
(pp_cfg_jump): Do not append info about BB when dumping a jump.
2017-07-31  Martin Liska  <mliska@suse.cz>

* gcc.dg/builtin-unreachable-6.c: Update scanned patterns.
* gcc.dg/tree-ssa/attr-hotcold-2.c: Likewise.

From-SVN: r250731

6 years agoDo UBSAN sanitization just when current_function_decl != NULL_TREE (PR sanitize/81530).
Martin Liska [Mon, 31 Jul 2017 08:53:00 +0000 (10:53 +0200)]
Do UBSAN sanitization just when current_function_decl != NULL_TREE (PR sanitize/81530).

2017-07-31  Martin Liska  <mliska@suse.cz>

PR sanitize/81530
* cp-gimplify.c (cp_genericize): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality.
* cp-ubsan.c (cp_ubsan_instrument_vptr_p): Likewise.
* decl.c (compute_array_index_type): Likewise.
* init.c (finish_length_check): Likewise.
* typeck.c (cp_build_binary_op): Likewise.
2017-07-31  Martin Liska  <mliska@suse.cz>

PR sanitize/81530
* c-convert.c (convert): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality.
* c-decl.c (grokdeclarator): Likewise.
* c-typeck.c (build_binary_op): Likewise.
2017-07-31  Martin Liska  <mliska@suse.cz>

PR sanitize/81530
* convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
also with current_function_decl non-null equality.
2017-07-31  Martin Liska  <mliska@suse.cz>

PR sanitize/81530
* c-ubsan.c (ubsan_maybe_instrument_array_ref):
Guard condition with flag_sanitize_p also with current_function_decl
non-null equality.
(ubsan_maybe_instrument_reference_or_call): Likewise.
2017-07-31  Martin Liska  <mliska@suse.cz>

PR sanitize/81530
* g++.dg/ubsan/pr81530.C: New test.

From-SVN: r250730

6 years agore PR sanitizer/81604 (Ubsan type reporting can be bogus in some cases)
Jakub Jelinek [Mon, 31 Jul 2017 08:24:58 +0000 (10:24 +0200)]
re PR sanitizer/81604 (Ubsan type reporting can be bogus in some cases)

PR sanitizer/81604
* ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
change type to the element type, instead add eltype variable and
use it where we are interested in the element type.

* c-c++-common/ubsan/pr81604.c: New test.

From-SVN: r250728

6 years agore PR tree-optimization/81603 (Various compiler UB on very large constant offsets)
Jakub Jelinek [Mon, 31 Jul 2017 08:22:14 +0000 (10:22 +0200)]
re PR tree-optimization/81603 (Various compiler UB on very large constant offsets)

PR tree-optimization/81603
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
offset arithmetic in offset_int, bail out if the resulting bit offset
doesn't fit into shwi.

From-SVN: r250727

6 years agoRemove a Java-specific hunk.
Martin Liska [Mon, 31 Jul 2017 07:29:49 +0000 (09:29 +0200)]
Remove a Java-specific hunk.

2017-07-31  Martin Liska  <mliska@suse.cz>

* gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
(gimplify_save_expr): Fix comment.

From-SVN: r250726

6 years agoDaily bump.
GCC Administrator [Mon, 31 Jul 2017 00:16:46 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250725

6 years agoi386: Update INCOMING_FRAME_SP_OFFSET for exception handler
H.J. Lu [Sun, 30 Jul 2017 14:10:32 +0000 (14:10 +0000)]
i386: Update INCOMING_FRAME_SP_OFFSET for exception handler

Since there is an extra error code passed to the exception handler,
INCOMING_FRAME_SP_OFFSET is return address plus error code for the
exception handler.  This patch updates INCOMING_FRAME_SP_OFFSET to
the correct value for the exception handler.

This patch exposed a bug in DWARF stack frame CFI generation, which
assumes that INCOMING_FRAME_SP_OFFSET is the same for all functions:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81570

It sets and caches the incoming stack frame offset with the same
INCOMING_FRAME_SP_OFFSET for all functions.  When there are both
exception handler and normal function in the same input, the wrong
incoming stack frame offset is used for exception handler or normal
function, which leads to

FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 error == 0x12345670
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->ip == 0x12345671
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->cs == 0x12345672
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->flags == 0x12345673
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->sp == 0x12345674
FAIL: gcc.dg/guality/pr68037-1.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  line 33 frame->ss == 0x12345675

With the patch for PR 81570:

https://gcc.gnu.org/ml/gcc-patches/2017-07/msg01851.html

applied, there are no regressions on i686 and x86-64.

gcc/

PR target/79793
* config/i386/i386.c (ix86_function_arg): Update arguments for
exception handler.
(ix86_compute_frame_layout): Set the initial stack offset to
INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
INCOMING_FRAME_SP_OFFSET.
(ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
stack before exception handler returns.
* config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
the 'ERROR_CODE' for exception handler.

gcc/testsuite/

PR target/79793
* gcc.dg/guality/pr68037-1.c: Update gdb breakpoints.
* gcc.target/i386/interrupt-5.c (interrupt_frame): New struct.
(foo): Check the builtin return address against the return address
in interrupt frame.
* gcc.target/i386/pr79793-1.c: New test.
* gcc.target/i386/pr79793-2.c: Likewise.

From-SVN: r250721

6 years agoi386.h (ASM_PRINTF_EXTENSIONS): New macro.
Uros Bizjak [Sun, 30 Jul 2017 08:51:37 +0000 (10:51 +0200)]
i386.h (ASM_PRINTF_EXTENSIONS): New macro.

* config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
(ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
(ASM_OUTPUT_REG_POP): Ditto.
* config/i386/i386.c (ix86_asm_output_function_label): Use fputs
instead of asm_fprintf to output pure string.

From-SVN: r250720

6 years agoc-format.c (asm_fprintf_char_table): Add 'z' to format_chars.
Uros Bizjak [Sun, 30 Jul 2017 08:49:40 +0000 (10:49 +0200)]
c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.

* c-format.c (asm_fprintf_char_table): Add 'z' to format_chars.

From-SVN: r250719

6 years agoDaily bump.
GCC Administrator [Sun, 30 Jul 2017 00:16:35 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250718

6 years agoc-ada-spec.c (dump_generic_ada_node): Take into account signedness for enumeral types.
Eric Botcazou [Sat, 29 Jul 2017 09:52:04 +0000 (09:52 +0000)]
c-ada-spec.c (dump_generic_ada_node): Take into account signedness for enumeral types.

* c-ada-spec.c (dump_generic_ada_node): Take into account signedness
for enumeral types.
(print_ada_declaration): Add missing guard for record types.

From-SVN: r250714

6 years agodebug.h (struct gcc_debug_hooks): Add IMPLICIT argument to imported_module_or_decl...
Jakub Jelinek [Sat, 29 Jul 2017 07:52:16 +0000 (09:52 +0200)]
debug.h (struct gcc_debug_hooks): Add IMPLICIT argument to imported_module_or_decl hook.

* debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
to imported_module_or_decl hook.
(debug_nothing_tree_tree_tree_bool): Remove.
(debug_nothing_tree_tree_tree_bool_bool): New declaration.
* debug.c (do_nothing_debug_hooks): Use
debug_nothing_tree_tree_tree_bool_bool instead of
debug_nothing_tree_tree_tree_bool.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
(gen_namespace_die): Add DW_AT_export_symbols attribute if
langhook wants it.
(dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
if true, -gdwarf-5 and decl will have DW_AT_export_symbols
attribute, don't add anything.
cp/
* cp-objcp-common.c (cp_decl_dwarf_attribute): Handle
DW_AT_export_symbols.
* name-lookup.c (emit_debug_info_using_namespace): Add IMPLICIT
argument, pass it through to the debug hook.
(finish_namespace_using_directive): Adjust
emit_debug_info_using_namespace caller.
(push_namespace): Likewise.  Call it after setting
DECL_NAMESPACE_INLINE_P.
(cp_emit_debug_info_for_using): Pass false as new argument to
the imported_module_or_decl debug hook.
fortran/
* trans-decl.c (gfc_trans_use_stmts): Pass false as new argument to
the imported_module_or_decl debug hook.
ada/
* gcc-interface/utils.c (gnat_write_global_declarations): Pass false
as new argument to the imported_module_or_decl debug hook.
testsuite/
* g++.dg/debug/dwarf2/inline-ns-1.C: New test.
* g++.dg/debug/dwarf2/inline-ns-2.C: New test.

From-SVN: r250713

6 years agouse c++ for fold_buildN_loc
Trevor Saunders [Sat, 29 Jul 2017 01:39:48 +0000 (01:39 +0000)]
use c++ for fold_buildN_loc

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* fold-const.c (fold_build1_stat_loc): Remove _stat from name.
(fold_build2_stat_loc): Likewise.
(fold_build3_stat_loc): Likewise.
* fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
(fold_build1_loc): Remove macro.
(fold_build2_loc): Likewise.
(fold_build3_loc): Likewise.

From-SVN: r250712

6 years agouse c++ for gimple_build_debug_bind{,_source}
Trevor Saunders [Sat, 29 Jul 2017 01:39:42 +0000 (01:39 +0000)]
use c++ for gimple_build_debug_bind{,_source}

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
(gimple_build_debug_bind_source_stat): Likewise.
* gimple.h (gimple_build_debug_bind): Remove macro.
(gimple_build_debug_bind_source): Likewise.

From-SVN: r250711

6 years agouse c++ for bitmap_initialize
Trevor Saunders [Sat, 29 Jul 2017 01:39:36 +0000 (01:39 +0000)]
use c++ for bitmap_initialize

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* bitmap.c (bitmap_alloc): Adjust.
(bitmap_gc_alloc): Likewise.
* bitmap.h (bitmap_initialize_stat): Remove _stat from name.

From-SVN: r250710

6 years agosimplify the bitmap alloc_stat functions with c++
Trevor Saunders [Sat, 29 Jul 2017 01:39:31 +0000 (01:39 +0000)]
simplify the bitmap alloc_stat functions with c++

gcc/fortran/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* resolve.c (find_reachable_labels): Adjust.

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
(bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
* bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
(bitmap_gc_alloc_stat): Likewise.
(BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.

From-SVN: r250709

6 years agoreplace shallow_copy_rtx_stat with c++
Trevor Saunders [Sat, 29 Jul 2017 01:39:25 +0000 (01:39 +0000)]
replace shallow_copy_rtx_stat with c++

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
* rtl.h (shallow_copy_rtx): Remove macro.

From-SVN: r250708

6 years agoreplace rtx_alloc_stat with c++
Trevor Saunders [Sat, 29 Jul 2017 01:39:17 +0000 (01:39 +0000)]
replace rtx_alloc_stat with c++

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* emit-rtl.c (gen_raw_REG): Adjust.
* gengenrtl.c (gendef): Likewise.
* rtl.c (rtx_alloc_stat): Remove _stat from name.
* rtl.h (rtx_alloc): Remove macro.

From-SVN: r250707

6 years agouse c++ for build_tree_list{,_vec}_stat
Trevor Saunders [Sat, 29 Jul 2017 01:39:10 +0000 (01:39 +0000)]
use c++ for build_tree_list{,_vec}_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (build_tree_list_vec_stat): Remove _stat from name.
(build_tree_list_stat): Likewise.
* tree.h (build_tree_list): Remove macro.
(build_tree_list_vec): Likewise.

From-SVN: r250706

6 years agouse C++ for {make,build}_vector_stat
Trevor Saunders [Sat, 29 Jul 2017 01:39:03 +0000 (01:39 +0000)]
use C++ for {make,build}_vector_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_vector_stat): Remove _stat from name.
(build_vector_stat): Likewise.
* tree.h (make_vector_stat): Remove macro.
(build_vector_stat): Likewise.

From-SVN: r250705

6 years agoremove unused build_var_debug_value prototype
Trevor Saunders [Sat, 29 Jul 2017 01:38:57 +0000 (01:38 +0000)]
remove unused build_var_debug_value prototype

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.h (build_var_debug_value): Remove prototype.

From-SVN: r250704

6 years agouse c++ for tree_cons_stat
Trevor Saunders [Sat, 29 Jul 2017 01:38:51 +0000 (01:38 +0000)]
use c++ for tree_cons_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (tree_cons_stat): Remove _stat from name.
* tree.h (tree_cons): Remove macro.

From-SVN: r250703

6 years agouse c++ instead of build_vl_exp_stat
Trevor Saunders [Sat, 29 Jul 2017 01:38:43 +0000 (01:38 +0000)]
use c++ instead of build_vl_exp_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (build_vl_exp_stat): Remove _stat from name.
* tree.h (build_vl_exp): Remove macro.

From-SVN: r250702

6 years agouse c++ instead of build_decl_stat
Trevor Saunders [Sat, 29 Jul 2017 01:38:37 +0000 (01:38 +0000)]
use c++ instead of build_decl_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (build_decl_stat): Remove _stat from name.
* tree.h (build_decl): Remove macro.

From-SVN: r250701

6 years agoreplace gimple_alloc_stat with c++
Trevor Saunders [Sat, 29 Jul 2017 01:38:31 +0000 (01:38 +0000)]
replace gimple_alloc_stat with c++

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* gimple.c (gimple_build_with_ops_stat): Adjust.
(gimple_alloc_stat): Remove _stat from name.
* gimple.h (gimple_alloc): Remove macro.

From-SVN: r250700

6 years agouse c++ instead of {make,grow}_tree_vec_stat
Trevor Saunders [Sat, 29 Jul 2017 01:38:25 +0000 (01:38 +0000)]
use c++ instead of {make,grow}_tree_vec_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_tree_vec_stat): Remove _stat from name.
(grow_tree_vec_stat): Likewise.
* tree.h (make_tree_vec_stat): Adjust prototype.
(grow_tree_vec_stat): Likewise.
(make_tree_vec): Remove macro.
(grow_tree_vec): Likewise.

From-SVN: r250699

6 years agouse c++ instead of buildN_stat{,_loc}
Trevor Saunders [Sat, 29 Jul 2017 01:38:19 +0000 (01:38 +0000)]
use c++ instead of buildN_stat{,_loc}

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* fold-const.c (fold_build1_stat_loc): Adjust.
(fold_build2_stat_loc): Likewise.
(fold_build3_stat_loc): Likewise.
* tree.c (build0_stat): Remove _stat from name.
(build1_stat): Likewise.
(build2_stat): Likewise.
(build3_stat): Likewise.
(build4_stat): Likewise.
(build5_stat): Likewise.
* tree.h (build1_loc): Remove macro, and rename _stat function
to this.
(build2_loc): Likewise.
(build3_loc): Likewise.
(build4_loc): Likewise.
(build5_loc): Likewise.

From-SVN: r250698

6 years agouse c++ for make_int_cst_stat
Trevor Saunders [Sat, 29 Jul 2017 01:38:12 +0000 (01:38 +0000)]
use c++ for make_int_cst_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_int_cst_stat): Remove _stat from name.
* tree.h (make_int_cst_stat): Adjust prototype.
(make_int_cst): Remove macro.

From-SVN: r250697

6 years agouse cxx instead of make_tree_binfo_stat
Trevor Saunders [Sat, 29 Jul 2017 01:38:06 +0000 (01:38 +0000)]
use cxx instead of make_tree_binfo_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_tre_binfo_stat): Remove _stat from name.
* tree.h (make_tree_binfo_stat): Adjust prototype.
(make_tree_binfo): Remove.

From-SVN: r250696

6 years agouse c++ instead of _stat for copy_node_stat
Trevor Saunders [Sat, 29 Jul 2017 01:38:00 +0000 (01:38 +0000)]
use c++ instead of _stat for copy_node_stat

gcc/cp/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* lex.c (copy_decl): Adjust.
(copy_type): Likewise.

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (copy_node_stat): Rename to copy_node.
(build_distinct_type_copy): Adjust.
* tree.h (copy_node_stat): Adjust prototype.
(copy_node): Remove macro.

From-SVN: r250695

6 years agouse c++ instead of make_node_stat
Trevor Saunders [Sat, 29 Jul 2017 01:37:54 +0000 (01:37 +0000)]
use c++ instead of make_node_stat

gcc/ChangeLog:

2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* tree.c (make_node_stat): rename to make_node.
(build_tree_list_stat): Adjust.
(build0_stat): Likewise.
(build2_stat): Likewise.
(build3_stat): Likewise.
(build4_stat): Likewise.
(build5_stat): Likewise.
(build_decl_stat): Likewise.
* tree.h (make_node_stat): Adjust prototype.
(make_node): remove macro.

From-SVN: r250694

6 years agoDaily bump.
GCC Administrator [Sat, 29 Jul 2017 00:16:41 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250693

6 years agoppc-auxv.h (PPC_FEATURE2_DARN): New define.
Peter Bergner [Fri, 28 Jul 2017 20:10:45 +0000 (15:10 -0500)]
ppc-auxv.h (PPC_FEATURE2_DARN): New define.

gcc/
* config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
(PPC_FEATURE2_SCV): Likewise.
* config/rs6000/rs6000.c (cpu_supports_info): Use them.

gcc/testsuite/
* gcc.target/powerpc/cpu-builtin-1.c (darn, scv): Add tests.

From-SVN: r250687

6 years agocompiler: add backend type conversion
Ian Lance Taylor [Fri, 28 Jul 2017 19:58:01 +0000 (19:58 +0000)]
compiler: add backend type conversion

    Tweak Interface_field_reference_expression::do_get_backend to apply an
    additional backend type conversion to the returned result.  This is
    needed due to the fact that the top level type of the expression is a
    function descriptor, however the value being manufactured is a pointer
    to <thunk-descriptor, value> struct.

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

From-SVN: r250686

6 years agoconfigure.ac (target-libffi): Don't disable for AIX.
Tony Reix [Fri, 28 Jul 2017 18:56:28 +0000 (18:56 +0000)]
configure.ac (target-libffi): Don't disable for AIX.

2017-07-28  Tony Reix  <tony.reix@atos.net>

        * configure.ac (target-libffi): Don't disable for AIX.
        (go): Don't add to unsupported_languages on AIX.
        (target-libgo): Don't disable for AIX.
        * configure: Regenerate.

From-SVN: r250685

6 years ago* xcoff.c: Don't leak a file descriptor if an archive is malformed.
Tony Reix [Fri, 28 Jul 2017 18:52:13 +0000 (18:52 +0000)]
* xcoff.c: Don't leak a file descriptor if an archive is malformed.

From-SVN: r250684

6 years agocompiler: track placeholder pointer types for conversion
Ian Lance Taylor [Fri, 28 Jul 2017 18:03:29 +0000 (18:03 +0000)]
compiler: track placeholder pointer types for conversion

    We recently started walking through the hash table of pointer types to
    finalize them.  Unfortunately it is possible to create a new pointer
    type while finalizing an existing one (test case: test/fixedbugs/issue5291)
    and that breaks the iteration.  So, instead, keep a list of
    placeholder pointer types, and iterate through them while permitting
    the list to be extended as we go.

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

From-SVN: r250683

6 years agocompiler: use a single temporary for calls with multiple results
Ian Lance Taylor [Fri, 28 Jul 2017 17:42:05 +0000 (17:42 +0000)]
compiler: use a single temporary for calls with multiple results

    For calls that return multiple results we used to create a temporary
    of struct type to hold the results, and also create a separate
    temporary for each result.  Then the call expression would copy each
    result out of the struct to the temporary, and Call_result_expression
    would refer to the desired temporary.

    Simplify this to just use a single temporary of struct type, and
    change Call_result_expression to fetch a field of the struct.

    This may reduce some incorrect tree sharing in the backend code.

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

From-SVN: r250682

6 years ago2017-07-28 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Fri, 28 Jul 2017 16:47:08 +0000 (16:47 +0000)]
2017-07-28  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.c
(aarch64_internal_mov_immediate): Add new special pattern.
* config/aarch64/aarch64.md (*movdi_aarch64):
Add reg/32bit const mov case.

gcc/testsuite/
2017-07-28  Tamar Christina  <tamar.christina@arm.com>

* gcc.target/aarch64/int_mov_immediate_1.c: New.

From-SVN: r250680

6 years agopr80815-3.c: Require vect_perm.
Bin Cheng [Fri, 28 Jul 2017 16:30:44 +0000 (16:30 +0000)]
pr80815-3.c: Require vect_perm.

gcc/testsuite
* gcc.dg/vect/pr80815-3.c: Require vect_perm.

From-SVN: r250676

6 years agoFix pid_t printing
Rainer Orth [Fri, 28 Jul 2017 16:26:39 +0000 (16:26 +0000)]
Fix pid_t printing

* fileline.c (fileline_initialize): Print pid_t as long.

From-SVN: r250675

6 years agodbl_mov_immediate_1.c: New.
Tamar Christina [Fri, 28 Jul 2017 15:14:25 +0000 (15:14 +0000)]
dbl_mov_immediate_1.c: New.

2017-07-28  Tamar Christina  <tamar.christina@arm.com>
    Bilyan Borisov  <bilyan.borisov@arm.com>

* gcc.target/aarch64/dbl_mov_immediate_1.c: New.
* gcc.target/aarch64/flt_mov_immediate_1.c: New.
* gcc.target/aarch64/f16_mov_immediate_1.c: New.
* gcc.target/aarch64/f16_mov_immediate_2.c: New.
* gcc.target/aarch64/pr63304_1.c: Changed to double.

Co-Authored-By: Bilyan Borisov <bilyan.borisov@arm.com>
From-SVN: r250674

6 years agoaarch64.md (mov<mode>): Generalize.
Tamar Christina [Fri, 28 Jul 2017 15:12:32 +0000 (15:12 +0000)]
aarch64.md (mov<mode>): Generalize.

2017-07-28  Tamar Christina  <tamar.christina@arm.com>
            Richard Sandiford <richard.sandiford@linaro.org>

        * config/aarch64/aarch64.md (mov<mode>): Generalize.
        (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
        Add integer and movi cases.
        (movi-split-hf-df-sf split, fp16): New.
        (enabled): Added TARGET_FP_F16INST.
        * config/aarch64/iterators.md (GPF_HF): New.
        * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.

Co-Authored-By: Richard Sandiford <richard.sandiford@linaro.org>
From-SVN: r250673

6 years ago2017-07-28 Tamar Christina <tamar.christina@arm.com>
Tamar Christina [Fri, 28 Jul 2017 15:11:25 +0000 (15:11 +0000)]
2017-07-28  Tamar Christina  <tamar.christina@arm.com>

* config/aarch64/aarch64.c
(aarch64_simd_container_mode): Add prototype.
(aarch64_expand_mov_immediate): Add HI support.
(aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
(aarch64_can_const_movi_rtx_p): New.
(aarch64_preferred_reload_class):
Remove restrictions of using FP registers for certain SIMD operations.
(aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
(aarch64_valid_floating_const): Add integer move validation.
(aarch64_simd_imm_scalar_p): Remove.
(aarch64_output_scalar_simd_mov_immediate): Generalize function.
(aarch64_legitimate_constant_p): Expand list of supported cases.
* config/aarch64/aarch64-protos.h
(aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
(aarch64_reinterpret_float_as_int): New.
(aarch64_simd_imm_scalar_p): Remove.
* config/aarch64/constraints.md (Uvi): New.
(Dd): Split into Ds and new Dd.
* config/aarch64/aarch64.md (*movsi_aarch64):
Add SIMD mov case.
(*movdi_aarch64): Add SIMD mov case.

From-SVN: r250672

6 years agotree-predcom.c: (struct chain): Handle store-store chain in which stores for eliminat...
Bin Cheng [Fri, 28 Jul 2017 15:03:09 +0000 (15:03 +0000)]
tree-predcom.c: (struct chain): Handle store-store chain in which stores for elimination only...

* tree-predcom.c: (struct chain): Handle store-store chain in which
stores for elimination only store loop invariant values.
(execute_pred_commoning_chain): Ditto.
(prepare_initializers_chain_store_elim): Ditto.
(prepare_finalizers): Ditto.
(is_inv_store_elimination_chain): New function.
(initialize_root_vars_store_elim_1): New function.

From-SVN: r250670

6 years agotree-predcom.c: Revise general description of the pass.
Bin Cheng [Fri, 28 Jul 2017 15:01:28 +0000 (15:01 +0000)]
tree-predcom.c: Revise general description of the pass.

* tree-predcom.c: Revise general description of the pass.
(enum chain_type): New enum type for store elimination.
(struct chain): New field supporting store elimination.
(struct component): Ditto.
(dump_chain): Dump store-stores chain.
(release_chain): Release resources.
(split_data_refs_to_components): Compute and create component
contains only stores for elimination.
(get_chain_last_ref_at): New function.
(make_invariant_chain): Initialization.
(make_rooted_chain): Specify chain type in parameter and record it.
(add_looparound_copies): Skip for store-stores chain.
(determine_roots_comp): Compute type of chain and pass it to
make_rooted_chain.
(initialize_root_vars_store_elim_2): New function.
(finalize_eliminated_stores): New function.
(remove_stmt): Handle store for elimination.
(execute_pred_commoning_chain): Execute predictive commoning on
store-store chains.
(determine_unroll_factor): Skip unroll for store-stores chain.
(prepare_initializers_chain_store_elim): New function.
(prepare_initializers_chain): Hanlde store-store chain.
(prepare_finalizers_chain, prepare_finalizers): New function.
(tree_predictive_commoning_loop): Return integer value indicating
if loop is unrolled or lcssa form is corrupted.
(tree_predictive_commoning): Rewrite for lcssa form if necessary.

gcc/testsuite
* gcc.dg/tree-ssa/predcom-dse-1.c: New test.
* gcc.dg/tree-ssa/predcom-dse-2.c: New test.
* gcc.dg/tree-ssa/predcom-dse-3.c: New test.
* gcc.dg/tree-ssa/predcom-dse-4.c: New test.
* gcc.dg/tree-ssa/predcom-dse-5.c: New test.
* gcc.dg/tree-ssa/predcom-dse-6.c: New test.
* gcc.dg/tree-ssa/predcom-dse-7.c: New test.
* gcc.dg/tree-ssa/predcom-dse-8.c: New test.
* gcc.dg/tree-ssa/predcom-dse-9.c: New test.
* gcc.dg/tree-ssa/predcom-dse-10.c: New test.
* gcc.dg/tree-ssa/predcom-dse-11.c: New test.

From-SVN: r250669

6 years agotree-predcom.c (initialize_root): Delete.
Bin Cheng [Fri, 28 Jul 2017 14:58:11 +0000 (14:58 +0000)]
tree-predcom.c (initialize_root): Delete.

* tree-predcom.c (initialize_root): Delete.
(execute_pred_commoning_chain): Initialize root vars and replace
reference of non-combined chain directly, rather than call above
function.

From-SVN: r250668

6 years agotree-predcom.c (ref_at_iteration): Add parameter NITERS.
Bin Cheng [Fri, 28 Jul 2017 14:57:05 +0000 (14:57 +0000)]
tree-predcom.c (ref_at_iteration): Add parameter NITERS.

* tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
memory reference to DR at (NITERS + ITERS)-th iteration of loop.

From-SVN: r250667

6 years agotree-predcom.c (struct chain): New field init_seq.
Bin Cheng [Fri, 28 Jul 2017 14:55:49 +0000 (14:55 +0000)]
tree-predcom.c (struct chain): New field init_seq.

* tree-predcom.c (struct chain): New field init_seq.
(release_chain): Release init_seq.
(prepare_initializers_chain): Record intialization stmts in above
field.
(insert_init_seqs): New function.
(tree_predictive_commoning_loop): Call insert_init_seqs.

From-SVN: r250666

6 years ago* tree-predcom.c (determine_roots_comp): Skip trivial components.
Bin Cheng [Fri, 28 Jul 2017 14:54:20 +0000 (14:54 +0000)]
* tree-predcom.c (determine_roots_comp): Skip trivial components.

From-SVN: r250665

6 years agomatch.pd: Remove superfluous :c.
Richard Biener [Fri, 28 Jul 2017 13:38:01 +0000 (13:38 +0000)]
match.pd: Remove superfluous :c.

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

* match.pd: Remove superfluous :c.
* genmatch.c (simplify::id): Add member.
(lower_commutative, lower_opt_convert, lower_cond, lower_for):
Copy id.
(current_id): New global.
(dt_node::parent): Move from ...
(dt_operand::parent): ... here.  Add for_id member.
(is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
(decision_tree::find_node): Relax order requirement when
merging DT_TRUE nodes to ones inbetween the current simplify
and the one we try to merge with.  Add diagnostic whenever
we need to enforce pattern order by not merging.
(decision_tree::insert): Set current_id.
(decision_tree::print_node): Dump parent node and for_id.
(parser::last_id): Add member.
(parser::push_simplify): Assign unique id.
(parser::parser): Initialize last_id.

From-SVN: r250664

6 years agoSet DECL_VALUE_EXPR after a debug stmt is generated (PR sanitizer/81340).
Martin Liska [Fri, 28 Jul 2017 11:56:47 +0000 (13:56 +0200)]
Set DECL_VALUE_EXPR after a debug stmt is generated (PR sanitizer/81340).

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

PR sanitizer/81340
* sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
gimple_build_debug_bind.
2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81340
* g++.dg/asan/pr81340.C: New test.

From-SVN: r250660

6 years agore PR middle-end/81502 (In some cases the data is moved to memory unnecessarily ...
Richard Biener [Fri, 28 Jul 2017 11:27:45 +0000 (11:27 +0000)]
re PR middle-end/81502 (In some cases the data is moved to memory unnecessarily [partial regression])

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

PR tree-optimization/81502
* match.pd: Add pattern combining BIT_INSERT_EXPR with
BIT_FIELD_REF.
* tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
size/pos operands.
(verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
for BIT_FIELD_REF args.
* fold-const.c (make_bit_field_ref): Likewise.
* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.

* gcc.target/i386/pr81502.c: New testcase.

From-SVN: r250659

6 years agore PR sanitizer/80998 (Implement -fsanitize=pointer-overflow)
Jakub Jelinek [Fri, 28 Jul 2017 10:37:51 +0000 (12:37 +0200)]
re PR sanitizer/80998 (Implement -fsanitize=pointer-overflow)

PR sanitizer/80998
* sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
* tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
* flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
Or it into SANITIZER_UNDEFINED.
* ubsan.c: Include gimple-fold.h and varasm.h.
(ubsan_expand_ptr_ifn): New function.
(instrument_pointer_overflow): New function.
(maybe_instrument_pointer_overflow): New function.
(instrument_object_size): Formatting fix.
(pass_ubsan::execute): Call instrument_pointer_overflow
and maybe_instrument_pointer_overflow.
* internal-fn.c (expand_UBSAN_PTR): New function.
* ubsan.h (ubsan_expand_ptr_ifn): Declare.
* sanitizer.def (__ubsan_handle_pointer_overflow,
__ubsan_handle_pointer_overflow_abort): New builtins.
* tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
* internal-fn.def (UBSAN_PTR): New internal function.
* opts.c (sanitizer_opts): Add pointer-overflow.
* lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
* fold-const.c (build_range_check): Compute pointer range check in
integral type if pointer arithmetics would be needed.  Formatting
fixes.
gcc/testsuite/
* c-c++-common/ubsan/ptr-overflow-1.c: New test.
* c-c++-common/ubsan/ptr-overflow-2.c: New test.
libsanitizer/
* ubsan/ubsan_handlers.cc: Cherry-pick upstream r304461.
* ubsan/ubsan_checks.inc: Likewise.
* ubsan/ubsan_handlers.h: Likewise.

From-SVN: r250656

6 years agoDo not handle VLA in sanitization (PR sanitizer/81460).
Martin Liska [Fri, 28 Jul 2017 10:36:36 +0000 (12:36 +0200)]
Do not handle VLA in sanitization (PR sanitizer/81460).

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

PR sanitizer/81460
* sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
parameters that are of a variable-length.
2017-07-28  Martin Liska  <mliska@suse.cz>

PR sanitizer/81460
* gcc.dg/asan/pr81460.c: New test.

From-SVN: r250655

6 years ago[PowerPC/RTEMS] Add 64-bit support using ELFv2 ABI
Sebastian Huber [Fri, 28 Jul 2017 07:17:10 +0000 (07:17 +0000)]
[PowerPC/RTEMS] Add 64-bit support using ELFv2 ABI

Add 64-bit support for RTEMS using the ELFv2 ABI with 64-bit long
double.

gcc/
* config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
rs6000/biarch64.h.
* config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
(CRT_CALL_STATIC_FUNCTION): Likewise.
(ASM_DEFAULT_SPEC): New define.
(ASM_SPEC32): Likewise.
(ASM_SPEC64): Likewise.
(ASM_SPEC_COMMON): Likewise.
(ASM_SPEC): Likewise.
(INVALID_64BIT): Likewise.
(LINK_OS_DEFAULT_SPEC): Likewise.
(LINK_OS_SPEC32): Likewise.
(LINK_OS_SPEC64): Likewise.
(POWERPC_LINUX): Likewise.
(PTRDIFF_TYPE): Likewise.
(RESTORE_FP_PREFIX): Likewise.
(RESTORE_FP_SUFFIX): Likewise.
(SAVE_FP_PREFIX): Likewise.
(SAVE_FP_SUFFIX): Likewise.
(SIZE_TYPE): Likewise.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
(TARGET_64BIT): Likewise.
(TARGET_64BIT): Likewise.
(TARGET_AIX): Likewise.
(WCHAR_TYPE_SIZE): Likewise.
(WCHAR_TYPE): Undefine.
(TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
(CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
(CPP_OS_RTEMS_SPEC): Delete.
(SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
link_os_spec64.
* config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.

libgcc/
* config/rs6000/ibm-ldouble.c: Disable if defined __rtems__.

From-SVN: r250652

6 years agore PR tree-optimization/81578 (ICE in omp_reduction_init_op)
Jakub Jelinek [Fri, 28 Jul 2017 07:11:51 +0000 (09:11 +0200)]
re PR tree-optimization/81578 (ICE in omp_reduction_init_op)

PR tree-optimization/81578
* tree-parloops.c (build_new_reduction): Bail out if
reduction_code isn't one of the standard OpenMP reductions.
Move the details printing after that decision.

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

From-SVN: r250651

6 years agore PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)
Richard Biener [Fri, 28 Jul 2017 07:08:38 +0000 (07:08 +0000)]
re PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)

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

PR tree-optimization/81573
* gcc.dg/torture/pr81573.c: Explicitely use signed char.

From-SVN: r250650

6 years agogo-backend.c (go_write_export_data): Use EXCLUDE section for AIX.
Tony Reix [Fri, 28 Jul 2017 00:16:36 +0000 (00:16 +0000)]
go-backend.c (go_write_export_data): Use EXCLUDE section for AIX.

* go-backend.c (go_write_export_data): Use EXCLUDE section for
AIX.

From-SVN: r250648

6 years agoDaily bump.
GCC Administrator [Fri, 28 Jul 2017 00:16:34 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r250647

6 years agopredicates.md (volatile_mem_operand): Remove code related to reload_in_progress.
Peter Bergner [Thu, 27 Jul 2017 20:04:53 +0000 (15:04 -0500)]
predicates.md (volatile_mem_operand): Remove code related to reload_in_progress.

* config/rs6000/predicates.md (volatile_mem_operand): Remove code
related to reload_in_progress.
(splat_input_operand): Likewise.
* config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
Delete prototype.
* config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
field.
(TARGET_EXPAND_TO_RTL_HOOK): Delete.
(TARGET_INSTANTIATE_DECLS): Likewise.
(legitimate_indexed_address_p): Delete reload_in_progress code.
(rs6000_debug_legitimate_address_p): Likewise.
(rs6000_eliminate_indexed_memrefs): Likewise.
(rs6000_emit_le_vsx_store): Likewise.
(rs6000_emit_move_si_sf_subreg): Likewise.
(rs6000_emit_move): Likewise.
(register_to_reg_type): Likewise.
(rs6000_pre_atomic_barrier): Likewise.
(rs6000_machopic_legitimize_pic_address): Likewise.
(rs6000_allocate_stack_temp): Likewise.
(rs6000_address_for_fpconvert): Likewise.
(rs6000_address_for_altivec): Likewise.
(rs6000_secondary_memory_needed_rtx): Delete function.
(rs6000_check_sdmode): Likewise.
(rs6000_alloc_sdmode_stack_slot): Likewise.
(rs6000_instantiate_decls): Likewise.
* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
* config/rs6000/rs6000.md (splitter for *movsi_got_internal):
Delete reload_in_progress.
(*vec_reload_and_plus_<mptrsize>): Likewise.
* config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
(vsx_div_v2di): Likewise.
(vsx_udiv_v2di): Likewise.

From-SVN: r250638

6 years agors6000.opt (mlra): Replace with stub.
Peter Bergner [Thu, 27 Jul 2017 20:03:35 +0000 (15:03 -0500)]
rs6000.opt (mlra): Replace with stub.

gcc/

* config/rs6000/rs6000.opt (mlra): Replace with stub.
* config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
* config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
(rs6000_debug_reg_global): Delete print of LRA status.
(rs6000_option_override_internal): Delete dead LRA related code.
(rs6000_lra_p): Delete function.
* doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.

gcc/testsuite/

* g++.dg/pr69667.C: Remove option -mlra.
* gcc.target/powerpc/dform-1.c: Likewise.
* gcc.target/powerpc/dform-2.c: Likewise.
* gcc.target/powerpc/dform-3.c: Likewise.
* gcc.target/powerpc/p8vector-int128-1.c: Likewise.
* gcc.target/powerpc/p9-vparity.c: Likewise.
* gcc.target/powerpc/pr63491.c: Likewise.
* gcc.target/powerpc/pr67808.c: Likewise.
* gcc.target/powerpc/pr68805.c: Likewise.
* gcc.target/powerpc/pr69461.c: Likewise.
* gcc.target/powerpc/pr71680.c: Likewise.
* gcc.target/powerpc/pr77289.c: Likewise.
* gcc.target/powerpc/pr78458.c: Likewise.
* gcc.target/powerpc/pr78543.c: Likewise.
* g++.dg/pr71294.C: Remove option -mno-lra.
* gcc.target/powerpc/pr71656-1.c: Likewise.
* gcc.target/powerpc/pr71656-2.c: Likewise.
* gcc.target/powerpc/pr71698.c: Likewise.

From-SVN: r250637

6 years agore PR c/45784 (gcc OpenMP - error: invalid controlling predicate)
Jakub Jelinek [Thu, 27 Jul 2017 19:13:42 +0000 (21:13 +0200)]
re PR c/45784 (gcc OpenMP - error: invalid controlling predicate)

PR c/45784
* c-omp.c (c_finish_omp_for): If the condition is wrapped in
rhs of COMPOUND_EXPR(s), skip them and readd their lhs into
new COMPOUND_EXPRs around the rhs of the comparison.

* testsuite/libgomp.c/pr45784.c: New test.
* testsuite/libgomp.c++/pr45784.C: New test.

From-SVN: r250635

6 years agoAdd RTEMS support
Sebastian Huber [Thu, 27 Jul 2017 16:41:27 +0000 (16:41 +0000)]
Add RTEMS support

gcc/ChangeLog

2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>

* config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
* config/riscv/rtems.h: New file.

From-SVN: r250632

6 years ago[PATCH][AArch64] Fix missing optimization for CMP+AND
Kyrylo Tkachov [Thu, 27 Jul 2017 16:29:31 +0000 (16:29 +0000)]
[PATCH][AArch64] Fix missing optimization for CMP+AND

During combine GCC tries to merge CMP (with zero) and AND into a TST. However,
in cases where an ANDS operand is not compatible, this was being missed. Adding
a define_split where this operand was moved to a register seems to help out.

Committed on behalf of Sudi Das

---
gcc/

2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Sudakshina Das  <sudi.das@arm.com>

* config/aarch64/aarch64.md
(define_split for and<mode>3nr_compare): Move
non aarch64_logical_operand to a register.
(define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
register immediate operand to a register.
* config/aarch64/predicates.md (aarch64_mov_imm_operand): New.

gcc/testsuite

2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
    Sudakshina Das  <sudi.das@arm.com>

* gcc.target/aarch64/tst_imm_split_1.c: New Test.

Co-Authored-By: Sudakshina Das <sudi.das@arm.com>
From-SVN: r250631

6 years agore PR c/81417 (-Wsign-compare should print types being compared)
Marek Polacek [Thu, 27 Jul 2017 15:02:17 +0000 (15:02 +0000)]
re PR c/81417 (-Wsign-compare should print types being compared)

PR c/81417
* c-warn.c (warn_for_sign_compare): Tweak the warning message.  Print
the types.

* c-c++-common/Wsign-compare-1.c: New test.
* g++.dg/warn/Wsign-compare-2.C: Update dg-warning.
* g++.dg/warn/Wsign-compare-4.C: Likewise.
* g++.dg/warn/Wsign-compare-6.C: Likewise.
* g++.dg/warn/compare1.C: Likewise.
* gcc.dg/compare1.c: Likewise.
* gcc.dg/compare2.c: Likewise.
* gcc.dg/compare4.c: Likewise.
* gcc.dg/compare5.c: Likewise.
* gcc.dg/pr35430.c: Likewise.
* gcc.dg/pr60087.c: Likewise.

From-SVN: r250630

6 years agore PR middle-end/81564 (ICE in group_case_labels_stmt())
Peter Bergner [Thu, 27 Jul 2017 14:05:14 +0000 (09:05 -0500)]
re PR middle-end/81564 (ICE in group_case_labels_stmt())

gcc/
PR middle-end/81564
* tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.

gcc/testsuite/
PR middle-end/81564
* gcc.dg/pr81564.c: New test.

From-SVN: r250628

6 years agore PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)
Richard Biener [Thu, 27 Jul 2017 13:46:07 +0000 (13:46 +0000)]
re PR tree-optimization/81573 (wrong code at -O3 on x86_64-linux-gnu)

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

PR tree-optimization/81573
PR tree-optimization/81494
* tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
multi defuse cycle case.

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

From-SVN: r250627