aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2018-12-18extend.texi (PowerPC Altivec/VSX Built-in Functions): Describe when a ↵Bill Schmidt2-1/+30
typedef name can be used as the type specifier for a vector type... 2018-12-18 Bill Schmidt <wschmidt@linux.ibm.com> * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): Describe when a typedef name can be used as the type specifier for a vector type, and when it cannot. From-SVN: r267232
2018-12-18[testsuite] Enable vect_usad_char effective target for non-SVE aarch64Kyrylo Tkachov2-1/+9
In GCC 9 the aarch64 port learned how to do V16QImode SAD operations on signed and unsigned chars. But I had missed enabling the effective target for that. This patch enables that target for non-SVE aarch64. Two new tests now PASS on aarch64: gcc.dg/vect/slp-reduc-sad.c gcc.dg/vect/vect-reduc-sad.c * lib/target-supports.exp (check_effective_target_vect_usad_char): Add non-SVE aarch64 to supported list. From-SVN: r267230
2018-12-18msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN.Jozef Lawrynowicz2-0/+9
2018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config/msp430/msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN. From-SVN: r267229
2018-12-18re PR target/88513 (FAIL: gcc.target/i386/pr59591-1.c)Jakub Jelinek22-35/+469
PR target/88513 PR target/88514 * optabs.def (vec_pack_sbool_trunc_optab, vec_unpacks_sbool_hi_optab, vec_unpacks_sbool_lo_optab): New optabs. * optabs.c (expand_widen_pattern_expr): Use vec_unpacks_sbool_*_optab and pass additional argument if both input and target have the same scalar mode of VECTOR_BOOLEAN_TYPE_P vectors. * expr.c (expand_expr_real_2) <case VEC_PACK_TRUNC_EXPR>: Handle VECTOR_BOOLEAN_TYPE_P pack where result has the same scalar mode as the operands using vec_pack_sbool_trunc_optab. * tree-vect-stmts.c (supportable_widening_operation): Use vec_unpacks_sbool_{lo,hi}_optab for VECTOR_BOOLEAN_TYPE_P conversions where both wider_vectype and vectype have the same scalar mode. (supportable_narrowing_operation): Similarly use vec_pack_sbool_trunc_optab if narrow_vectype and vectype have the same scalar mode. * config/i386/i386.c (ix86_get_builtin) <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Check for VECTOR_MODE_P rather than non-VOIDmode. * config/i386/sse.md (vec_pack_trunc_qi, vec_pack_trunc_<mode>): Remove useless ()s around "register_operand", formatting fixes. (vec_pack_sbool_trunc_qi, vec_unpacks_sbool_lo_qi, vec_unpacks_sbool_hi_qi): New expanders. * doc/md.texi (vec_pack_sbool_trunc_M, vec_unpacks_sbool_hi_M, vec_unpacks_sbool_lo_M): Document. * gcc.target/i386/avx512f-pr88513-1.c: New test. * gcc.target/i386/avx512f-pr88513-2.c: New test. * gcc.target/i386/avx512vl-pr88464-1.c: New test. * gcc.target/i386/avx512vl-pr88464-2.c: New test. * gcc.target/i386/avx512vl-pr88464-3.c: New test. * gcc.target/i386/avx512vl-pr88464-4.c: New test. * gcc.target/i386/avx512vl-pr88513-1.c: New test. * gcc.target/i386/avx512vl-pr88513-2.c: New test. * gcc.target/i386/avx512vl-pr88513-3.c: New test. * gcc.target/i386/avx512vl-pr88513-4.c: New test. * gcc.target/i386/avx512vl-pr88514-1.c: New test. * gcc.target/i386/avx512vl-pr88514-2.c: New test. * gcc.target/i386/avx512vl-pr88514-3.c: New test. From-SVN: r267228
2018-12-18combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits of src ↵Jozef Lawrynowicz2-2/+14
in nonzero_bits_mode if... 2018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> * combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits of src in nonzero_bits_mode if the mode of src is MODE_INT and HWI_COMPUTABLE. (reg_nonzero_bits_for_combine): Add clarification to comment. From-SVN: r267227
2018-12-18driver-i386.c (host_detect_local_cpu): Detect cascadelake.Wei Xiao7-7/+40
gcc/ChangeLog 2018-12-18 Wei Xiao <wei3.xiao@intel.com> * config/i386/driver-i386.c (host_detect_local_cpu): Detect cascadelake. * config/i386/i386.c (fold_builtin_cpu): Handle cascadelake. * doc/extend.texi: Add cascadelake. gcc/testsuite/ChangeLog 2018-12-18 Wei Xiao <wei3.xiao@intel.com> * g++.target/i386/mv16.C: Handle new march. * gcc.target/i386/builtin_target.c: Ditto. libgcc/ChangeLog 2018-12-18 Wei Xiao <wei3.xiao@intel.com> * config/i386/cpuinfo.c (get_intel_cpu): Handle cascadelake. * config/i386/cpuinfo.h: Add INTEL_COREI7_CASCADELAKE. From-SVN: r267226
2018-12-18Daily bump.GCC Administrator1-1/+1
From-SVN: r267225
2018-12-17re PR target/87870 (ppc64le generates poor code when loading constants into ↵Peter Bergner4-10/+63
TImode vars) gcc/ PR target/87870 * config/rs6000/vsx.md (nW): New mode iterator. (vsx_mov<mode>_64bit): Use it. Remove redundant GPR 0/-1 alternative. Update length attribute for (<??r>, <nW>) alternative. (vsx_mov<mode>_32bit): Likewise. gcc/testsuite/ PR target/87870 * gcc.target/powerpc/pr87870.c: New test. From-SVN: r267221
2018-12-17re PR c++/88410 (internal compiler error: output_operand: invalid expression ↵Jakub Jelinek4-0/+19
as operand) PR c++/88410 * cp-gimplify.c (cp_fold) <case ADDR_EXPR>: For offsetof-like folding, call maybe_constant_value on val to see if it is INTEGER_CST. * g++.dg/cpp0x/pr88410.C: New test. From-SVN: r267220
2018-12-17PR c++/52321 print note for static_cast to/from incomplete typeJonathan Wakely3-2/+48
PR c++/52321 * typeck.c (build_static_cast): Print a note when the destination type or the operand is a pointer/reference to incomplete class type. From-SVN: r267219
2018-12-17[nvptx] Move macro defs to top of nvptx.cTom de Vries2-5/+8
Move macro definition to the top of the file, allowing them to be used there-after. Build and reg-tested on x86_64 with nvptx accelerator. 2018-12-17 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH, PTX_DEFAULT_RUNTIME_DIM): Move to the top of the file. From-SVN: r267216
2018-12-17[nvptx] Add PTX_WARP_SIZETom de Vries2-1/+8
Add PTX_WARP_SIZE constant and use it in nvptx_simt_vf. The function nvptx_simt_vf is used for OpenMP, and using PTX_WARP_SIZE here decouples the OpenMP support from the PTX_VECTOR_LENGTH constant used in OpenACC support. Build and reg-tested on x86_64 with nvptx accelerator. 2018-12-17 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (PTX_WARP_SIZE): Define. (nvptx_simt_vf): Return PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. From-SVN: r267215
2018-12-17[nvptx] Fix whitespace in nvptx_single and nvptx_neuter_parsTom de Vries2-2/+7
Fix whitespace in nvptx_single and nvptx_neuter_pars. Build and reg-tested on x86_64 with nvptx accelerator. 2018-12-17 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_single): Fix whitespace. (nvptx_neuter_pars): Likewise. From-SVN: r267214
2018-12-17[nvptx] Unify C/Fortran routine handling in nvptx_goacc_validate_dimsTom de Vries2-0/+41
The Fortran front-end has a bug (PR72741) that means what when nvptx_goacc_validate_dims is called for a Fortran routine, the dims parameter is not the same as it would have been if the function would have been called for an equivalent C routine. Work around this bug by overriding the dims parameter for routines, allowing the function to handle routines in Fortran and C the same. Build and reg-tested on x86_64 with nvptx accelerator. 2018-12-17 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Work around Fortran bug PR72741 by overriding dims parameter for routines. From-SVN: r267213
2018-12-17[nvptx] Rewrite nvptx_goacc_validate_dims to use predicate varsTom de Vries2-3/+34
The function nvptx_goacc_validate_dims has arguments decl and fn_level which together describe different situations. Introduce a predicate var for each situation, and use them, allowing to understand what the function does in each situation without having to know the way the situations are encoded in the args. Build and reg-tested on x86_64 with nvptx accelerator. 2018-12-17 Tom de Vries <tdevries@suse.de> * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Rewrite using predicate vars. From-SVN: r267212
2018-12-17Add missing ChangeLog entry from last checkin:Steve Ellcey1-0/+11
2018-12-17 Steve Ellcey <sellcey@cavium.com> * gcc.target/aarch64/torture/aarch64-torture.exp: New file. * gcc.target/aarch64/torture/simd-abi-1.c: New test. * gcc.target/aarch64/torture/simd-abi-2.c: Ditto. * gcc.target/aarch64/torture/simd-abi-3.c: Ditto. * gcc.target/aarch64/torture/simd-abi-4.c: Ditto. * gcc.target/aarch64/torture/simd-abi-5.c: Ditto. * gcc.target/aarch64/torture/simd-abi-6.c: Ditto. * gcc.target/aarch64/torture/simd-abi-7.c: Ditto. From-SVN: r267210
2018-12-17aarch64-torture.exp: New file.Steve Ellcey8-0/+253
2018-12-17 Steve Ellcey <sellcey@cavium.com> * gcc.target/aarch64/torture/aarch64-torture.exp: New file. * gcc.target/aarch64/torture/simd-abi-1.c: New test. * gcc.target/aarch64/torture/simd-abi-2.c: Ditto. * gcc.target/aarch64/torture/simd-abi-3.c: Ditto. * gcc.target/aarch64/torture/simd-abi-4.c: Ditto. * gcc.target/aarch64/torture/simd-abi-5.c: Ditto. * gcc.target/aarch64/torture/simd-abi-6.c: Ditto. * gcc.target/aarch64/torture/simd-abi-7.c: Ditto. From-SVN: r267209
2018-12-17aarch64-protos.h (aarch64_use_simple_return_insn_p): New prototype.Steve Ellcey5-27/+250
2018-12-17 Steve Ellcey <sellcey@cavium.com> * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): New prototype. (aarch64_epilogue_uses): Ditto. * config/aarch64/aarch64.c (aarch64_attribute_table): New array. (aarch64_simd_decl_p): New function. (aarch64_reg_save_mode): New function. (aarch64_function_ok_for_sibcall): Check for simd calls. (aarch64_layout_frame): Check for simd function. (aarch64_gen_storewb_pair): Handle E_TFmode. (aarch64_push_regs): Use aarch64_reg_save_mode to get mode. (aarch64_gen_loadwb_pair): Handle E_TFmode. (aarch64_pop_regs): Use aarch64_reg_save_mode to get mode. (aarch64_gen_store_pair): Handle E_TFmode. (aarch64_gen_load_pair): Ditto. (aarch64_save_callee_saves): Handle different mode sizes. (aarch64_restore_callee_saves): Ditto. (aarch64_components_for_bb): Check for simd function. (aarch64_epilogue_uses): New function. (aarch64_process_components): Check for simd function. (aarch64_expand_prologue): Ditto. (aarch64_expand_epilogue): Ditto. (aarch64_expand_call): Ditto. (aarch64_use_simple_return_insn_p): New function. (TARGET_ATTRIBUTE_TABLE): New define. * config/aarch64/aarch64.h (EPILOGUE_USES): Redefine. (FP_SIMD_SAVED_REGNUM_P): New macro. * config/aarch64/aarch64.md (simple_return): New define_expand. (load_pair_dw_tftf): New instruction. (store_pair_dw_tftf): Ditto. (loadwb_pair<TX:mode>_<P:mode>): Ditto. (storewb_pair<TX:mode>_<P:mode>): Ditto. From-SVN: r267208
2018-12-17Merge dmd upstream 237ca3fbeIain Buclaw6-53/+59
Backports a fix where a bad cast to TypeFunction resulted in memory corruption. The logic in the function semantic has been fixed, and casts have been replaced with a function call to always check the front-end AST node value. Reviewed-on: https://github.com/dlang/dmd/pull/9054 From-SVN: r267207
2018-12-17builtin-snprintf-4.c: Adjust for ILP32.Martin Sebor2-0/+9
gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/builtin-snprintf-4.c: Adjust for ILP32. From-SVN: r267206
2018-12-17re PR target/88502 (Inline built-in asinh, acosh, atanh for -ffast-math)Uros Bizjak6-0/+243
PR target/88502 * internal-fn.def (ACOSH): New. (ASINH): Ditto. (ATANH): Ditto. * optabs.def (acosh_optab): New. (asinh_optab): Ditto. (atanh_optab): Ditto. * config/i386/i386-protos.h (ix86_emit_i387_asinh): New prototype. (ix86_emit_i387_acosh): Ditto. (ix86_emit_i387_atanh): Ditto. * config/i386/i386.c (ix86_emit_i387_asinh): New function. (ix86_emit_i387_acosh): Ditto. (ix86_emit_i387_atanh): Ditto. * config/i386/i386.md (asinhxf2): New expander. (asinh<mode>2): Ditto. (acoshxf2): Ditto. (acosh<mode>2): Ditto. (atanhxf2): Ditto. (atanh<mode>2): Ditto. From-SVN: r267204
2018-12-17config.gcc (powerpc-ibm-aix6.*): Delete extra_headers.David Edelsohn2-3/+6
* config.gcc (powerpc-ibm-aix6.*): Delete extra_headers. (powerpc-ibm-aix7.1.*): Same. (powerpc-ibm-aix[789].*): Same. From-SVN: r267203
2018-12-17DWARF: Don't expand hash table when no insertion is neededH.J. Lu2-5/+26
dwarf2out_finish performs: 1. save_macinfo_strings 2. hash table traverse of index_string 3. output_macinfo -> output_macinfo_op 4. output_indirect_strings -> hash table traverse of output_index_string find_slot_with_hash has if (insert == INSERT && m_size * 3 <= m_n_elements * 4) expand (); which may expand hash table even if no insertion is neeed and change hash table traverse order. When output_macinfo_op is called, all index strings have been added to hash table by save_macinfo_strings and we shouldn't expand index string hash table. Otherwise find_slot_with_hash will expand hash table when hash table has the right size and hash table traverse of output_index_string will have a different traverse order from index_string. PR debug/79342 * dwarf2out.c (find_AT_string_in_table): Add insert argument defaulting to INSERT and replace INSERT. (find_AT_string): Likewise. (output_macinfo_op): Pass NO_INSERT to find_AT_string. From-SVN: r267202
2018-12-17coverage.c (struct conts_entry): Add n_counts.Jan Hubicka4-11/+34
* coverage.c (struct conts_entry): Add n_counts. (remap_counts_file): Record number of ocunts. (get_coverage_counts): Verify that counts match. * coverage.h (get_coverage_counts): Update prototype. * profile.c (get_exec_counts. compute_value_histograms): Add n_counts parametrs. From-SVN: r267200
2018-12-17re PR rtl-optimization/88253 (Inlining of function incorrectly deletes ↵Senthil Kumar Selvaraj4-2/+30
volatile register access when using XOR in avr-gcc) Fix PR 88253 gcc/ChangeLog: PR rtl-optimization/88253 * combine.c (combine_simplify_rtx): Test for side-effects before substituting by zero. gcc/testsuite/ChangeLog: PR rtl-optimization/88253 * gcc.target/avr/pr88253.c: New test. From-SVN: r267198
2018-12-17Add a loop versioning passRichard Sandiford39-12/+3204
This patch adds a pass that versions loops with variable index strides for the case in which the stride is 1. E.g.: for (int i = 0; i < n; ++i) x[i * stride] = ...; becomes: if (stepx == 1) for (int i = 0; i < n; ++i) x[i] = ...; else for (int i = 0; i < n; ++i) x[i * stride] = ...; This is useful for both vector code and scalar code, and in some cases can enable further optimisations like loop interchange or pattern recognition. The pass gives a 7.6% improvement on Cortex-A72 for 554.roms_r at -O3 and a 2.4% improvement for 465.tonto. I haven't found any SPEC tests that regress. Sizewise, there's a 10% increase in .text for both 554.roms_r and 465.tonto. That's obviously a lot, but in tonto's case it's because the whole program is written using assumed-shape arrays and pointers, so a large number of functions really do benefit from versioning. roms likewise makes heavy use of assumed-shape arrays, and that improvement in performance IMO justifies the code growth. The next biggest .text increase is 4.5% for 548.exchange2_r. I did see a small (0.4%) speed improvement there, but although both 3-iteration runs produced stable results, that might still be noise. There was a slightly larger (non-noise) improvement for a 256-bit SVE model. 481.wrf and 521.wrf_r .text grew by 2.8% and 2.5% respectively, but without any noticeable improvement in performance. No other test grew by more than 2%. Although the main SPEC beneficiaries are all Fortran tests, the benchmarks we use for SVE also include some C and C++ tests that benefit. Using -frepack-arrays gives the same benefits in many Fortran cases. The problem is that using that option inappropriately can force a full array copy for arguments that the function only reads once, and so it isn't really something we can turn on by default. The new pass is supposed to give most of the benefits of -frepack-arrays without the risk of unnecessary repacking. The patch therefore enables the pass by default at -O3. 2018-12-17 Richard Sandiford <richard.sandiford@arm.com> Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> Kyrylo Tkachov <kyrylo.tkachov@arm.com> gcc/ * doc/invoke.texi (-fversion-loops-for-strides): Document (loop-versioning-group-size, loop-versioning-max-inner-insns) (loop-versioning-max-outer-insns): Document new --params. * Makefile.in (OBJS): Add gimple-loop-versioning.o. * common.opt (fversion-loops-for-strides): New option. * opts.c (default_options_table): Enable fversion-loops-for-strides at -O3. * params.def (PARAM_LOOP_VERSIONING_GROUP_SIZE) (PARAM_LOOP_VERSIONING_MAX_INNER_INSNS) (PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS): New parameters. * passes.def: Add pass_loop_versioning. * timevar.def (TV_LOOP_VERSIONING): New time variable. * tree-ssa-propagate.h (substitute_and_fold_engine::substitute_and_fold): Add an optional block parameter. * tree-ssa-propagate.c (substitute_and_fold_engine::substitute_and_fold): Likewise. When passed, only walk blocks dominated by that block. * tree-vrp.h (range_includes_p): Declare. (range_includes_zero_p): Turn into an inline wrapper around range_includes_p. * tree-vrp.c (range_includes_p): New function, generalizing... (range_includes_zero_p): ...this. * tree-pass.h (make_pass_loop_versioning): Declare. * gimple-loop-versioning.cc: New file. gcc/testsuite/ * gcc.dg/loop-versioning-1.c: New test. * gcc.dg/loop-versioning-10.c: Likewise. * gcc.dg/loop-versioning-11.c: Likewise. * gcc.dg/loop-versioning-2.c: Likewise. * gcc.dg/loop-versioning-3.c: Likewise. * gcc.dg/loop-versioning-4.c: Likewise. * gcc.dg/loop-versioning-5.c: Likewise. * gcc.dg/loop-versioning-6.c: Likewise. * gcc.dg/loop-versioning-7.c: Likewise. * gcc.dg/loop-versioning-8.c: Likewise. * gcc.dg/loop-versioning-9.c: Likewise. * gfortran.dg/loop_versioning_1.f90: Likewise. * gfortran.dg/loop_versioning_2.f90: Likewise. * gfortran.dg/loop_versioning_3.f90: Likewise. * gfortran.dg/loop_versioning_4.f90: Likewise. * gfortran.dg/loop_versioning_5.f90: Likewise. * gfortran.dg/loop_versioning_6.f90: Likewise. * gfortran.dg/loop_versioning_7.f90: Likewise. * gfortran.dg/loop_versioning_8.f90: Likewise. From-SVN: r267197
2018-12-17re PR fortran/85314 (gcc/fortran/resolve.c:9222: unreachable code ?)Steven G. Kargl2-4/+5
2018-12-16 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/85314 * resolve.c (resolve_transfer): Remove dead code. From-SVN: r267196
2018-12-17Daily bump.GCC Administrator1-1/+1
From-SVN: r267195
2018-12-16ipa-fnsummary.c (remap_edge_change_prob): Do not ICE when changes are not ↵Jan Hubicka2-0/+8
streamed in. * ipa-fnsummary.c (remap_edge_change_prob): Do not ICE when changes are not streamed in. From-SVN: r267191
2018-12-16re PR fortran/88116 (ICE in gfc_convert_constant(): Unexpected type)Steven G. Kargl8-2/+47
2018-12-16 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88116 PR fortran/88467 * array.c (gfc_match_array_constructor): Check return value of gfc_convert_type(). Skip constructor elements with BT_UNKNOWN, which need to go through resolution. * intrinsic.c (gfc_convert_type_warn): Return early if the types martch (i.e., no conversion is required). * simplify.c (gfc_convert_constant): Remove a gfc_internal_error, and return gfc_bad_expr. 2018-12-16 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88116 * gfortran.dg/pr88116_1.f90: New test. * gfortran.dg/pr88116_2.f90: Ditto. PR fortran/88467 * gfortran.dg/pr88467.f90: New test. From-SVN: r267189
2018-12-16decl.c (variable_decl): Typo fixes.Steven G. Kargl4-3/+11
2018-12-16 Steven G. Kargl <kargl@gcc.gnu.org> * decl.c (variable_decl): Typo fixes. 2018-12-16 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.dg/pr88138.f90: Remove extraneous 's' in comment. From-SVN: r267188
2018-12-16PF fortran/88364Thomas Koenig4-2/+35
2018-12-16 Thomas Koenig <tkoenig@gcc.gnu.org> PF fortran/88364 * trans-expr.c (gfc_conv_expr_reference): Do not add clobber if the expression contains a reference. 2018-12-16 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/88363 * intent_out_13.f90: New test. From-SVN: r267187
2018-12-16x86: Revert reversion 267133H.J. Lu4-17/+13
Revert commit: commit 76c21b271247ccbd681bdb4530426d2fe35dbfa5 Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri Dec 14 12:38:04 2018 +0000 x86: Don't use get_frame_size when finalizing stack frame gcc/ PR target/88483 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Revert reversion 267133. gcc/testsuite/ PR target/88483 * gcc.target/i386/stackalign/pr88483.c: Removed. Revert reversion 267133. From-SVN: r267186
2018-12-16ipa-fnsummary.c (analyze_function_body): Do not loeak conds and size_time_table.Jan Hubicka2-24/+72
* ipa-fnsummary.c (analyze_function_body): Do not loeak conds and size_time_table. (ipa_fn_summary_generate): Add prevails parameter; do not allocate data when symbol is not prevailing. (inline_read_section): Likewise. From-SVN: r267185
2018-12-16re PR fortran/87994 (ICE in match_data_constant, at fortran/decl.c:399)Steven G. Kargl6-2/+45
2018-12-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/87944 * decl.c (match_data_constant): Allow inquiry parameter as data constant in data statement. 2018-12-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/87944 * gfortran.dg/pr87994_1.f90: New test. * gfortran.dg/pr87994_2.f90: Ditto. * gfortran.dg/pr87994_3.f90: Ditto. From-SVN: r267184
2018-12-16Daily bump.GCC Administrator1-1/+1
From-SVN: r267183
2018-12-16re PR c++/88482 (ICE when wrongly declaring __cxa_allocate_exception)Jakub Jelinek11-32/+347
PR c++/88482 * except.c (verify_library_fn): New function. (declare_library_fn): Use it. Initialize TM even if the non-TM library function has been user declared. (do_end_catch): Don't set TREE_NOTHROW on error_mark_node. (expand_start_catch_block): Don't call initialize_handler_parm for error_mark_node. (build_throw): Use verify_library_fn. Initialize TM even if the non-TM library function has been user declared. Don't crash if any library fn is error_mark_node. * g++.dg/eh/builtin5.C: New test. * g++.dg/eh/builtin6.C: New test. * g++.dg/eh/builtin7.C: New test. * g++.dg/eh/builtin8.C: New test. * g++.dg/eh/builtin9.C: New test. * g++.dg/eh/builtin10.C: New test. * g++.dg/eh/builtin11.C: New test. * g++.dg/parse/crash55.C: Adjust expected diagnostics. * eh_cpp.cc (__cxa_throw): Change DEST argument type from void * to void (*) (void *). (_ITM_cxa_throw): Likewise. * libitm.h (_ITM_cxa_throw): Likewise. * libitm.texi (_ITM_cxa_throw): Likewise. From-SVN: r267179
2018-12-15re PR fortran/88138 (ICE in gfc_arith_concat, at fortran/arith.c:1007)Steven G. Kargl4-0/+36
2019-12-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88138 * decl.c (variable_decl): Check that a derived isn't being assigned an incompatible entity in an initialization. 2019-12-15 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/88138 * gfortran.dg/pr88138.f90: new test. From-SVN: r267177
2018-12-15Small lambda instantiation tweak.Jason Merrill2-2/+8
While looking at something else I noticed that we were passing 0 to the "nonclass" parameter here; we might as well pass 1, since capture proxies are always at block scope. * pt.c (tsubst_expr) [DECL_EXPR]: Ignore class-scope bindings when looking up a capture proxy. From-SVN: r267176
2018-12-15cgraph.h (cgraph_node): Add predicate prevailing_p.Jan Hubicka4-87/+166
* cgraph.h (cgraph_node): Add predicate prevailing_p. (cgraph_edge): Add predicate possible_call_in_translation_unit_p. * ipa-prop.c (ipa_write_jump_function): Optimize streaming of ADDR_EXPR. (ipa_read_jump_function): Add prevails parameter; optimize streaming. (ipa_read_edge_info): Break out from ... (ipa_read_node_info): ... here; optimize streaming. * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): New predicate. From-SVN: r267175
2018-12-15ipa-utils.c (ipa_merge_profiles): Do no merging when source function has ↵Jan Hubicka2-0/+9
zero count. * ipa-utils.c (ipa_merge_profiles): Do no merging when source function has zero count. From-SVN: r267174
2018-12-15re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter ↵Jakub Jelinek2-0/+106
failing with "not suitable for scatter store") PR tree-optimization/88464 PR target/88498 * tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING and mask with integral masktype, don't try to permute mask vectors, instead emit VEC_UNPACK_{LO,HI}_EXPR. Fix up NOP_EXPR operand. (vectorizable_store): Handle masked scatters with decl and integral mask type. (permute_vec_elements): Allow scalar_dest to be NULL. * config/i386/i386.c (ix86_get_builtin) <case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks. <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have to be the same. * gcc.target/i386/avx512f-pr88462-1.c: Rename to ... * gcc.target/i386/avx512f-pr88464-1.c: ... this. Fix up PR number. Expect 4 vectorized loops instead of 3. (f4): New function. * gcc.target/i386/avx512f-pr88462-2.c: Rename to ... * gcc.target/i386/avx512f-pr88464-2.c: ... this. Fix up PR number and #include. (avx512f_test): Prepare arguments for f4 and check the results. * gcc.target/i386/avx512f-pr88464-3.c: New test. * gcc.target/i386/avx512f-pr88464-4.c: New test. From-SVN: r267170
2018-12-15re PR tree-optimization/88464 (AVX-512 vectorization of masked scatter ↵Jakub Jelinek6-38/+152
failing with "not suitable for scatter store") PR tree-optimization/88464 PR target/88498 * tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING and mask with integral masktype, don't try to permute mask vectors, instead emit VEC_UNPACK_{LO,HI}_EXPR. Fix up NOP_EXPR operand. (vectorizable_store): Handle masked scatters with decl and integral mask type. (permute_vec_elements): Allow scalar_dest to be NULL. * config/i386/i386.c (ix86_get_builtin) <case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks. <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have to be the same. * gcc.target/i386/avx512f-pr88462-1.c: Rename to ... * gcc.target/i386/avx512f-pr88464-1.c: ... this. Fix up PR number. Expect 4 vectorized loops instead of 3. (f4): New function. * gcc.target/i386/avx512f-pr88462-2.c: Rename to ... * gcc.target/i386/avx512f-pr88464-2.c: ... this. Fix up PR number and #include. (avx512f_test): Prepare arguments for f4 and check the results. * gcc.target/i386/avx512f-pr88464-3.c: New test. * gcc.target/i386/avx512f-pr88464-4.c: New test. From-SVN: r267169
2018-12-15ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET parameters.Jan Hubicka2-3/+17
* ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET parameters. (cgraph_build_static_cdtor): Update. (build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor callsed. From-SVN: r267168
2018-12-15re PR c++/84644 (internal compiler error: in ↵Paolo Carlini7-6/+32
warn_misplaced_attr_for_class_type, at cp/decl.c:4718) /cp 2018-12-15 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84644 * decl.c (check_tag_decl): A decltype with no declarator doesn't declare anything. /testsuite 2018-12-15 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84644 * g++.dg/cpp0x/decltype68.C: New. * g++.dg/cpp0x/decltype-33838.C: Adjust. * g++.dg/template/spec32.C: Likewise. * g++.dg/template/ttp22.C: Likewise. From-SVN: r267165
2018-12-15[RS6000] Use gen_hard_reg_clobber in rs6000.cAlan Modra2-24/+19
I noticed when looking at PR88311 that rs6000_call_sysv should be using gen_hard_reg_clobber (as the sysv call insns did prior to introducing rs6000_call_sysv). This patch fixes that minor regression, and other like places in rs6000.c. * config/rs6000/rs6000.c (generate_set_vrsave, rs6000_emit_savres_rtx), (rs6000_emit_prologue, rs6000_call_aix, rs6000_call_sysv), (rs6000_call_darwin_1): Use gen_hard_reg_clobber. From-SVN: r267164
2018-12-15Daily bump.GCC Administrator1-1/+1
From-SVN: r267163
2018-12-15re PR target/88489 (FAIL: gcc.target/i386/avx512f-vfixupimmss-2.c execution ↵Jakub Jelinek5-1/+51
test) PR target/88489 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it instead of UNSPEC_FIXUPIMM. * gcc.target/i386/avx512vl-vfixupimmsd-2.c: New test. * gcc.target/i386/avx512vl-vfixupimmss-2.c: New test. From-SVN: r267160
2018-12-15re PR rtl-optimization/88478 (valgrind error in cselib_record_sets)Jakub Jelinek4-1/+29
PR rtl-optimization/88478 * cselib.c (cselib_record_sets): Move sets[i].src_elt tests after REG_P (dest) test. * g++.dg/opt/pr88478.C: New test. From-SVN: r267159
2018-12-14PR tree-optimization/88372 - alloc_size attribute is ignored on function ↵Martin Sebor7-40/+308
pointers gcc/ChangeLog: PR tree-optimization/88372 * calls.c (maybe_warn_alloc_args_overflow): Handle function pointers. * tree-object-size.c (alloc_object_size): Same. Simplify. * doc/extend.texi (Object Size Checking): Update. (Other Builtins): Add __builtin_object_size. (Common Type Attributes): Add alloc_size. (Common Variable Attributes): Ditto. gcc/testsuite/ChangeLog: PR tree-optimization/88372 * gcc.dg/Walloc-size-larger-than-18.c: New test. * gcc.dg/builtin-object-size-19.c: Same. From-SVN: r267158