Paul A. Clarke [Mon, 29 Oct 2018 19:44:57 +0000 (19:44 +0000)]
[rs6000] Consistently use '__vector' instead of 'vector'
Revision r265535 committed changes that used 'vector' instead of the
preferred '__vector'. There is a reason that '__vector' is preferred,
because it ensures no conflicts with C++ namespace. Indeed,
gcc/config/rs6000/xmmintrin.h undefines it, leading to errors:
gcc/include/xmmintrin.h:999:20: error: 'vector' undeclared (first use in this function); did you mean 'vec_or'?
gcc/include/xmmintrin.h:999:20: note: each undeclared identifier is reported only once for each function it appears in
gcc/include/xmmintrin.h:999:26: error: expected ')' before 'long'
gcc/include/xmmintrin.h:999:37: error: expected ')' before 'result'
Also fixed a few whitespace issues.
[gcc]
2018-10-29 Paul A. Clarke <pc@us.ibm.com>
* gcc/config/rs6000/mmintrin.h (_mm_packs_pi16, _mm_packs_pi32,
_mm_packs_pu16, _mm_unpackhi_pi8, _mm_unpacklo_pi8, _mm_add_pi8,
_mm_add_pi16, _mm_add_pi32, _mm_sub_pi8, _mm_sub_pi16, _mm_sub_pi32,
_mm_cmpgt_pi8, _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32,
_mm_cmpgt_pi32, _mm_adds_pi8, _mm_adds_pi16, _mm_adds_pu8,
_mm_adds_pu16, _mm_subs_pi8, _mm_subs_pi16, _mm_subs_pu8,
_mm_subs_pu16, _mm_madd_pi16, _mm_mulhi_pi16, _mm_mullo_pi16,
_mm_sll_pi16, _mm_sra_pi16, _mm_srl_pi16, _mm_set1_pi16, _mm_set1_pi8):
Change 'vector' to '__vector'.
* gcc/config/rs6000/xmmintrin.h (_mm_cvtps_pi32, _mm_cvttps_pi32,
_mm_cvtps_pi16, _mm_cvtps_pi8, _mm_max_pi16, _mm_max_pu8, _mm_min_pi16,
_mm_min_pu8, _mm_mulhi_pu16, _mm_shuffle_pi16, _mm_avg_pu8,
_mm_avg_pu16): Likewise. And, whitespace corrections.
From-SVN: r265601
Marek Polacek [Mon, 29 Oct 2018 19:40:18 +0000 (19:40 +0000)]
PR c++/87594 - constexpr rejects-valid with range-based for.
* constexpr.c (potential_constant_expression_1): If the condition
can't be evaluated, return true.
* g++.dg/cpp1y/constexpr-loop8.C: New test.
From-SVN: r265600
Ian Lance Taylor [Mon, 29 Oct 2018 19:25:57 +0000 (19:25 +0000)]
compiler: pass a single flags argument to Backend::function
Reviewed-on: https://go-review.googlesource.com/c/145319
* go-gcc.cc (Gcc_backend::function): Change to use a single flags
parameter.
From-SVN: r265599
Ian Lance Taylor [Mon, 29 Oct 2018 18:44:39 +0000 (18:44 +0000)]
compiler: add location_file
Add support for getting the file name from a Location value. This
will be used by later work.
Reviewed-on: https://go-review.googlesource.com/c/145318
* go-linemap.cc (Gcc_linemap::location_file): New method.
From-SVN: r265598
Richard Biener [Mon, 29 Oct 2018 15:43:08 +0000 (15:43 +0000)]
re PR tree-optimization/87785 (ICE in dr_misalignment, at tree-vectorizer.h:1245 on 454.calculix with -Ofast and -flto)
2018-10-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/87785
* tree-vect-slp.c (vect_gather_slp_loads): Only gather
internal defs.
* gcc.dg/torture/
20181029-1.c: New testcase.
* gcc.dg/torture/
20181029-2.c: Likewise.
From-SVN: r265596
Olivier Hainque [Mon, 29 Oct 2018 15:07:47 +0000 (15:07 +0000)]
Extract VXWORKS_NET_LIBS_RTP from VXWORKS_LIBS_RTP
2018-10-29 Olivier Hainque <hainque@adacore.com>
* VXWORKS_NET_LIBS_RTP: New macro, network part of VXWORKS_LIBS_RTP.
From-SVN: r265595
Olivier Hainque [Mon, 29 Oct 2018 15:07:33 +0000 (15:07 +0000)]
Introduce notion of VXWORKS_PERSONALITY
2018-10-29 Olivier Hainque <hainque@adacore.com>
* config/vxworks.h (VXWORKS_PERSONALITY): New VxWorks
ports configuration macro, defaults to "gnu".
(VXWORKS_OS_CPP_BUILTINS): Use it. Feed TOOL and
TOOL_FAMILY instead of _VX_TOOL/_VXTOOL_FAMILY.
From-SVN: r265594
Richard Biener [Mon, 29 Oct 2018 14:57:52 +0000 (14:57 +0000)]
re PR tree-optimization/87790 (ICE in vect_get_vec_def_for_operand_1, at tree-vect-stmts.c:1475)
2018-10-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/87790
* tree-vect-slp.c (vect_mark_slp_stmts): Simplify.
(vect_make_slp_decision): Adjust.
(vect_slp_analyze_bb_1): Likewise.
(vect_detect_hybrid_slp_stmts): Properly union SLP type over
edges.
* gcc.dg/pr87790.c: New testcase.
From-SVN: r265593
Joseph Myers [Mon, 29 Oct 2018 14:31:20 +0000 (14:31 +0000)]
[OpenACC] Support C++ "this" in OpenACC directives
2018-10-29 Joseph Myers <joseph@codesourcery.com>
Julian Brown <julian@codesourcery.com>
* semantics.c (handle_omp_array_sections_1): Allow array sections with
"this" pointer for OpenACC.
Co-Authored-By: Julian Brown <julian@codesourcery.com>
From-SVN: r265591
Richard Biener [Mon, 29 Oct 2018 13:31:28 +0000 (13:31 +0000)]
re PR tree-optimization/87785 (ICE in dr_misalignment, at tree-vectorizer.h:1245 on 454.calculix with -Ofast and -flto)
2018-10-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/87785
* tree-vect-slp.c (vect_build_slp_tree_2): Remove loads argument
and processing.
(vect_build_slp_tree): Likewise.
(vect_gather_slp_loads): New function.
(vect_analyze_slp_instance): Gather loads separately from the
SLP tree build.
From-SVN: r265588
Martin Liska [Mon, 29 Oct 2018 12:00:54 +0000 (13:00 +0100)]
GCOV: introduce --json-format.
2018-10-29 Martin Liska <mliska@suse.cz>
* Makefile.in: Make dependency to json.o.
* doc/gcov.texi: Document new JSON format, remove
old intermediate format documentation.
* gcov.c (struct function_info): Come up with m_name and
m_demangled_name.
(function_info::function_info): Initialize it.
(function_info::~function_info): Release it.
(main): Rename flag_intermediate_format to flag_json_format.
(print_usage): Describe --json-format.
(process_args): Set flag_json_format.
(output_intermediate_line): Remove.
(output_intermediate_json_line): Likewise.
(get_gcov_intermediate_filename): Return new extension
".gcov.json.gz".
(output_intermediate_file): Implement JSON emission.
(output_json_intermediate_file): Implement JSON emission.
(generate_results): Use ::get_name for function name.
Handle JSON output file.
(read_graph_file): Use ::get_name instead of cplus_demangle.
(read_count_file): Likewise.
(solve_flow_graph): Likewise.
(add_line_counts): Likewise.
(accumulate_line_counts): Use new flag_json_format.
(output_function_details): Use ::get_name instead of cplus_demangle.
(output_lines): Likewise.
* json.cc (test_writing_literals): Add new tests.
* json.h (class literal): Add new boolean constructor.
2018-10-29 Martin Liska <mliska@suse.cz>
* g++.dg/gcov/gcov-8.C: Do not check intermediate format.
* lib/gcov.exp: Remove legacy verify-intermediate.
From-SVN: r265587
Tamar Christina [Mon, 29 Oct 2018 09:45:50 +0000 (09:45 +0000)]
Fix mingw-w64 Ada native bootstrap (PR81878).
Due to the changes in PR81878 builds of GCC8 and trunk are impossible
with Ada enabled[1][2].
The reason the patch breaks the bootstrap is due to how gnatlink receives it's
arguments.
gnatlink is usually invoked as
$(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
--GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)
so it passes $(CC) and $(GCC_LINK) as quoted arguments to the program.
Because of this quotation the msys2 shell does not translate any paths in
$(CC) and $(GCC_LINK) from their Unix version to their Windows version.
Furthermore because there are multiple paths in the values separated by space
and because the paths often contain a prefix like -L (e.g. -L/f/foo) we can't
use `fix_srcfile_path` to fix this.
An alternative solution would have been to create a stub program that echos the
commandline options it receives back, and calling this program with $(CC) and $(GCC_LINK)
unquoted to get them translated. However this was a bit more invasive.
So instead for native compilations we add -B../../ such that it picks up the lto plugin
from the previous built compiler. Since it's native there shouldn't be a mismatch here.
[1] https://github.com/Alexpux/MINGW-packages/pull/3877#issuecomment-
408651809
[2] https://gcc.gnu.org/ml/gcc/2018-07/msg00410.html
gnattools/ChangeLog:
PR ada/81878
* Makefile.in (TOOLS_FLAGS_TO_PASS_NATIVE): Add -B ../../.
From-SVN: r265583
Segher Boessenkool [Mon, 29 Oct 2018 07:36:45 +0000 (08:36 +0100)]
combine: Fix various shortcomings in make_more_copies (PR87701, PR87780)
This rewrites most of make_more_copies, in the process fixing a few PRs
and some other bugs, and working around a few target problems. Certain
notes turn out to actually change the meaning of the RTL, so we cannot
drop them; and i386 takes subregs of hard regs.
PR rtl-optimization/87701
PR rtl-optimization/87780
* combine.c (make_more_copies): Rewrite.
From-SVN: r265582
GCC Administrator [Mon, 29 Oct 2018 00:16:52 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r265581
Kugan Vivekanandarajah [Mon, 29 Oct 2018 00:03:20 +0000 (00:03 +0000)]
gimplefe-30.c: New test.
gcc/testsuite/ChangeLog:
2018-10-28 Kugan Vivekanandarajah <kuganv@linaro.org>
* gcc.dg/gimplefe-30.c: New test.
* gcc.dg/gimplefe-31.c: New test.
* gcc.dg/gimplefe-32.c: New test.
* gcc.dg/gimplefe-33.c: New test.
gcc/ChangeLog:
2018-10-28 Kugan Vivekanandarajah <kuganv@linaro.org>
* doc/generic.texi (ABSU_EXPR): Document.
* match.pd (absu(x)*absu(x) -> x*x): Handle.
(absu(absu(X)) -> absu(X)): Likewise.
(absu(-X) -> absu(X)): Likewise.
(absu(X) where X is nonnegative -> X): Likewise.
From-SVN: r265578
François Dumont [Sun, 28 Oct 2018 20:57:04 +0000 (20:57 +0000)]
48101_neg.cc: Remove dg-prune-output 'std' from regex pattern for versioned namespace...
2018-10-28 François Dumont <fdumont@gcc.gnu.org>
* testsuite/23_containers/deque/48101_neg.cc: Remove dg-prune-output
'std' from regex pattern for versioned namespace compatibility.
* testsuite/23_containers/vector/48101_neg.cc: Likewise.
* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.
From-SVN: r265575
Iain Buclaw [Sun, 28 Oct 2018 19:51:47 +0000 (19:51 +0000)]
Add D front-end, libphobos library, and D2 testsuite.
ChangeLog:
* Makefile.def (target_modules): Add libphobos.
(flags_to_pass): Add GDC, GDCFLAGS, GDC_FOR_TARGET and
GDCFLAGS_FOR_TARGET.
(dependencies): Make libphobos depend on libatomic, libbacktrace
configure, and zlib configure.
(language): Add language d.
* Makefile.in: Rebuild.
* Makefile.tpl (BUILD_EXPORTS): Add GDC and GDCFLAGS.
(HOST_EXPORTS): Add GDC.
(POSTSTAGE1_HOST_EXPORTS): Add GDC and GDC_FOR_BUILD.
(BASE_TARGET_EXPORTS): Add GDC.
(GDC_FOR_BUILD, GDC, GDCFLAGS): New variables.
(GDC_FOR_TARGET, GDC_FLAGS_FOR_TARGET): New variables.
(EXTRA_HOST_FLAGS): Add GDC.
(STAGE1_FLAGS_TO_PASS): Add GDC.
(EXTRA_TARGET_FLAGS): Add GDC and GDCFLAGS.
* config-ml.in: Treat GDC and GDCFLAGS like other compiler/flag
environment variables.
* configure: Rebuild.
* configure.ac: Add target-libphobos to target_libraries. Set and
substitute GDC_FOR_BUILD and GDC_FOR_TARGET.
config/ChangeLog:
* multi.m4: Set GDC.
gcc/ChangeLog:
* Makefile.in (tm_d_file_list, tm_d_include_list): New variables.
(TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables.
(tm_d.h, cs-tm_d.h, default-d.o): New rules.
(d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules.
(s-tm-texi): Also check timestamp on d-target.def.
(generated_files): Add TM_D_H and d-target-hooks-def.h.
(build/genhooks.o): Also depend on D_TARGET_DEF.
* config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New
variables.
* config/aarch64/aarch64-d.c: New file.
* config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
Define.
* config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New
prototype.
* config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define.
* config/aarch64/t-aarch64 (aarch64-d.o): New rule.
* config/arm/arm-d.c: New file.
* config/arm/arm-protos.h (arm_d_target_versions): New prototype.
* config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define.
* config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
* config/arm/t-arm (arm-d.o): New rule.
* config/default-d.c: New file.
* config/glibc-d.c: New file.
* config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/i386/i386-d.c: New file.
* config/i386/i386-protos.h (ix86_d_target_versions): New prototype.
* config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define.
* config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
(GNU_USER_TARGET_D_CRITSEC_SIZE): Define.
* config/i386/t-i386 (i386-d.o): New rule.
* config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define.
* config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
* config/mips/mips-d.c: New file.
* config/mips/mips-protos.h (mips_d_target_versions): New prototype.
* config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define.
* config/mips/t-mips (mips-d.o): New rule.
* config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/powerpcspe/powerpcspe-d.c: New file.
* config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions):
New prototype.
* config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue):
Support GNU D by using 0 as the language type.
* config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define.
* config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule.
* config/riscv/riscv-d.c: New file.
* config/riscv/riscv-protos.h (riscv_d_target_versions): New
prototype.
* config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define.
* config/riscv/t-riscv (riscv-d.o): New rule.
* config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
* config/rs6000/rs6000-d.c: New file.
* config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New
prototype.
* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
Support GNU D by using 0 as the language type.
* config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define.
* config/rs6000/t-rs6000 (rs6000-d.o): New rule.
* config/s390/s390-d.c: New file.
* config/s390/s390-protos.h (s390_d_target_versions): New prototype.
* config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define.
* config/s390/t-s390 (s390-d.o): New rule.
* config/sparc/sparc-d.c: New file.
* config/sparc/sparc-protos.h (sparc_d_target_versions): New
prototype.
* config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define.
* config/sparc/t-sparc (sparc-d.o): New rule.
* config/t-glibc (glibc-d.o): New rule.
* configure: Regenerated.
* configure.ac (tm_d_file): New variable.
(tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes.
* doc/contrib.texi (Contributors): Add self for the D frontend.
* doc/frontends.texi (G++ and GCC): Mention D as a supported language.
* doc/install.texi (Configuration): Mention libphobos as an option for
--enable-shared. Mention d as an option for --enable-languages.
(Testing): Mention check-d as a target.
* doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file
name suffixes. Mention d as a -x option.
* doc/sourcebuild.texi (Top Level): Mention libphobos.
* doc/standards.texi (Standards): Add section on D language.
* doc/tm.texi: Regenerated.
* doc/tm.texi.in: Add @node for D language and ABI, and @hook for
TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE.
* dwarf2out.c (is_dlang): New function.
(gen_compile_unit_die): Use DW_LANG_D for D.
(declare_in_namespace): Return module die for D, instead of adding
extra declarations into the namespace.
(gen_namespace_die): Generate DW_TAG_module for D.
(gen_decl_die): Handle CONST_DECLSs for D.
(dwarf2out_decl): Likewise.
(prune_unused_types_walk_local_classes): Handle DW_tag_interface_type.
(prune_unused_types_walk): Handle DW_tag_interface_type same as other
kinds of aggregates.
* gcc.c (default_compilers): Add entries for .d, .dd and .di.
* genhooks.c: Include d/d-target.def.
gcc/po/ChangeLog:
* EXCLUDES: Add sources from d/dmd.
gcc/testsuite/ChangeLog:
* gcc.misc-tests/help.exp: Add D to option descriptions check.
* gdc.dg/asan/asan.exp: New file.
* gdc.dg/asan/gdc272.d: New test.
* gdc.dg/compilable.d: New test.
* gdc.dg/dg.exp: New file.
* gdc.dg/gdc254.d: New test.
* gdc.dg/gdc260.d: New test.
* gdc.dg/gdc270a.d: New test.
* gdc.dg/gdc270b.d: New test.
* gdc.dg/gdc282.d: New test.
* gdc.dg/gdc283.d: New test.
* gdc.dg/imports/gdc170.d: New test.
* gdc.dg/imports/gdc231.d: New test.
* gdc.dg/imports/gdc239.d: New test.
* gdc.dg/imports/gdc241a.d: New test.
* gdc.dg/imports/gdc241b.d: New test.
* gdc.dg/imports/gdc251a.d: New test.
* gdc.dg/imports/gdc251b.d: New test.
* gdc.dg/imports/gdc253.d: New test.
* gdc.dg/imports/gdc254a.d: New test.
* gdc.dg/imports/gdc256.d: New test.
* gdc.dg/imports/gdc27.d: New test.
* gdc.dg/imports/gdcpkg256/package.d: New test.
* gdc.dg/imports/runnable.d: New test.
* gdc.dg/link.d: New test.
* gdc.dg/lto/lto.exp: New file.
* gdc.dg/lto/ltotests_0.d: New test.
* gdc.dg/lto/ltotests_1.d: New test.
* gdc.dg/runnable.d: New test.
* gdc.dg/simd.d: New test.
* gdc.test/gdc-test.exp: New file.
* lib/gdc-dg.exp: New file.
* lib/gdc.exp: New file.
libphobos/ChangeLog:
* Makefile.am: New file.
* Makefile.in: New file.
* acinclude.m4: New file.
* aclocal.m4: New file.
* config.h.in: New file.
* configure: New file.
* configure.ac: New file.
* d_rules.am: New file.
* libdruntime/Makefile.am: New file.
* libdruntime/Makefile.in: New file.
* libdruntime/__entrypoint.di: New file.
* libdruntime/__main.di: New file.
* libdruntime/gcc/attribute.d: New file.
* libdruntime/gcc/backtrace.d: New file.
* libdruntime/gcc/builtins.d: New file.
* libdruntime/gcc/config.d.in: New file.
* libdruntime/gcc/deh.d: New file.
* libdruntime/gcc/libbacktrace.d.in: New file.
* libdruntime/gcc/unwind/arm.d: New file.
* libdruntime/gcc/unwind/arm_common.d: New file.
* libdruntime/gcc/unwind/c6x.d: New file.
* libdruntime/gcc/unwind/generic.d: New file.
* libdruntime/gcc/unwind/package.d: New file.
* libdruntime/gcc/unwind/pe.d: New file.
* m4/autoconf.m4: New file.
* m4/druntime.m4: New file.
* m4/druntime/cpu.m4: New file.
* m4/druntime/libraries.m4: New file.
* m4/druntime/os.m4: New file.
* m4/gcc_support.m4: New file.
* m4/gdc.m4: New file.
* m4/libtool.m4: New file.
* src/Makefile.am: New file.
* src/Makefile.in: New file.
* src/libgphobos.spec.in: New file.
* testsuite/Makefile.am: New file.
* testsuite/Makefile.in: New file.
* testsuite/config/default.exp: New file.
* testsuite/lib/libphobos-dg.exp: New file.
* testsuite/lib/libphobos.exp: New file.
* testsuite/testsuite_flags.in: New file.
From-SVN: r265573
Thomas Koenig [Sun, 28 Oct 2018 11:05:05 +0000 (11:05 +0000)]
re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
2017-10-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/54613
* gfortran.h (gfc_isym_id): Add GFC_ISYM_FINDLOC.
(gfc_check_f): Add f6fl field.
(gfc_simplify_f): Add f6 field.
(gfc_resolve_f): Likewise.
(gfc_type_letter): Add optional logical_equas_int flag.
* check.c (intrinsic_type_check): New function.
(gfc_check_findloc): New function.
* intrinsics.c (gfc_type_letter): If logical_equals_int is
set, act accordingly.
(add_sym_5ml): Reformat comment.
(add_sym_6fl): New function.
(add_functions): Add findloc.
(check_arglist): Add sixth argument, handle it.
(resolve_intrinsic): Likewise.
(check_specific): Handle findloc.
* intrinsic.h (gfc_check_findloc): Add prototype.
(gfc_simplify_findloc): Likewise.
(gfc_resolve_findloc): Likewise.
(MAX_INTRINSIC_ARGS): Adjust.
* iresolve.c (gfc_resolve_findloc): New function.
* simplify.c (gfc_simplify_minmaxloc): Make static.
(simplify_findloc_to_scalar): New function.
(simplify_findloc_nodim): New function.
(simplify_findloc_to_array): New function.
(gfc_simplify_findloc): New function.
(gfc_conv_intrinsic_findloc): New function.
(gfc_conv_intrinsic_function): Handle GFC_ISYM_FINDLOC.
(gfc_is_intrinsic_libcall): Likewise.
2017-10-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/54613
* Makefile.am: Add files for findloc.
* Makefile.in: Regenerated.
* libgfortran.h (gfc_array_index_type): Add.
(gfc_array_s1): Add using GFC_UINTEGER_1.
(gfc_array_s4): Likewise.
Replace unnecessary comment.
(HAVE_GFC_UINTEGER_1): Define.
(HAVE_GFC_UINTEGER_4): Define.
* m4/findloc0.m4: New file.
* m4/findloc0s.m4: New file.
* m4/findloc1.m4: New file.
* m4/findloc1s.m4: New file.
* m4/findloc2s.m4: New file.
* m4/ifindloc0.m4: New file.
* m4/ifindloc1.m4: New file.
* m4/ifindloc2.m4: New file.
* m4/iparm.m4: Use unsigned integer for characters.
* generated/findloc0_c16.c: New file.
* generated/findloc0_c4.c: New file.
* generated/findloc0_c8.c: New file.
* generated/findloc0_i1.c: New file.
* generated/findloc0_i16.c: New file.
* generated/findloc0_i2.c: New file.
* generated/findloc0_i4.c: New file.
* generated/findloc0_i8.c: New file.
* generated/findloc0_r16.c: New file.
* generated/findloc0_r4.c: New file.
* generated/findloc0_r8.c: New file.
* generated/findloc0_s1.c: New file.
* generated/findloc0_s4.c: New file.
* generated/findloc1_c16.c: New file.
* generated/findloc1_c4.c: New file.
* generated/findloc1_c8.c: New file.
* generated/findloc1_i1.c: New file.
* generated/findloc1_i16.c: New file.
* generated/findloc1_i2.c: New file.
* generated/findloc1_i4.c: New file.
* generated/findloc1_i8.c: New file.
* generated/findloc1_r16.c: New file.
* generated/findloc1_r4.c: New file.
* generated/findloc1_r8.c: New file.
* generated/findloc1_s1.c: New file.
* generated/findloc1_s4.c: New file.
* generated/findloc2_s1.c: New file.
* generated/findloc2_s4.c: New file.
* generated/maxloc0_16_s1.c: Regenerated.
* generated/maxloc0_16_s4.c: Regenerated.
* generated/maxloc0_4_s1.c: Regenerated.
* generated/maxloc0_4_s4.c: Regenerated.
* generated/maxloc0_8_s1.c: Regenerated.
* generated/maxloc0_8_s4.c: Regenerated.
* generated/maxloc1_16_s1.c: Regenerated.
* generated/maxloc1_16_s4.c: Regenerated.
* generated/maxloc1_4_s1.c: Regenerated.
* generated/maxloc1_4_s4.c: Regenerated.
* generated/maxloc1_8_s1.c: Regenerated.
* generated/maxloc1_8_s4.c: Regenerated.
* generated/maxloc2_16_s1.c: Regenerated.
* generated/maxloc2_16_s4.c: Regenerated.
* generated/maxloc2_4_s1.c: Regenerated.
* generated/maxloc2_4_s4.c: Regenerated.
* generated/maxloc2_8_s1.c: Regenerated.
* generated/maxloc2_8_s4.c: Regenerated.
* generated/maxval0_s1.c: Regenerated.
* generated/maxval0_s4.c: Regenerated.
* generated/maxval1_s1.c: Regenerated.
* generated/maxval1_s4.c: Regenerated.
* generated/minloc0_16_s1.c: Regenerated.
* generated/minloc0_16_s4.c: Regenerated.
* generated/minloc0_4_s1.c: Regenerated.
* generated/minloc0_4_s4.c: Regenerated.
* generated/minloc0_8_s1.c: Regenerated.
* generated/minloc0_8_s4.c: Regenerated.
* generated/minloc1_16_s1.c: Regenerated.
* generated/minloc1_16_s4.c: Regenerated.
* generated/minloc1_4_s1.c: Regenerated.
* generated/minloc1_4_s4.c: Regenerated.
* generated/minloc1_8_s1.c: Regenerated.
* generated/minloc1_8_s4.c: Regenerated.
* generated/minloc2_16_s1.c: Regenerated.
* generated/minloc2_16_s4.c: Regenerated.
* generated/minloc2_4_s1.c: Regenerated.
* generated/minloc2_4_s4.c: Regenerated.
* generated/minloc2_8_s1.c: Regenerated.
* generated/minloc2_8_s4.c: Regenerated.
* generated/minval0_s1.c: Regenerated.
* generated/minval0_s4.c: Regenerated.
* generated/minval1_s1.c: Regenerated.
* generated/minval1_s4.c: Regenerated.
2017-10-28 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/54613
* gfortran.dg/findloc_1.f90: New test.
* gfortran.dg/findloc_2.f90: New test.
* gfortran.dg/findloc_3.f90: New test.
* gfortran.dg/findloc_4.f90: New test.
* gfortran.dg/findloc_5.f90: New test.
* gfortran.dg/findloc_6.f90: New test.
From-SVN: r265570
Iain Sandoe [Sun, 28 Oct 2018 09:25:43 +0000 (09:25 +0000)]
darwin - fix powerpc-darwin stack alignments
2018-10-28 Iain Sandoe <iain@sandoe.co.uk>
PR target/85669
* config/rs6000/darwin.h (STACK_BOUNDARY): New.
(RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment.
(STACK_DYNAMIC_OFFSET): Likewise.
From-SVN: r265568
GCC Administrator [Sun, 28 Oct 2018 00:16:44 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r265564
Sandra Loosemore [Sat, 27 Oct 2018 21:34:43 +0000 (17:34 -0400)]
re PR target/80024 (nios2: unclear wording "numeric digits" in diagnostic)
2018-10-27 Sandra Loosemore <sandra@codesourcery.com>
PR target/80024
gcc/
* config/nios2/nios2.c (nios2_valid_target_attribute_rec): Fix
error message.
From-SVN: r265561
Thomas Koenig [Sat, 27 Oct 2018 10:26:23 +0000 (10:26 +0000)]
re PR fortran/86907 (bogus warning "No location in expression near")
2018-10-27 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/86907
* frontend-passes.c (check_locus_code): Add information that
warning about missing location information points to an
inconsisten internal state.
(check_locus_expr): Likewise.
From-SVN: r265559
GCC Administrator [Sat, 27 Oct 2018 00:16:42 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r265554
Tulio Magno Quites Machado Filho [Fri, 26 Oct 2018 21:32:15 +0000 (21:32 +0000)]
powerpc: Fix typos in the manual
2018-10-26 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
* doc/extend.texi (PowerPC builtins): Fix __builtin_unpack_ibm128
return type and other typos.
From-SVN: r265548
Aaron Sawdey [Fri, 26 Oct 2018 19:33:31 +0000 (19:33 +0000)]
rs6000-string.c (expand_strncmp_gpr_sequence): Change to a shorter sequence with fewer branches.
2018-10-26 Aaron Sawdey <acsawdey@linux.ibm.com>
* config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to
a shorter sequence with fewer branches.
(emit_final_str_compare_gpr): Ditto.
From-SVN: r265546
Bill Schmidt [Fri, 26 Oct 2018 19:21:21 +0000 (19:21 +0000)]
sse-addss-1.c: Call abort under DEBUG also; formatting cleanup.
2018-10-26 Bill Schmidt <wschmidt@linux.ibm.com>
Jinsong Ji <jji@us.ibm.com>
* gcc.target/powerpc/sse-addss-1.c: Call abort under DEBUG also;
formatting cleanup.
* gcc.target/powerpc/sse-pavgw-1.c: Likewise.
* gcc.target/powerpc/sse2-addsd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise.
* gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise.
* gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise.
* gcc.target/powerpc/sse2-divpd-1.c: Likewise.
* gcc.target/powerpc/sse2-divsd-1.c: Likewise.
* gcc.target/powerpc/sse2-maxsd-1.c: Likewise.
* gcc.target/powerpc/sse2-minsd-1.c: Likewise.
* gcc.target/powerpc/sse2-movmskpd-1.c: Likewise.
* gcc.target/powerpc/sse2-movq-1.c: Likewise.
* gcc.target/powerpc/sse2-movsd-3.c: Likewise.
* gcc.target/powerpc/sse2-mulpd-1.c: Likewise.
* gcc.target/powerpc/sse2-mulsd-1.c: Likewise.
* gcc.target/powerpc/sse2-packssdw-1.c: Likewise.
* gcc.target/powerpc/sse2-packsswb-1.c: Likewise.
* gcc.target/powerpc/sse2-packuswb-1.c: Likewise.
* gcc.target/powerpc/sse2-paddsb-1.c: Likewise.
* gcc.target/powerpc/sse2-paddsw-1.c: Likewise.
* gcc.target/powerpc/sse2-paddusb-1.c: Likewise.
* gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise.
* gcc.target/powerpc/sse2-pmulhw-1.c: Likewise.
* gcc.target/powerpc/sse2-pmuludq1.c: Likewise.
* gcc.target/powerpc/sse2-psadbw-1.c: Likewise.
* gcc.target/powerpc/sse2-pshufd-1.c: Likewise.
* gcc.target/powerpc/sse2-pshufhw-1.c: Likewise.
* gcc.target/powerpc/sse2-pshuflw-1.c: Likewise.
* gcc.target/powerpc/sse2-pslld-2.c: Likewise.
* gcc.target/powerpc/sse2-pslldq-1.c: Likewise.
* gcc.target/powerpc/sse2-psrld-1.c: Likewise.
* gcc.target/powerpc/sse2-psrld-2.c: Likewise.
* gcc.target/powerpc/sse2-psrldq-1.c: Likewise.
* gcc.target/powerpc/sse2-psubusb-1.c: Likewise.
* gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise.
* gcc.target/powerpc/sse2-subsd-1.c: Likewise.
Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
From-SVN: r265545
Paul A. Clarke [Fri, 26 Oct 2018 19:02:23 +0000 (19:02 +0000)]
[rs6000] Add tests for compatible implementations of x86 SSSE3 intrinsics
This is part 2/2 for contributing PPC64LE support for X86 SSSE3 instrisics.
This patch includes testsuite/gcc.target tests, copied from gcc.target/i386,
for the intrinsics defined in tmmintrin.h.
[gcc/testsuite]
2018-10-26 Paul A. Clarke <pc@us.ibm.com>
* gcc.target/powerpc/ssse3-check.h: New file.
* gcc.target/powerpc/ssse3-vals.h: New file.
* gcc.target/powerpc/ssse3-pabsb.c: New file.
* gcc.target/powerpc/ssse3-pabsd.c: New file.
* gcc.target/powerpc/ssse3-pabsw.c: New file.
* gcc.target/powerpc/ssse3-palignr.c: New file.
* gcc.target/powerpc/ssse3-phaddd.c: New file.
* gcc.target/powerpc/ssse3-phaddsw.c: New file.
* gcc.target/powerpc/ssse3-phaddw.c: New file.
* gcc.target/powerpc/ssse3-phsubd.c: New file.
* gcc.target/powerpc/ssse3-phsubsw.c: New file.
* gcc.target/powerpc/ssse3-phsubw.c: New file.
* gcc.target/powerpc/ssse3-pmaddubsw.c: New file.
* gcc.target/powerpc/ssse3-pmulhrsw.c: New file.
* gcc.target/powerpc/ssse3-pshufb.c: New file.
* gcc.target/powerpc/ssse3-psignb.c: New file.
* gcc.target/powerpc/ssse3-psignd.c: New file.
* gcc.target/powerpc/ssse3-psignw.c: New file.
From-SVN: r265544
Paul A. Clarke [Fri, 26 Oct 2018 18:38:25 +0000 (18:38 +0000)]
[rs6000] Add compatible implementations of x86 SSSE3 intrinsics
This is a follow-on to earlier commits for adding compatibility
implementations of x86 intrinsics for PPC64LE. This is the first of
two patches. This patch adds the 32 x86 intrinsics from
<tmmintrin.h> ("SSSE3"). (Patch 2/2 adds tests for these intrinsics,
and briefly describes the tests performed.)
gcc/ChangeLog:
2018-10-26 Paul A. Clarke <pc@us.ibm.com>
* config/rs6000/tmmintrin.h: New file.
* config.gcc (powerpc*-*-*): Add tmmintrin.h to extra_headers.
From-SVN: r265542
Ian Lance Taylor [Fri, 26 Oct 2018 18:36:44 +0000 (18:36 +0000)]
libgo: simplify gotest script to avoid sed substitution to \n
Reviewed-on: https://go-review.googlesource.com/c/145057
From-SVN: r265541
Paul A. Clarke [Fri, 26 Oct 2018 17:33:24 +0000 (17:33 +0000)]
[rs6000] Enable 32bit support for tests of x86-compatibile intrinsics
Also, bugfix for mmx-packuswb-1.c, which had ommitted the required
"-mpower8-vector" from dg-options.
2018-10-26 Paul A. Clarke <pc@us.ibm.com>
gcc/testsuite/ChangeLog:
* gcc.target/powerpc/mmx-packs.c: Enable 32 bit execution.
* gcc.target/powerpc/mmx-packssdw-1.c: Likewise.
* gcc.target/powerpc/mmx-packsswb-1.c: Likewise.
* gcc.target/powerpc/mmx-packs.c: Likewise.
* gcc.target/powerpc/mmx-packssdw-1.c: Likewise.
* gcc.target/powerpc/mmx-packsswb-1.c: Likewise.
* gcc.target/powerpc/mmx-paddb-1.c: Likewise.
* gcc.target/powerpc/mmx-paddd-1.c: Likewise.
* gcc.target/powerpc/mmx-paddsb-1.c: Likewise.
* gcc.target/powerpc/mmx-paddsw-1.c: Likewise.
* gcc.target/powerpc/mmx-paddusb-1.c: Likewise.
* gcc.target/powerpc/mmx-paddusw-1.c: Likewise.
* gcc.target/powerpc/mmx-paddw-1.c: Likewise.
* gcc.target/powerpc/mmx-pcmpeqb-1.c: Likewise.
* gcc.target/powerpc/mmx-pcmpeqd-1.c: Likewise.
* gcc.target/powerpc/mmx-pcmpeqw-1.c: Likewise.
* gcc.target/powerpc/mmx-pcmpgtb-1.c: Likewise.
* gcc.target/powerpc/mmx-pcmpgtd-1.c: Likewise.
* gcc.target/powerpc/mmx-pcmpgtw-1.c: Likewise.
* gcc.target/powerpc/mmx-pmaddwd-1.c: Likewise.
* gcc.target/powerpc/mmx-pmulhw-1.c: Likewise.
* gcc.target/powerpc/mmx-pmullw-1.c: Likewise.
* gcc.target/powerpc/mmx-pslld-1.c: Likewise.
* gcc.target/powerpc/mmx-psllw-1.c: Likewise.
* gcc.target/powerpc/mmx-psrad-1.c: Likewise.
* gcc.target/powerpc/mmx-psraw-1.c: Likewise.
* gcc.target/powerpc/mmx-psrld-1.c: Likewise.
* gcc.target/powerpc/mmx-psrlw-1.c: Likewise.
* gcc.target/powerpc/mmx-psubb-2.c: Likewise.
* gcc.target/powerpc/mmx-psubd-2.c: Likewise.
* gcc.target/powerpc/mmx-psubsb-1.c: Likewise.
* gcc.target/powerpc/mmx-psubsw-1.c: Likewise.
* gcc.target/powerpc/mmx-psubusb-1.c: Likewise.
* gcc.target/powerpc/mmx-psubusw-1.c: Likewise.
* gcc.target/powerpc/mmx-psubw-2.c: Likewise.
* gcc.target/powerpc/mmx-punpckhbw-1.c: Likewise.
* gcc.target/powerpc/mmx-punpckhdq-1.c: Likewise.
* gcc.target/powerpc/mmx-punpckhwd-1.c: Likewise.
* gcc.target/powerpc/mmx-punpcklbw-1.c: Likewise.
* gcc.target/powerpc/mmx-punpckldq-1.c: Likewise.
* gcc.target/powerpc/mmx-punpcklwd-1.c: Likewise.
* gcc.target/powerpc/pr37191.c: Likewise.
* gcc.target/powerpc/sse-addps-1.c: Likewise.
* gcc.target/powerpc/sse-addss-1.c: Likewise.
* gcc.target/powerpc/sse-andnps-1.c: Likewise.
* gcc.target/powerpc/sse-andps-1.c: Likewise.
* gcc.target/powerpc/sse-cmpss-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpi16ps-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpi32ps-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpi8ps-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpspi16-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpspi8-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise.
* gcc.target/powerpc/sse-cvtpu8ps-1.c: Likewise.
* gcc.target/powerpc/sse-cvtsi2ss-1.c: Likewise.
* gcc.target/powerpc/sse-cvtsi2ss-2.c: Likewise.
* gcc.target/powerpc/sse-cvtss2si-1.c: Likewise.
* gcc.target/powerpc/sse-cvtss2si-2.c: Likewise.
* gcc.target/powerpc/sse-cvttss2si-1.c: Likewise.
* gcc.target/powerpc/sse-cvttss2si-2.c: Likewise.
* gcc.target/powerpc/sse-divps-1.c: Likewise.
* gcc.target/powerpc/sse-divss-1.c: Likewise.
* gcc.target/powerpc/sse-maxps-1.c: Likewise.
* gcc.target/powerpc/sse-maxps-2.c: Likewise.
* gcc.target/powerpc/sse-maxss-1.c: Likewise.
* gcc.target/powerpc/sse-minps-1.c: Likewise.
* gcc.target/powerpc/sse-minps-2.c: Likewise.
* gcc.target/powerpc/sse-minss-1.c: Likewise.
* gcc.target/powerpc/sse-movaps-1.c: Likewise.
* gcc.target/powerpc/sse-movaps-2.c: Likewise.
* gcc.target/powerpc/sse-movhlps-1.c: Likewise.
* gcc.target/powerpc/sse-movhps-1.c: Likewise.
* gcc.target/powerpc/sse-movhps-2.c: Likewise.
* gcc.target/powerpc/sse-movlhps-1.c: Likewise.
* gcc.target/powerpc/sse-movlps-1.c: Likewise.
* gcc.target/powerpc/sse-movlps-2.c: Likewise.
* gcc.target/powerpc/sse-movmskb-1.c: Likewise.
* gcc.target/powerpc/sse-movmskps-1.c: Likewise.
* gcc.target/powerpc/sse-movss-1.c: Likewise.
* gcc.target/powerpc/sse-movss-2.c: Likewise.
* gcc.target/powerpc/sse-movss-3.c: Likewise.
* gcc.target/powerpc/sse-mulps-1.c: Likewise.
* gcc.target/powerpc/sse-mulss-1.c: Likewise.
* gcc.target/powerpc/sse-orps-1.c: Likewise.
* gcc.target/powerpc/sse-pavgw-1.c: Likewise.
* gcc.target/powerpc/sse-pmaxsw-1.c: Likewise.
* gcc.target/powerpc/sse-pmaxub-1.c: Likewise.
* gcc.target/powerpc/sse-pminsw-1.c: Likewise.
* gcc.target/powerpc/sse-pminub-1.c: Likewise.
* gcc.target/powerpc/sse-pmulhuw-1.c: Likewise.
* gcc.target/powerpc/sse-psadbw-1.c: Likewise.
* gcc.target/powerpc/sse-rcpps-1.c: Likewise.
* gcc.target/powerpc/sse-rsqrtps-1.c: Likewise.
* gcc.target/powerpc/sse-shufps-1.c: Likewise.
* gcc.target/powerpc/sse-sqrtps-1.c: Likewise.
* gcc.target/powerpc/sse-subps-1.c: Likewise.
* gcc.target/powerpc/sse-subss-1.c: Likewise.
* gcc.target/powerpc/sse-ucomiss-1.c: Likewise.
* gcc.target/powerpc/sse-ucomiss-2.c: Likewise.
* gcc.target/powerpc/sse-ucomiss-3.c: Likewise.
* gcc.target/powerpc/sse-ucomiss-4.c: Likewise.
* gcc.target/powerpc/sse-ucomiss-5.c: Likewise.
* gcc.target/powerpc/sse-ucomiss-6.c: Likewise.
* gcc.target/powerpc/sse-unpckhps-1.c: Likewise.
* gcc.target/powerpc/sse-unpcklps-1.c: Likewise.
* gcc.target/powerpc/sse-xorps-1.c: Likewise.
* gcc.target/powerpc/sse2-addpd-1.c: Likewise.
* gcc.target/powerpc/sse2-addsd-1.c: Likewise.
* gcc.target/powerpc/sse2-andnpd-1.c: Likewise.
* gcc.target/powerpc/sse2-andpd-1.c: Likewise.
* gcc.target/powerpc/sse2-cmppd-1.c: Likewise.
* gcc.target/powerpc/sse2-cmpsd-1.c: Likewise.
* gcc.target/powerpc/sse2-comisd-1.c: Likewise.
* gcc.target/powerpc/sse2-comisd-2.c: Likewise.
* gcc.target/powerpc/sse2-comisd-3.c: Likewise.
* gcc.target/powerpc/sse2-comisd-4.c: Likewise.
* gcc.target/powerpc/sse2-comisd-5.c: Likewise.
* gcc.target/powerpc/sse2-comisd-6.c: Likewise.
* gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtdq2ps-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise.
* gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtsi2sd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvtsi2sd-2.c: Likewise.
* gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise.
* gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise.
* gcc.target/powerpc/sse2-cvttps2dq-1.c: Likewise.
* gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise.
* gcc.target/powerpc/sse2-cvttsd2si-2.c: Likewise.
* gcc.target/powerpc/sse2-divpd-1.c: Likewise.
* gcc.target/powerpc/sse2-divsd-1.c: Likewise.
* gcc.target/powerpc/sse2-maxpd-1.c: Likewise.
* gcc.target/powerpc/sse2-maxsd-1.c: Likewise.
* gcc.target/powerpc/sse2-minpd-1.c: Likewise.
* gcc.target/powerpc/sse2-minsd-1.c: Likewise.
* gcc.target/powerpc/sse2-mmx.c: Likewise.
* gcc.target/powerpc/sse2-movhpd-1.c: Likewise.
* gcc.target/powerpc/sse2-movhpd-2.c: Likewise.
* gcc.target/powerpc/sse2-movlpd-1.c: Likewise.
* gcc.target/powerpc/sse2-movlpd-2.c: Likewise.
* gcc.target/powerpc/sse2-movmskpd-1.c: Likewise.
* gcc.target/powerpc/sse2-movq-1.c: Likewise.
* gcc.target/powerpc/sse2-movq-2.c: Likewise.
* gcc.target/powerpc/sse2-movq-3.c: Likewise.
* gcc.target/powerpc/sse2-movsd-1.c: Likewise.
* gcc.target/powerpc/sse2-movsd-2.c: Likewise.
* gcc.target/powerpc/sse2-movsd-3.c: Likewise.
* gcc.target/powerpc/sse2-mulpd-1.c: Likewise.
* gcc.target/powerpc/sse2-mulsd-1.c: Likewise.
* gcc.target/powerpc/sse2-orpd-1.c: Likewise.
* gcc.target/powerpc/sse2-packssdw-1.c: Likewise.
* gcc.target/powerpc/sse2-packsswb-1.c: Likewise.
* gcc.target/powerpc/sse2-packuswb-1.c: Likewise.
* gcc.target/powerpc/sse2-paddb-1.c: Likewise.
* gcc.target/powerpc/sse2-paddd-1.c: Likewise.
* gcc.target/powerpc/sse2-paddq-1.c: Likewise.
* gcc.target/powerpc/sse2-paddsb-1.c: Likewise.
* gcc.target/powerpc/sse2-paddsw-1.c: Likewise.
* gcc.target/powerpc/sse2-paddusb-1.c: Likewise.
* gcc.target/powerpc/sse2-paddusw-1.c: Likewise.
* gcc.target/powerpc/sse2-paddw-1.c: Likewise.
* gcc.target/powerpc/sse2-pand-1.c: Likewise.
* gcc.target/powerpc/sse2-pandn-1.c: Likewise.
* gcc.target/powerpc/sse2-pavgb-1.c: Likewise.
* gcc.target/powerpc/sse2-pavgw-1.c: Likewise.
* gcc.target/powerpc/sse2-pcmpeqb-1.c: Likewise.
* gcc.target/powerpc/sse2-pcmpeqd-1.c: Likewise.
* gcc.target/powerpc/sse2-pcmpeqw-1.c: Likewise.
* gcc.target/powerpc/sse2-pcmpgtb-1.c: Likewise.
* gcc.target/powerpc/sse2-pcmpgtd-1.c: Likewise.
* gcc.target/powerpc/sse2-pcmpgtw-1.c: Likewise.
* gcc.target/powerpc/sse2-pextrw.c: Likewise.
* gcc.target/powerpc/sse2-pinsrw.c: Likewise.
* gcc.target/powerpc/sse2-pmaddwd-1.c: Likewise.
* gcc.target/powerpc/sse2-pmaxsw-1.c: Likewise.
* gcc.target/powerpc/sse2-pmaxub-1.c: Likewise.
* gcc.target/powerpc/sse2-pminsw-1.c: Likewise.
* gcc.target/powerpc/sse2-pminub-1.c: Likewise.
* gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise.
* gcc.target/powerpc/sse2-pmulhuw-1.c: Likewise.
* gcc.target/powerpc/sse2-pmulhw-1.c: Likewise.
* gcc.target/powerpc/sse2-pmullw-1.c: Likewise.
* gcc.target/powerpc/sse2-pmuludq-1.c: Likewise.
* gcc.target/powerpc/sse2-por-1.c: Likewise.
* gcc.target/powerpc/sse2-psadbw-1.c: Likewise.
* gcc.target/powerpc/sse2-pshufd-1.c: Likewise.
* gcc.target/powerpc/sse2-pshufhw-1.c: Likewise.
* gcc.target/powerpc/sse2-pshuflw-1.c: Likewise.
* gcc.target/powerpc/sse2-pslld-1.c: Likewise.
* gcc.target/powerpc/sse2-pslld-2.c: Likewise.
* gcc.target/powerpc/sse2-pslldq-1.c: Likewise.
* gcc.target/powerpc/sse2-psllq-1.c: Likewise.
* gcc.target/powerpc/sse2-psllq-2.c: Likewise.
* gcc.target/powerpc/sse2-psllw-1.c: Likewise.
* gcc.target/powerpc/sse2-psllw-2.c: Likewise.
* gcc.target/powerpc/sse2-psrad-1.c: Likewise.
* gcc.target/powerpc/sse2-psrad-2.c: Likewise.
* gcc.target/powerpc/sse2-psraw-1.c: Likewise.
* gcc.target/powerpc/sse2-psraw-2.c: Likewise.
* gcc.target/powerpc/sse2-psrld-1.c: Likewise.
* gcc.target/powerpc/sse2-psrld-2.c: Likewise.
* gcc.target/powerpc/sse2-psrldq-1.c: Likewise.
* gcc.target/powerpc/sse2-psrlq-1.c: Likewise.
* gcc.target/powerpc/sse2-psrlq-2.c: Likewise.
* gcc.target/powerpc/sse2-psrlw-1.c: Likewise.
* gcc.target/powerpc/sse2-psrlw-2.c: Likewise.
* gcc.target/powerpc/sse2-psubb-1.c: Likewise.
* gcc.target/powerpc/sse2-psubd-1.c: Likewise.
* gcc.target/powerpc/sse2-psubq-1.c: Likewise.
* gcc.target/powerpc/sse2-psubsb-1.c: Likewise.
* gcc.target/powerpc/sse2-psubsw-1.c: Likewise.
* gcc.target/powerpc/sse2-psubusb-1.c: Likewise.
* gcc.target/powerpc/sse2-psubusw-1.c: Likewise.
* gcc.target/powerpc/sse2-psubw-1.c: Likewise.
* gcc.target/powerpc/sse2-punpckhbw-1.c: Likewise.
* gcc.target/powerpc/sse2-punpckhdq-1.c: Likewise.
* gcc.target/powerpc/sse2-punpckhqdq-1.c: Likewise.
* gcc.target/powerpc/sse2-punpckhwd-1.c: Likewise.
* gcc.target/powerpc/sse2-punpcklbw-1.c: Likewise.
* gcc.target/powerpc/sse2-punpckldq-1.c: Likewise.
* gcc.target/powerpc/sse2-punpcklqdq-1.c: Likewise.
* gcc.target/powerpc/sse2-punpcklwd-1.c: Likewise.
* gcc.target/powerpc/sse2-pxor-1.c: Likewise.
* gcc.target/powerpc/sse2-shufpd-1.c: Likewise.
* gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise.
* gcc.target/powerpc/sse2-subpd-1.c: Likewise.
* gcc.target/powerpc/sse2-subsd-1.c: Likewise.
* gcc.target/powerpc/sse2-ucomisd-1.c: Likewise.
* gcc.target/powerpc/sse2-ucomisd-2.c: Likewise.
* gcc.target/powerpc/sse2-ucomisd-3.c: Likewise.
* gcc.target/powerpc/sse2-ucomisd-4.c: Likewise.
* gcc.target/powerpc/sse2-ucomisd-5.c: Likewise.
* gcc.target/powerpc/sse2-ucomisd-6.c: Likewise.
* gcc.target/powerpc/sse2-unpckhpd-1.c: Likewise.
* gcc.target/powerpc/sse2-unpcklpd-1.c: Likewise.
* gcc.target/powerpc/sse2-xorpd-1.c: Likewise.
* gcc.target/powerpc/sse3-addsubpd.c: Likewise.
* gcc.target/powerpc/sse3-addsubps.c: Likewise.
* gcc.target/powerpc/sse3-haddpd.c: Likewise.
* gcc.target/powerpc/sse3-haddps.c: Likewise.
* gcc.target/powerpc/sse3-hsubpd.c: Likewise.
* gcc.target/powerpc/sse3-hsubps.c: Likewise.
* gcc.target/powerpc/sse3-lddqu.c: Likewise.
* gcc.target/powerpc/sse3-movddup.c: Likewise.
* gcc.target/powerpc/sse3-movshdup.c: Likewise.
* gcc.target/powerpc/sse3-movsldup.c: Likewise.
* gcc.target/powerpc/mmx-packuswb-1.c: Likewise. Also, add
ommitted "-mpower8-vector" to dg-options.
From-SVN: r265537
Paul A. Clarke [Fri, 26 Oct 2018 17:23:46 +0000 (17:23 +0000)]
[rs6000] x86 vector intrinsics compatibility: clean-ups for 32bit support
Implement various corrections in the compatibility implementations of the
x86 vector intrinsics found after enabling 32bit mode for the associated
test cases. (Actual enablement coming in a subsequent patch.)
2018-10-26 Paul A. Clarke <pc@us.ibm.com>
gcc/ChangeLog:
* config/rs6000/mmintrin.h: Enable 32bit compilation.
* config/rs6000/xmmintrin.h: Likewise.
From-SVN: r265535
Ian Lance Taylor [Fri, 26 Oct 2018 16:58:13 +0000 (16:58 +0000)]
libgo: avoid use of 'local' directive in shell script
Avoid declaring shell variables with 'local' (not supported
on all systems of interest).
Reviewed-on: https://go-review.googlesource.com/c/145021
From-SVN: r265534
Ian Lance Taylor [Fri, 26 Oct 2018 16:53:24 +0000 (16:53 +0000)]
libgo: fix improperly mangled linker symbol directive
Fix asm name directive for the C version of log/syslog.syslog_c,
which didn't get included in the recent name mangling change.
Reviewed-on: https://go-review.googlesource.com/c/145017
From-SVN: r265533
Paul A. Clarke [Fri, 26 Oct 2018 15:01:22 +0000 (15:01 +0000)]
[rs6000] Fix _mm_extract_pi16 for big-endian
For compatibility implementation of x86 vector intrinsic, _mm_extract_pi16,
adjust shift value for big-endian mode.
gcc/ChangeLog:
2018-10-25 Paul A. Clarke <pc@us.ibm.com>
* config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian.
From-SVN: r265531
Richard Biener [Fri, 26 Oct 2018 11:52:10 +0000 (11:52 +0000)]
tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set and wrapper.
2018-10-26 Richard Biener <rguenther@suse.de>
* tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set
and wrapper.
(vect_mark_slp_stmts_relevant): Likewise.
(vect_detect_hybrid_slp_stmts): Likewise.
(vect_bb_slp_scalar_cost): Likewise.
(vect_remove_slp_scalar_calls): Likewise.
From-SVN: r265528
Jakub Jelinek [Fri, 26 Oct 2018 10:29:15 +0000 (12:29 +0200)]
update_version_svn (IGNORE_BRANCHES): Add gcc-6-branch.
* update_version_svn (IGNORE_BRANCHES): Add gcc-6-branch.
* crontab: Remove gcc-6-branch entry.
From-SVN: r265527
Jakub Jelinek [Fri, 26 Oct 2018 10:26:17 +0000 (12:26 +0200)]
gcc_release (error, inform): Use $@ instead of $1.
* gcc_release (error, inform): Use $@ instead of $1.
(build_sources): Check for ^[[:blank:]]*GCC in both index.html
and changes.html, rather than for GCC in one and ^GCC in another one.
From-SVN: r265526
Jan Hubicka [Fri, 26 Oct 2018 09:32:47 +0000 (11:32 +0200)]
ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion.
* ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion.
(warn_types_mismatch): Fix walk of DECL_NAME.
(odr_types_equivalent_p): Fix overactive assert.
* lto/lto-symtab.c (lto_symtab_merge_decls_2): Fix extra space.
* g++.dg/lto/odr-1_0.C: Fix template.
* g++.dg/lto/odr-1_1.C: Fix template.
From-SVN: r265523
Richard Biener [Fri, 26 Oct 2018 07:38:59 +0000 (07:38 +0000)]
re PR tree-optimization/87105 (Autovectorization [X86, SSE2, AVX2, DoublePrecision])
2018-10-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/87105
* tree-vectorizer.h (_slp_tree::refcnt): New member.
* tree-vect-slp.c (vect_free_slp_tree): Decrement and honor
refcnt.
(vect_create_new_slp_node): Initialize refcnt to one.
(bst_traits): Move.
(scalar_stmts_set_t, bst_fail): Remove.
(vect_build_slp_tree_2): Add bst_map argument and adjust calls.
(vect_build_slp_tree): Add bst_map argument and lookup
already created SLP nodes.
(vect_print_slp_tree): Handle a SLP graph, print SLP node
addresses.
(vect_slp_rearrange_stmts): Handle a SLP graph.
(vect_analyze_slp_instance): Adjust and free SLP nodes from
the CSE map. Fix indenting.
(vect_schedule_slp_instance): Add short-cut.
* g++.dg/vect/slp-pr87105.cc: Adjust.
* gcc.dg/torture/
20181024-1.c: New testcase.
* g++.dg/opt/
20181025-1.C: Likewise.
From-SVN: r265522
Martin Liska [Fri, 26 Oct 2018 07:23:33 +0000 (09:23 +0200)]
Relax hash function to match equals function behavior (PR testsuite/86158).
2018-10-26 Martin Liska <mliska@suse.cz>
PR testsuite/86158
* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with
addr_expr and not with pointers.
From-SVN: r265521
Jan Hubicka [Fri, 26 Oct 2018 07:21:04 +0000 (09:21 +0200)]
* tree.c (free_lang_data_in_type): Only check main variants.
From-SVN: r265520
Jan Hubicka [Fri, 26 Oct 2018 07:20:01 +0000 (09:20 +0200)]
ipa-devirt.c (warn_odr): Make static.
* ipa-devirt.c (warn_odr): Make static.
(types_same_for_odr): Drop strict variant.
(types_odr_comparable): Likewise.
(odr_or_derived_type_p): Look for main variants.
(odr_name_hasher::equal): Cleanup comment.
(odr_subtypes_equivalent): Add warn and warned arguments; check main
variants.
(type_variants_equivalent_p): break out from ...
(odr_types_equivalent): ... here; go for main variants where needed.
(warn_odr): ... here; turn static.
(warn_types_mismatch): Compare mangled names of main variants.
* ipa-utils.h (types_odr_comparable): Drop strict parameter.
(type_with_linkage_p): Sanity check that we look at main variant.
* lto.c (lto_read_decls): Only consider main variant to be ODR type.
* tree.h (types_same_for_odr): Drop strict argument.
From-SVN: r265519
Richard Biener [Fri, 26 Oct 2018 07:19:07 +0000 (07:19 +0000)]
re PR lto/87754 (ICE in odr_types_equivalent_p, at ipa-devirt.c:1250)
2018-10-26 Richard Biener <rguenther@suse.de>
PR testsuite/87754
* g++.dg/lto/odr-1_0.C: Fix pattern.
From-SVN: r265518
Richard Biener [Fri, 26 Oct 2018 07:12:02 +0000 (07:12 +0000)]
re PR tree-optimization/87746 (ICE in vect_update_misalignment_for_peel, at tree-vect-data-refs.c:1035)
2018-10-26 Richard Biener <rguenther@suse.de>
PR tree-optimization/87746
* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
Simplify and fix WRT strided store groups with size not
equal to step in element count.
(vect_analyze_group_access_1): Dump the whole group.
* gcc.dg/pr87746.c: New testcase.
From-SVN: r265517
Rainer Orth [Fri, 26 Oct 2018 06:46:26 +0000 (06:46 +0000)]
Don't xfail gcc.dg/pr78973-2.c on non-ilp64 targets
* gcc.dg/pr78973-2.c: Remove xfail on dg-warning.
From-SVN: r265516
Ian Lance Taylor [Fri, 26 Oct 2018 02:43:35 +0000 (02:43 +0000)]
libgo: don't use wc in gotest
The wc command is not in the GNU approved list of Makefile utilities
(https://www.gnu.org/prep/standards/html_node/Utilities-in-Makefiles.html#Utilities-in-Makefiles).
Reviewed-on: https://go-review.googlesource.com/c/144897
From-SVN: r265515
GCC Administrator [Fri, 26 Oct 2018 00:17:05 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r265514
Ian Lance Taylor [Thu, 25 Oct 2018 22:18:08 +0000 (22:18 +0000)]
compiler: improve name mangling for packpaths
The current implementation of Gogo::pkgpath_for_symbol was written in
a way that allowed two distinct package paths to map to the same
symbol, which could cause collisions at link- time or compile-time.
Switch to a better mangling scheme to insure that we get a unique
packagepath symbol for each package. In the new scheme instead of having
separate mangling schemes for identifiers and package paths, the
main identifier mangler ("go_encode_id") now handles mangling of
both packagepath characters and identifier characters.
The new mangling scheme is more intrusive: "foo/bar.Baz" is mangled as
"foo..z2fbar.Baz" instead of "foo_bar.Baz". To mitigate this, this
patch also adds a demangling capability so that function names
returned from runtime.CallersFrames are converted back to their
original unmangled form.
Changing the pkgpath_for_symbol scheme requires updating a number of
//go:linkname directives and C "__asm__" directives to match the new
scheme, as well as updating the 'gotest' driver (which makes
assumptions about the correct mapping from pkgpath symbol to package
name).
Fixes golang/go#27534.
Reviewed-on: https://go-review.googlesource.com/c/135455
From-SVN: r265510
Carl Love [Thu, 25 Oct 2018 20:41:57 +0000 (20:41 +0000)]
rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, [...]): Rename base overloaded name.
gcc/ChangeLog:
2018-10-25 Carl Love <cel@us.ibm.com>
* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT,
P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ,
P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name. Add quad
precicion entry for each overloaded builtin.
* config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ,
VSCEDPUO): Rename overloaded name.
(VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ,
VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins.
* config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add
define_expand for xscmpexqp instruction.
(*xscmpexpqp): Add define_insn for the xscmpexqp instruction.
gcc/testsuite/ChangeLog:
2018-10-25 Carl Love <cel@us.ibm.com>
* gcc.target/powerpc/float128-cmp2-runnable.c: New test file.
From-SVN: r265509
Bill Schmidt [Thu, 25 Oct 2018 20:16:39 +0000 (20:16 +0000)]
emmintrin.h (_mm_slli_epi16): Replace deprecated function with vec_sl.
2018-10-25 Bill Schmidt <wschmidt@linux.ibm.com>
Jinsong Ji <jji@us.ibm.com>
* config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated
function with vec_sl.
(_mm_slli_epi32): Likewise.
(_mm_slli_epi64): Likewise.
(_mm_srai_epi16): Replace deprecated function with vec_sra.
(_mm_srai_epi32): Likewise.
(_mm_srli_epi16): Replace deprecated function with vec_sr.
(_mm_srli_epi32): Likewise.
(_mm_srli_epi64): Likewise.
(_mm_sll_epi16): Replace deprecated function with vec_sl.
(_mm_sll_epi32): Likewise.
(_mm_sll_epi64): Likewise.
(_mm_sra_epi16): Replace deprecated function with vec_sra.
(_mm_sra_epi32): Likewise.
(_mm_srl_epi16): Replace deprecated function with vec_sr.
(_mm_srl_epi32): Likewise.
(_mm_srl_epi64): Likewise.
Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
From-SVN: r265508
Bill Schmidt [Thu, 25 Oct 2018 20:14:40 +0000 (20:14 +0000)]
emmintrin.h (_mm_sll_epi16): Replace comparison operators with vec_cmp* for compatibility due to unfortunate...
2018-10-25 Bill Schmidt <wschmidt@linux.ibm.com>
Jinsong Ji <jji@us.ibm.com>
* gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace
comparison operators with vec_cmp* for compatibility due to
unfortunate history; clean up formatting and use types more
appropriately.
(_mm_sll_epi32): Likewise.
(_mm_sll_epi64): Likewise.
(_mm_srl_epi16): Likewise.
(_mm_srl_epi32): Likewise.
(_mm_srl_epi64): Likewise.
Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
From-SVN: r265507
Bill Schmidt [Thu, 25 Oct 2018 20:09:24 +0000 (20:09 +0000)]
emmintrin.h (_mm_sll_epi64): Remove wrong cast.
2018-10-25 Bill Schmidt <wschmidt@linux.ibm.com>
Jinsong Ji <jji@us.ibm.com>
* config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast.
* config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to
__vector __bool int. Use vec_cmpgt in preference to deprecated
function vec_vcmpgtfp.
(_mm_max_ps): Likewise.
Co-Authored-By: Jinsong Ji <jji@us.ibm.com>
From-SVN: r265506
Jeff Law [Thu, 25 Oct 2018 19:35:52 +0000 (13:35 -0600)]
rl78.c (insn_ok_now): Always re-recognize the insn if returning false.
* config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn
if returning false.
From-SVN: r265505
Jason Merrill [Thu, 25 Oct 2018 19:23:33 +0000 (15:23 -0400)]
* parser.c (cp_parser_sizeof_operand): Remove redundant grokdeclarator.
From-SVN: r265503
Martin Sebor [Thu, 25 Oct 2018 16:34:36 +0000 (16:34 +0000)]
extend.texi (aligned): Expand attribute description.
gcc/ChangeLog:
* doc/extend.texi (aligned): Expand attribute description.
(Alignment): Rename section. Discuss function arguments.
From-SVN: r265498
Martin Liska [Thu, 25 Oct 2018 15:36:48 +0000 (17:36 +0200)]
Use signed char in a test (PR testsuite/87739).
2018-10-25 Martin Liska <mliska@suse.cz>
PR testsuite/87739
* gcc.dg/tree-ssa/pr84436-5.c (foo): Use signed char.
From-SVN: r265495
Martin Liska [Thu, 25 Oct 2018 15:36:12 +0000 (17:36 +0200)]
Revert partially changes from r265454 (PR other/87735).
2018-10-25 Martin Liska <mliska@suse.cz>
PR other/87735
* gcc.dg/tree-prof/time-profiler-1.c: Revert.
* gcc.dg/tree-prof/time-profiler-2.c: Likewise.
* gcc.dg/tree-prof/time-profiler-3.c: Likewise.
2018-10-25 Martin Liska <mliska@suse.cz>
PR other/87735
* libgcov-profiler.c: Revert.
From-SVN: r265494
Jonathan Wakely [Thu, 25 Oct 2018 15:34:04 +0000 (16:34 +0100)]
PR libstdc++/87749 fix (and optimize) string move construction
The move constructor for the SSO string uses assign(const basic_string&)
when either:
(1) the source string is "local" and so the contents of the small string
buffer need to be copied, or
(2) the allocator does not propagate and is_always_equal is false.
Case (1) is suboptimal, because the assign member is not noexcept and
the compiler isn't smart enough to see it won't actually throw in this
case. This causes extra code in the move assignment operator so that any
exception will be turned into a call to std::terminate. This can be
fixed by copying small strings inline instead of calling assign.
Case (2) is a bug, because the specific instances of the allocators
could be equal even if is_always_equal is false. This can result in an
unnecessary deep copy (and potentially-throwing allocation) when the
storage should be moved. This can be fixed by simply checking if the
allocators are equal.
PR libstdc++/87749
* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
(basic_string::operator=(basic_string&&)): For short strings copy the
buffer inline. Only fall back to using assign(const basic_string&) to
do a deep copy when reallocation is needed.
* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
New test.
* testsuite/21_strings/basic_string/modifiers/assign/char/
move_assign_optim.cc: New test.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
New test.
* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
move_assign_optim.cc: New test.
From-SVN: r265493
Jan Hubicka [Thu, 25 Oct 2018 14:33:27 +0000 (16:33 +0200)]
ipa-devirt.c (main_odr_variant): Remove.
* ipa-devirt.c (main_odr_variant): Remove.
(hash_odr_name, types_same_for_odr, types_odr_comparable,
odr_name_hasher::equal, odr_subtypes_equivalent_p):
Drop use of main_odr_variant.
(add_type_duplicate): Silence confused warnings on integer types.
(get_odr_type): Always look for main variant.
(register_odr_type): Simplify.
From-SVN: r265492
Richard Biener [Thu, 25 Oct 2018 14:28:18 +0000 (14:28 +0000)]
tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Initialize ng to silence error with release checking bootstrap.
2018-10-25 Richard Biener <rguenther@suse.de>
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
Initialize ng to silence error with release checking bootstrap.
From-SVN: r265491
Ilya Leoshkevich [Thu, 25 Oct 2018 14:23:31 +0000 (14:23 +0000)]
S/390: Merge movdi_larl into movdi_64
Consider the following RTL:
(insn (set (mem/f/c:DI (reg/f:DI 60))
(const:DI (plus:DI (symbol_ref:DI ("*.LANCHOR0"))
(const_int 8)))))
generated by cse2 pass. It is matched to movdi_64, resulting in
the following inefficient code:
larl %r5,.L6 # Load literal pool@
lg %r1,.L7-.L6(%r5) # Load .LANCHOR0+8
stgrl %r1,.LANCHOR0
br %r14
Matching it to movdi_larl improves the code, eliminating one
instruction and the literal pool entry:
larl %r1,.LANCHOR0+8
stgrl %r1,.LANCHOR0
br %r14
Taking it one step further, there is no reason to keep movdi_64 and
movdi_larl separate, since this could potentially improve code in other
ways by giving lra one more alternative to choose from.
gcc/ChangeLog:
2018-10-25 Ilya Leoshkevich <iii@linux.ibm.com>
* config/s390/constraints.md (ZL): New constraint.
* config/s390/s390.c (legitimate_pic_operand_p): Accept LARL
operands.
* config/s390/s390.md (movdi_larl): Remove.
(movdi_64): Add the LARL alternative.
gcc/testsuite/ChangeLog:
2018-10-25 Ilya Leoshkevich <iii@linux.ibm.com>
* gcc.target/s390/global-array-almost-huge-element.c: New test.
* gcc.target/s390/global-array-almost-negative-huge-element.c: New test.
* gcc.target/s390/global-array-element-pic.c: New test.
* gcc.target/s390/global-array-even-element.c: New test.
* gcc.target/s390/global-array-huge-element.c: New test.
* gcc.target/s390/global-array-negative-huge-element.c: New test.
* gcc.target/s390/global-array-odd-element.c: New test.
From-SVN: r265490
Richard Biener [Thu, 25 Oct 2018 14:03:24 +0000 (14:03 +0000)]
tree-if-conv.c: Include tree-ssa-sccvn.h.
2018-10-25 Richard Biener <rguenther@suse.de>
* tree-if-conv.c: Include tree-ssa-sccvn.h.
(tree_if_conversion): Run CSE on the if-converted loop body.
From-SVN: r265489
Ilya Leoshkevich [Thu, 25 Oct 2018 13:47:10 +0000 (13:47 +0000)]
Fix rtx_code_size static initialization order fiasco
r264556 and r264537 changed the format of EQ_ATTR_ALT RTXs to "ww",
which also required adjusting rtx_code_size initializer. In order to
simplify things, the list of rtx_codes known to use HOST_WIDE_INTs was
replaced by the format string check. However, unlike the old one, this
new check cannot be always performed at compile time, in which case a
static constructor is generated. This may lead to a static
initialization order fiasco with respect to other static constructors
in the compiler, in case of PR87747, cselib's pool_allocator.
gcc/ChangeLog:
2018-10-25 Ilya Leoshkevich <iii@linux.ibm.com>
PR bootstrap/87747
* rtl.c (RTX_CODE_HWINT_P_1): New helper macro.
(RTX_CODE_HWINT_P): New macro.
(rtx_code_size): Use RTX_CODE_HWINT_P ().
From-SVN: r265488
Marc Glisse [Thu, 25 Oct 2018 13:03:13 +0000 (15:03 +0200)]
Relocation (= move+destroy)
2018-10-25 Marc Glisse <marc.glisse@inria.fr>
PR libstdc++/87106
* include/bits/alloc_traits.h (_S_construct, _S_destroy, construct,
destroy): Add noexcept specification.
* include/bits/allocator.h (construct, destroy): Likewise.
* include/ext/alloc_traits.h (construct, destroy): Likewise.
* include/ext/malloc_allocator.h (construct, destroy): Likewise.
* include/ext/new_allocator.h (construct, destroy): Likewise.
* include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a,
__relocate_a_1): New functions.
(__is_trivially_relocatable): New class.
* include/bits/stl_vector.h (__use_relocate): New static member.
* include/bits/vector.tcc (reserve, _M_realloc_insert,
_M_default_append): Use __relocate_a.
(reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert,
_M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT
after _Destroy.
* testsuite/23_containers/vector/modifiers/push_back/49836.cc:
Replace CopyConsOnlyType with DelAnyAssign.
From-SVN: r265485
Jan Hubicka [Thu, 25 Oct 2018 12:18:28 +0000 (14:18 +0200)]
ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types is anonymous.
* ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types
is anonymous.
* g++.dg/lto/odr-1_0.C: New test.
* g++.dg/lto/odr-1_1.C: New test.
From-SVN: r265484
Thomas Preud'homme [Thu, 25 Oct 2018 10:35:21 +0000 (10:35 +0000)]
dg-cmp-results: display NA->FAIL & NA->UNRESOLVED by default
Currently, dg-cmp-results will not print anything for a test that was
not run before, even if it is a FAIL or UNRESOLVED now. This means that
when contributing a code change together with a testcase in the same
commit one must run dg-cmp-results twice: once to check for regression
on a full testsuite run and once against the new testcase with -v -v.
This also prevents using dg-cmp-results on sum files generated with
test_summary since these would not contain PASS.
This patch changes dg-cmp-results to print NA->FAIL and NA->UNRESOLVED
changes by default.
2018-10-25 Thomas Preud'homme <thomas.preudhomme@linaro.org>
contrib/
* dg-cmp-results.sh: Print NA-FAIL and NA->UNRESOLVED changes at
default verbosity.
From-SVN: r265483
Thomas Preud'homme [Thu, 25 Oct 2018 10:19:49 +0000 (10:19 +0000)]
[testsuite] Fix sibcall-9 & sibcall-10 with -fPIC
gcc.dg/sibcall-9.c and gcc.dg/sibcall-10.c give execution failure
on ARM when compiled with -fPIC due to the PIC access to volatile
variable v creating an extra spill which causes the frame size of the
two recursive functions to be different. Making the variable static
solve the issue because the variable can be access in a PC-relative way
and avoid the spill, while still testing sibling call as originally
intended.
2018-10-25 Thomas Preud'homme <thomas.preudhomme@linaro.org>
gcc/testsuite/
* gcc.dg/sibcall-9.c: Make v static.
* gcc.dg/sibcall-10.c: Likewise.
From-SVN: r265482
Richard Biener [Thu, 25 Oct 2018 08:59:07 +0000 (08:59 +0000)]
re PR tree-optimization/87665 (gcc HEAD (svn: 265340) breaks elements on resize)
2018-10-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/87665
PR tree-optimization/87745
* tree-vectorizer.h (get_earlier_stmt): Remove.
(get_later_stmt): Pick up UID from the original non-pattern stmt.
* gfortran.dg/
20181025-1.f: New testcase.
From-SVN: r265481
Sam Tebbs [Thu, 25 Oct 2018 08:57:24 +0000 (08:57 +0000)]
[DOC] Relocate list under Deprecated in options.texi to Var
gcc/doc
2018-10-25 Sam Tebbs <sam.tebbs@arm.com>
* options.texi (Deprecated): Move list to Var section.
From-SVN: r265480
Jakub Jelinek [Thu, 25 Oct 2018 07:56:55 +0000 (09:56 +0200)]
re PR fortran/87725 (OpenMP 4.5 clause schedule(simd,monotonic:static) not understood)
PR fortran/87725
* openmp.c (gfc_match_omp_clauses): Parse simd, monotonic and
nonmonotonic modifiers regardless of if they have been parsed
already or if the opposite one has. Fix up check whether
comma after modifier should be parsed.
(resolve_omp_clauses): Diagnose schedule modifier restrictions.
* c-c++-common/gomp/schedule-modifiers-1.c (bar): Separate modifier
from kind with a colon rather than comma.
* gfortran.dg/gomp/schedule-modifiers-1.f90: New test.
* gfortran.dg/gomp/schedule-modifiers-2.f90: New test.
From-SVN: r265479
GCC Administrator [Thu, 25 Oct 2018 00:16:38 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r265478
Segher Boessenkool [Wed, 24 Oct 2018 22:34:40 +0000 (00:34 +0200)]
combine: Don't do make_more_copies for dest PC (PR87720)
Jumps are written in RTL as moves to PC. But the latter has no mode,
so we shouldn't try to use it. Since the optimization this routine
does does not really help for jumps at all, let's just skip it.
PR rtl-optimization/87720
* combine.c (make_more_copies): Skip if the dest is pc_rtx.
From-SVN: r265474
Alexandre Oliva [Wed, 24 Oct 2018 21:55:39 +0000 (21:55 +0000)]
gOlogy: do not change code in isolate-paths for warnings only
The isolate-paths pass is activated by various -f flags, but also by
-Wnull-dereference. Most of its codegen changes are conditioned on at
least one of the -f flags, but those that detect, warn about and
isolate paths that return the address of local variables are enabled
even if the pass is activated only by -Wnull-dereference.
-W flags should not cause codegen changes, so this patch makes the
codegen changes conditional on the presence of any of the -f flags
that activate the pass. Should we have a separate option to activate
only this kind of transformation?
for gcc/ChangeLog
* gimple-ssa-isolate-paths.c
(find_implicit_erroneous_behavior): Do not change code if the
pass is running for warnings only.
(find_explicit_erroneous_behavior): Likewise.
From-SVN: r265473
Michael Meissner [Wed, 24 Oct 2018 20:16:31 +0000 (20:16 +0000)]
rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define as rs6000_mangle_decl_assembler_name.
[gcc]
2018-10-24 Michael Meissner <meissner@linux.ibm.com>
* config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME):
Define as rs6000_mangle_decl_assembler_name.
(rs6000_mangle_decl_assembler_name): If the user switched from IBM
long double to IEEE long double, switch the names of the long
double built-in functions to be <func>f128 instead of <func>l.
[gcc/testsuite]
2018-10-24 Michael Meissner <meissner@linux.ibm.com>
* gcc.target/powerpc/float128-math.c: New test to make sure the
long double built-in function names use the f128 form if the user
switched from IBM long double to IEEE long double.
* gcc.target/powerpc/ppc-fortran/ieee128-math.f90: Likewise.
From-SVN: r265471
Jakub Jelinek [Wed, 24 Oct 2018 19:39:23 +0000 (21:39 +0200)]
re PR c++/86288 (Recognize __gnu and/or __gnu__ as attribute-namespace)
PR c++/86288
* parser.c (cp_parser_std_attribute): Canonicalize attr_ns, and when
:: is not present and attr_ns non-NULL, canonicalize also attr_id.
(cp_parser_attribute_spec): Fix comment typo.
* g++.dg/cpp0x/gen-attrs-66.C: New test.
From-SVN: r265470
Martin Sebor [Wed, 24 Oct 2018 19:33:56 +0000 (19:33 +0000)]
extend.texi (nonnull): List no-argument form.
gcc/ChangeLog:
* doc/extend.texi (nonnull): List no-argument form. Reference
-fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute.
From-SVN: r265469
Martin Sebor [Wed, 24 Oct 2018 18:06:14 +0000 (18:06 +0000)]
PR c++/84851 - missing -Wclass-memaccess for a memcpy in a copy ctor with a non-trivial member
gcc/cp/ChangeLog:
PR c++/84851
* call.c (maybe_warn_class_memaccess): Tighten up.
gcc/testsuite/ChangeLog:
PR c++/84851
* g++.dg/Wclass-memaccess-4.C: Remove XFAIL.
From-SVN: r265467
Richard Biener [Wed, 24 Oct 2018 14:31:17 +0000 (14:31 +0000)]
tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state.
2018-10-24 Richard Biener <rguenther@suse.de>
* tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state.
From-SVN: r265465
William Schmidt [Wed, 24 Oct 2018 14:29:11 +0000 (14:29 +0000)]
emmintrin.h (_mm_cvtpd_epi32): Change deprecated __vector long to __vector long long.
2018-10-24 Bill Schmidt <wschmidt@linux.ibm.com>
Jinsong Ji <jji@us.ibm.com>
* config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated
__vector long to __vector long long.
(_mm_cvtpd_ps): Likewise.
(_mm_cvttpd_epi32): Likewise.
(_mm_cvtpi32_pd): Likewise.
(_mm_unpackhi_epi64): Likewise.
(_mm_unpacklo_epi64): Likewise.
From-SVN: r265464
Martin Liska [Wed, 24 Oct 2018 13:52:21 +0000 (15:52 +0200)]
Switch conversion: support any ax + b transformation (PR tree-optimization/84436).
2018-10-24 Martin Liska <mliska@suse.cz>
PR tree-optimization/84436
* tree-switch-conversion.c (switch_conversion::contains_same_values_p):
Remove.
(switch_conversion::contains_linear_function_p): New.
(switch_conversion::build_one_array): Support linear
transformation on input.
* tree-switch-conversion.h (struct switch_conversion): Add
contains_linear_function_p declaration.
2018-10-24 Martin Liska <mliska@suse.cz>
PR tree-optimization/84436
* gcc.dg/tree-ssa/pr84436-1.c: New test.
* gcc.dg/tree-ssa/pr84436-2.c: New test.
* gcc.dg/tree-ssa/pr84436-3.c: New test.
* gcc.dg/tree-ssa/pr84436-4.c: New test.
* gcc.dg/tree-ssa/pr84436-5.c: New test.
From-SVN: r265463
Richard Biener [Wed, 24 Oct 2018 13:49:47 +0000 (13:49 +0000)]
Return hash of ADDR_EXPR if its argument is CONSTANT_CLASS_P.
2018-10-24 Richard Biener <rguenther@suse.de>
* varasm.c (const_hash_1): Return hash of ADDR_EXPR
if its argument is CONSTANT_CLASS_P.
From-SVN: r265462
Jan Hubicka [Wed, 24 Oct 2018 12:50:25 +0000 (14:50 +0200)]
ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; it is wrong for forward declarations.
* ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL;
it is wrong for forward declarations.
From-SVN: r265460
Ilya Leoshkevich [Wed, 24 Oct 2018 12:10:58 +0000 (12:10 +0000)]
Add myself to MAINTAINERS
ChangeLog:
2018-10-24 Ilya Leoshkevich <iii@linux.ibm.com>
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r265459
Ilya Leoshkevich [Wed, 24 Oct 2018 12:04:53 +0000 (12:04 +0000)]
S/390: Fix ICE in s390_check_qrst_address ()
In r265371 (S/390: Make "b" constraint match literal pool references)
the CONSTANT_POOL_ADDRESS_P () check was moved from
s390_loadrelative_operand_p () to s390_check_qrst_address (). However,
in the original code it was guarded by SYMBOL_REF_P (), which was not
added to the new code.
gcc/ChangeLog:
2018-10-24 Ilya Leoshkevich <iii@linux.ibm.com>
* config/s390/s390.c (s390_check_qrst_address): Add the missing
SYMBOL_REF_P () check.
gcc/testsuite/ChangeLog:
2018-10-24 Ilya Leoshkevich <iii@linux.ibm.com>
* gcc.target/s390/
20181024-1.c: New test.
From-SVN: r265458
Richard Biener [Wed, 24 Oct 2018 11:46:58 +0000 (11:46 +0000)]
re PR tree-optimization/87105 (Autovectorization [X86, SSE2, AVX2, DoublePrecision])
2018-10-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/87105
* tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust
dump classification.
(vect_analyze_data_ref_accesses): Handle duplicate loads and
stores by splitting the affected group after the fact.
* tree-vect-slp.c (vect_build_slp_tree_2): Dump when we
fail the SLP build because of size constraints.
* gcc.dg/vect/bb-slp-39.c: New testcase.
* gfortran.dg/vect/pr83232.f90: Un-XFAIL.
From-SVN: r265457
Rainer Orth [Wed, 24 Oct 2018 11:27:35 +0000 (11:27 +0000)]
Disable string merging with alignment > 1 before Solaris 11.4/SPARC
* configure.ac (gcc_cv_ld_aligned_shf_merge): New test.
* configure: Regenerate.
* config.in: Regenerate.
* varasm.c (mergeable_string_section): Use readonly_data_section
if linker doesn't support SHF_MERGE with alignment > 8.
(mergeable_constant_section): Likewise.
From-SVN: r265456
Richard Biener [Wed, 24 Oct 2018 09:42:19 +0000 (09:42 +0000)]
re PR tree-optimization/84013 (wrong __restrict clique with inline asm operand)
2018-10-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/84013
* tree-ssa-structalias.c (struct msdi_data): New struct for
marshalling data to walk_stmt_load_store_ops.
(maybe_set_dependence_info): Refactor as callback for
walk_stmt_load_store_ops.
(compute_dependence_clique): Set restrict info on all stmt kinds.
* gcc.dg/tree-ssa/restrict-9.c: New testcase.
From-SVN: r265455
Martin Liska [Wed, 24 Oct 2018 08:47:59 +0000 (10:47 +0200)]
Remove reduntant dumps and make tp_first_run dump more compact.
2018-10-24 Martin Liska <mliska@suse.cz>
* cgraph.c (cgraph_node::dump):
Remove reduntant dumps and make tp_first_run dump more compact.
2018-10-24 Martin Liska <mliska@suse.cz>
* libgcov-profiler.c: Start from 1 in order to distinguish
functions which were seen and these that were not.
From-SVN: r265454
Richard Biener [Wed, 24 Oct 2018 06:52:45 +0000 (06:52 +0000)]
re PR tree-optimization/87665 (gcc HEAD (svn: 265340) breaks elements on resize)
2018-10-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/87665
* tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
to reflect reality.
* gcc.dg/torture/pr87665.c: New testcase.
From-SVN: r265452
François Dumont [Wed, 24 Oct 2018 05:40:25 +0000 (05:40 +0000)]
2018-10-24 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_unordered_container.h
(_Safe_unordered_container<>::_M_invalidate_locals): Take lambda
parameter type from local end variable.
(_Safe_unordered_container<>::_M_invalidate_all): Likewise.
* include/debug/unordered_map
(unordered_map<>::begin()): Use C++11 direct initialization.
(unordered_map<>::end()): Likewise.
(unordered_map<>::cbegin()): Likewise.
(unordered_map<>::cend()): Likewise.
(unordered_map<>::begin(size_type)): Likewise.
(unordered_map<>::end(size_type)): Likewise.
(unordered_map<>::cbegin(size_type)): Likewise.
(unordered_map<>::cend(size_type)): Likewise.
(unordered_map<>::emplace<>(_Args&&...)): Likewise.
(unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_map<>::insert(const value_type&)): Likewise.
(unordered_map<>::insert(value_type&&)): Likewise.
(unordered_map<>::insert<>(_Pair&&)): Likewise.
(unordered_map<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_map<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise.
(unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise.
(unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise.
(unordered_map<>::try_emplace<>(const_iterator, const key_type&,
_Args&&...)): Likewise.
(unordered_map<>::try_emplace<>(const_iterator, key_type&&,
_Args&&...)): Likewise.
(unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise.
(unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise.
(unordered_map<>::insert_or_assign<>(const_iterator, const key_type&,
_Obj&&)): Likewise.
(unordered_map<>::insert_or_assign<>(const_iterator, key_type&&,
_Obj&&)): Likewise.
(unordered_map<>::insert(note_type&&)): Likewise.
(unordered_map<>::find(const key_type&)): Likewise.
(unordered_map<>::equal_range(const key_type&)): Likewise.
(unordered_map<>::_M_extract): New.
(unordered_map<>::extract(const_iterator)): Use latter.
(unordered_map<>::extract(const key_type&)): Likewise.
(unordered_map<>::_M_erase): New.
(unordered_map<>::erase(const key_type&)): Use latter.
(unordered_map<>::erase(const_iterator)): Likewise.
(unordered_map<>::erase(iterator)): Likewise.
(unordered_map<>::_M_invalidate): New.
(unordered_map<>::erase(const_iterator, const_iterator)): Use latter.
(unordered_multimap<>::begin()): Use C++11 direct initialization.
(unordered_multimap<>::end()): Likewise.
(unordered_multimap<>::cbegin()): Likewise.
(unordered_multimap<>::cend()): Likewise.
(unordered_multimap<>::begin(size_type)): Likewise.
(unordered_multimap<>::end(size_type)): Likewise.
(unordered_multimap<>::cbegin(size_type)): Likewise.
(unordered_multimap<>::cend(size_type)): Likewise.
(unordered_multimap<>::emplace<>(_Args&&...)): Likewise.
(unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_multimap<>::insert(const value_type&)): Likewise.
(unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_multimap<>::insert<>(_Pair&&)): Likewise.
(unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise.
(unordered_multimap<>::insert(note_type&&)): Likewise.
(unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise.
(unordered_multimap<>::find(const key_type&)): Likewise.
(unordered_multimap<>::equal_range(const key_type&)): Likewise.
(unordered_multimap<>::_M_extract): New.
(unordered_multimap<>::extract(const_iterator)): Use latter.
(unordered_multimap<>::extract(const key_type&)): Likewise.
(unordered_multimap<>::_M_erase): New.
(unordered_multimap<>::erase(const_iterator)): Likewise.
(unordered_multimap<>::erase(iterator)): Likewise.
(unordered_multimap<>::_M_invalidate): New.
(unordered_multimap<>::erase(const key_type&)): Use latter.
(unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise.
* include/debug/unordered_set
(unordered_set<>::begin()): Use C++11 direct initialization.
(unordered_set<>::end()): Likewise.
(unordered_set<>::cbegin()): Likewise.
(unordered_set<>::cend()): Likewise.
(unordered_set<>::begin(size_type)): Likewise.
(unordered_set<>::end(size_type)): Likewise.
(unordered_set<>::cbegin(size_type)): Likewise.
(unordered_set<>::cend(size_type)): Likewise.
(unordered_set<>::emplace<>(_Args&&...)): Likewise.
(unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_set<>::insert(const value_type&)): Likewise.
(unordered_set<>::insert(value_type&&)): Likewise.
(unordered_set<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_set<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_set<>::insert(note_type&&)): Likewise.
(unordered_set<>::insert(const_iterator, note_type&&)): Likewise.
(unordered_set<>::find(const key_type&)): Likewise.
(unordered_set<>::equal_range(const key_type&)): Likewise.
(unordered_set<>::_M_extract): New.
(unordered_set<>::extract(const_iterator)): Use latter.
(unordered_set<>::extract(const key_type&)): Likewise.
(unordered_set<>::_M_erase): New.
(unordered_set<>::erase(const key_type&)): Use latter.
(unordered_set<>::erase(const_iterator)): Likewise.
(unordered_set<>::erase(iterator)): Likewise.
(unordered_set<>::_M_invalidate): New.
(unordered_set<>::erase(const_iterator, const_iterator)): Use latter.
(unordered_multiset<>::begin()): Use C++11 direct initialization.
(unordered_multiset<>::end()): Likewise.
(unordered_multiset<>::cbegin()): Likewise.
(unordered_multiset<>::cend()): Likewise.
(unordered_multiset<>::begin(size_type)): Likewise.
(unordered_multiset<>::end(size_type)): Likewise.
(unordered_multiset<>::cbegin(size_type)): Likewise.
(unordered_multiset<>::cend(size_type)): Likewise.
(unordered_multiset<>::emplace<>(_Args&&...)): Likewise.
(unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise.
(unordered_multiset<>::insert(const value_type&)): Likewise.
(unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise.
(unordered_multiset<>::insert(value_type&&)): Likewise.
(unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise.
(unordered_multiset<>::insert(node_type&&)): Likewise.
(unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise.
(unordered_multiset<>::find(const key_type&)): Likewise.
(unordered_multiset<>::equal_range(const key_type&)): Likewise.
(unordered_multiset<>::_M_extract): New.
(unordered_multiset<>::extract(const_iterator)): Use latter.
(unordered_multiset<>::extract(const key_type&)): Likewise.
(unordered_multiset<>::_M_erase): New.
(unordered_multiset<>::erase(const_iterator)): Likewise.
(unordered_multiset<>::erase(iterator)): Likewise.
(unordered_multiset<>::_M_invalidate): New.
(unordered_multiset<>::erase(const key_type&)): Use latter.
(unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise.
From-SVN: r265451
François Dumont [Wed, 24 Oct 2018 05:20:35 +0000 (05:20 +0000)]
cstddef: Add versioned namespace.
2018-10-24 François Dumont <fdumont@gcc.gnu.org>
* include/c_global/cstddef: Add versioned namespace.
From-SVN: r265450
GCC Administrator [Wed, 24 Oct 2018 00:16:54 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r265448
Jeff Law [Tue, 23 Oct 2018 22:51:25 +0000 (16:51 -0600)]
h8300.c (h8300_expand_prologue): Fix stm generation for H8/S.
* config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation
for H8/S.
From-SVN: r265444
Iain Buclaw [Tue, 23 Oct 2018 21:42:23 +0000 (21:42 +0000)]
MAINTAINERS (Write After Approval): Remove myself.
2018-10-23 Iain Buclaw <ibuclaw@gdcproject.org>
* MAINTAINERS (Write After Approval): Remove myself.
From-SVN: r265442
Iain Buclaw [Tue, 23 Oct 2018 21:04:51 +0000 (21:04 +0000)]
MAINTAINERS: Add myself as D front-end and libphobos maintainer.
2018-10-23 Iain Buclaw <ibuclaw@gdcproject.org>
* MAINTAINERS: Add myself as D front-end and libphobos maintainer.
From-SVN: r265441
Ian Lance Taylor [Tue, 23 Oct 2018 19:02:29 +0000 (19:02 +0000)]
re PR go/87661 (libgo bootstrap failure on arm-linux-gnueabihf (redefinition of constants))
PR go/87661
runtime: remove unused armArch, hwcap and hardDiv
After CL 140057 these are only written but never read in gccgo.
Reviewed-on: https://go-review.googlesource.com/c/141077
From-SVN: r265439
Jakub Jelinek [Tue, 23 Oct 2018 16:25:09 +0000 (18:25 +0200)]
lambda-this3.C: Limit dg-bogus directives to c++17_down only.
* g++.dg/cpp2a/lambda-this3.C: Limit dg-bogus directives to c++17_down
only. Add expected warnings and messages for c++2a.
From-SVN: r265430
Jonathan Wakely [Tue, 23 Oct 2018 13:10:26 +0000 (14:10 +0100)]
PR libstdc++/87704 fix unique_ptr(nullptr_t) constructors
Using a delegating constructor to implement these constructors means
that they instantiate the destructor, which requires the element_type to
be complete. In C++11 and C++14 they were specified to be delegating,
but that was changed as part of LWG 2801 so in C++17 they don't require
a complete type (as was intended all along).
PR libstdc++/87704
* include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do
not delegate to default constructor.
(unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise.
* testsuite/20_util/unique_ptr/cons/incomplete.cc: New test.
From-SVN: r265423
Richard Biener [Tue, 23 Oct 2018 11:37:52 +0000 (11:37 +0000)]
tree-vrp.c (add_assert_info): Guard dump_printf with dump_enabled_p.
2018-10-23 Richard Biener <rguenther@suse.de>
* tree-vrp.c (add_assert_info): Guard dump_printf with
dump_enabled_p.
* gimple-ssa-evrp-analyze.c
(evrp_range_analyzer::record_ranges_from_incoming_edge):
Use value_range::ignore_equivs_equal_p.
From-SVN: r265422
Richard Biener [Tue, 23 Oct 2018 11:34:56 +0000 (11:34 +0000)]
re PR tree-optimization/87105 (Autovectorization [X86, SSE2, AVX2, DoublePrecision])
2018-10-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/87105
PR tree-optimization/87608
* passes.def (pass_all_early_optimizations): Add early phi-opt
after dce.
* tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in
addition to debug stmts.
(tree_ssa_phiopt_worker): Add early_p argument, do only min/max
and abs replacement early.
* tree-cfg.c (gimple_empty_block_p): Likewise.
* g++.dg/tree-ssa/phiopt-1.C: New testcase.
g++.dg/vect/slp-pr87105.cc: Likewise.
* g++.dg/tree-ssa/pr21463.C: Scan phiopt2 because this testcase
relies on phiprop run before.
* g++.dg/tree-ssa/pr30738.C: Likewise.
* g++.dg/tree-ssa/pr57380.C: Likewise.
* gcc.dg/tree-ssa/pr84859.c: Likewise.
* gcc.dg/tree-ssa/pr45397.c: Scan phiopt2 because phiopt1 is
confused by copies in the IL left by EVRP.
* gcc.dg/tree-ssa/phi-opt-5.c: Likewise, this time confused
by predictors.
* gcc.dg/tree-ssa/phi-opt-12.c: Scan phiopt2.
* gcc.dg/pr24574.c: Likewise.
* g++.dg/tree-ssa/pr86544.C: Scan phiopt4.
From-SVN: r265421