Commit Graph

171090 Commits

Author SHA1 Message Date
Jose E. Marchesi
b7b1f65711 Update config.sub and config.guess.
* config.sub: Import upstream version 2019-06-30.
    * config.guess: Import upstream version 2019-07-24.

From-SVN: r275502
2019-09-09 11:14:32 +02:00
GCC Administrator
108d64adca Daily bump.
From-SVN: r275501
2019-09-09 00:17:08 +00:00
Segher Boessenkool
9976b31c66 genemit: Print file+line in the "Splitting with" message
It's tiresome to have to look in insn-emit.c to see where some split
came from, so let's print that info to the dump file as well.  But
don't print the full path, just the basename, for greater readability.


	* genemit.c (gen_split): Print the filename and line number where the
	splitter (or peephole2) was defined, to the dump file.

From-SVN: r275497
2019-09-08 22:58:18 +02:00
GCC Administrator
30b94f5520 Daily bump.
From-SVN: r275493
2019-09-08 00:16:34 +00:00
Bernd Edlinger
70ca91f5d4 pr91684.c: Use effective-target arm_prefer_ldrd_strd.
2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/arm/pr91684.c: Use effective-target arm_prefer_ldrd_strd.

From-SVN: r275489
2019-09-07 18:26:26 +00:00
David Edelsohn
e950ddb04b decomp2.C: Add TLS options.
* g++.dg/cpp2a/decomp2.C: Add TLS options.
        * gcc.target/powerpc/pr88233.c: Limit to lp64.

From-SVN: r275488
2019-09-07 11:23:51 -04:00
Jakub Jelinek
44a06a7095 re PR tree-optimization/91665 (ICE in build_vector_from_val, at tree.c:1904)
PR tree-optimization/91665
	* tree-vect-loop.c (vectorizable_reduction): Punt if base has type
	incompatible with the type of PHI result.

	* gcc.dg/vect/pr91665.c: New test.

From-SVN: r275486
2019-09-07 11:52:01 +02:00
Bernd Edlinger
8b2d8beb9f add PR target/91684 to ChangeLog
From-SVN: r275484
2019-09-07 05:11:16 +00:00
Bernd Edlinger
d405dc2302 arm.c (arm_block_set_aligned_non_vect): Use gen_unaligned_storedi for 4-byte aligned addresses.
2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * config/arm/arm.c (arm_block_set_aligned_non_vect): Use
        gen_unaligned_storedi for 4-byte aligned addresses.

testsuite:
2019-09-07  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * gcc.target/arm/pr91684.c: New test.

From-SVN: r275483
2019-09-07 04:38:58 +00:00
GCC Administrator
7397488502 Daily bump.
From-SVN: r275482
2019-09-07 00:16:46 +00:00
Jim Wilson
2f4d895197 RISC-V: Re-enable -msave-restore for shared libraries.
This re-enables -msave-restore for shared libraries, and uses the
t-slibgcc-libgcc file to get the save-restore routines included directly
in shared libraries so that we don't need to indirect through the PLT
to reach them, which doesn't work.

	gcc/
	* config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30
	change.

	libgcc/
	* config.host (riscv*-*-linux*): Add t-slibgcc-libgcc to tmake_file.
	(riscv*-*-freebsd*): Likewise.

From-SVN: r275478
2019-09-06 17:09:21 -07:00
Segher Boessenkool
e83573abb3 rs6000: Delete UNSPEC_MV_CR_OV.
This isn't used since 2018.  (It's a remnant of paired single support).


	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV.

From-SVN: r275477
2019-09-06 21:43:47 +02:00
Segher Boessenkool
9393ab7492 rs6000: Delete UNSPEC_FRSP
This isn't used since 2012.  (It's a remnant of RIOS support).


	* config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete.
	* config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP.

From-SVN: r275476
2019-09-06 21:42:38 +02:00
Uros Bizjak
4e9ad7c9d8 re PR target/91654 (Regressions of SPEC2017 rate caused by r274994)
PR target/91654
	* config/i386/x86-tune-costs.h (skylake_cost): Raise the
	cost of SSE->integer and integer->SSE moves from 2 to 6.
	(core_cost): Ditto.

From-SVN: r275475
2019-09-06 21:27:58 +02:00
Ian Lance Taylor
aa8901e9bb libgo: update to Go 1.13beta1 release
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497

From-SVN: r275473
2019-09-06 18:12:46 +00:00
Jakub Jelinek
920ea3b8ba function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P before testing TYPE_TRANSPARENT_AGGR.
* function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P
	before testing TYPE_TRANSPARENT_AGGR.
	* calls.c (initialize_argument_information, load_register_parameters):
	Likewise.

From-SVN: r275472
2019-09-06 19:33:41 +02:00
David Edelsohn
28d67c175f inf-compare-1.c: Skip AIX.
* gcc.dg/torture/inf-compare-1.c: Skip AIX.
        * gcc.dg/torture/inf-compare-2.c: Skip AIX.
        * gcc.dg/torture/inf-compare-3.c: Skip AIX.
        * gcc.dg/torture/inf-compare-4.c: Skip AIX.
        * gcc.dg/torture/pr52451.c: Skip AIX.
        * gcc.dg/torture/pr68264.c: Skip AIX
        * gcc.dg/torture/pr91323.c: Skip AIX.

From-SVN: r275464
2019-09-06 11:29:01 -04:00
David Edelsohn
613d4e784c Warray-bounds-4.C: Skip AIX.
* g++.dg/warn/Warray-bounds-4.C: Skip AIX.
        * g++.dg/warn/Warray-bounds-8.C: Skip AIX.
        * g++.dg/opt/flifetime-dse2.C: XFAIL AIX.
        * g++.dg/opt/flifetime-dse4.C: XFAIL AIX.

From-SVN: r275462
2019-09-06 11:24:28 -04:00
Caroline Tice
94ea5c6a51 Fix testcase to not use LTO with -fvtable-verify.
2019-09-05  Caroline Tice  <cmtice@google.com>

        PR testsuite/91670
        * g++.dg/ubsan/pr59415.C: Disable LTO, since test uses
        -fvtable-verify, and the two options are no longer allowed
        together.

From-SVN: r275460
2019-09-06 07:54:48 -07:00
Jonathan Wakely
4ef5bbd815 Define std::ssize for C++20 (P1227R2)
* include/bits/range_access.h (ssize): Define for C++20.
	* testsuite/24_iterators/range_access_cpp20.cc: New test.
	* doc/xml/manual/status_cxx2020.xml: Update P1227R2 status.
	* doc/html/*: Regenerate.

From-SVN: r275458
2019-09-06 13:54:51 +01:00
Nathan Sidwell
400b8274e6 [preprocessor] Popping "" file names
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg02069.html
	New # semantics for popping to "" name.
	libcpp/
	* directives.c (do_linemarker): Popping to "" name means get the
	name from the include stack..

From-SVN: r275457
2019-09-06 12:54:19 +00:00
Nathan Sidwell
aff342a3c1 [PATCH] Deprecate -frepo option.
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00379.html
	PR c++/91125
	* cp-tree.h (IDENTIFIER_REPO_CHOSEN, DECL_REPO_AVAILABLE_P): Delete.
	(struct lang_decl_base): Remove repo_available_p.
	* decl.c (duplicate_decls): Don't copy DECL_REPO_AVAILABLE_P.

From-SVN: r275456
2019-09-06 12:51:44 +00:00
Nathan Sidwell
c0c2096fba [C++ PATCH] Reserve a decl_lang bit
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00365.html
	Reserve TREE_LANG_FLAG_3 for modules.
	gcc/cp/
	* cp-tree.h (DECL_CONSTRUCTION_VTABLE_P): Delete.
	(DECL_NON_TRIVIALLY_INITIALIZED_P): Move to TREE_LANG_FLAG_6.
	* class.c (build_ctor_vtbl_group): Don't set
	DECL_CONSTRUCTION_VTABLE_P.
	* decl2.c (determine_visibility_from_class): Don't check
	DECL_CONSTRUCTION_VTABLE_P anymore.

From-SVN: r275455
2019-09-06 11:22:09 +00:00
Florian Weimer
3c086f8dec Fix GCC_LINUX_FUTEX to work with C99 compilers
Without this change, libstdc++ is built without futex symbols if GCC
rejects implicit function declarations by default.

From-SVN: r275454
2019-09-06 12:27:36 +02:00
Richard Earnshaw
7d99a5b62c [arm] Add missing predicated-short-it variants to cmp_and and cmp_ior patterns
The cmp_and and cmp_ior patterns were missing a couple of short-it
variants for thumb2, where the comparisons are all using registers
some of which were HI_REGS.

	* config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with
	high regs.
	(cmp_ior): Likewise.

From-SVN: r275453
2019-09-06 09:58:14 +00:00
Martin Liska
973159f219 Improve documentation of for statement.
2019-09-06  Martin Liska  <mliska@suse.cz>

	* doc/match-and-simplify.texi: Separate tuples with ;.

From-SVN: r275452
2019-09-06 09:38:28 +00:00
Martin Liska
67f6e64994 Remove support for repo files (PR c++/91125).
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* Makefile.in: Remove tlink.o.
	* collect2.c (do_link): New function isolated
	from do_tlink.
	(main): Use.
	* collect2.h (do_tlink): Remove declaration of do_tlink.
	* doc/extend.texi: Remove documentation of -frepo.
	* doc/invoke.texi: Likewise.
	* doc/sourcebuild.texi: Remove cleanup-repo-files.
	* tlink.c: Remove.
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* c-common.c: Remove definition of flag_use_repository.
	* c-common.h: Likewise.
	* c-opts.c (c_common_handle_option):
	Do not handle OPT_frepo option.
	* c.opt: Mark the option with Deprecated.
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* Make-lang.in: Remove repo.o.
	* config-lang.in: Likewise.
	* cp-tree.h (init_repo): Remove declarations
	of repo-related functions.
	(repo_emit_p): Likewise.
	(repo_export_class_p): Likewise.
	(finish_repo): Likewise.
	* decl2.c (import_export_class): Always
	set -1 value/
	(mark_needed): Remove -frepo from comment.
	(import_export_decl): Similarly here.
	(c_parse_final_cleanups): Remove call of finish_repo.
	* lex.c (cxx_init): Remove call to init_repo.
	* optimize.c (can_alias_cdtor): Remove dead condition.
	* pt.c (push_template_decl_real): Update comment.
	(instantiate_decl): Remove dead code used for -frepo.
	* repo.c: Remove.
2019-09-06  Martin Liska  <mliska@suse.cz>

	PR c++/91125
	* g++.dg/parse/repo1.C: Remove.
	* g++.dg/rtti/repo1.C: Remove.
	* g++.dg/template/repo1.C: Remove.
	* g++.dg/template/repo10.C: Remove.
	* g++.dg/template/repo11.C: Remove.
	* g++.dg/template/repo2.C: Remove.
	* g++.dg/template/repo3.C: Remove.
	* g++.dg/template/repo4.C: Remove.
	* g++.dg/template/repo5.C: Remove.
	* g++.dg/template/repo6.C: Remove.
	* g++.dg/template/repo7.C: Remove.
	* g++.dg/template/repo8.C: Remove.
	* g++.dg/template/repo9.C: Remove.
	* g++.old-deja/g++.pt/instantiate4.C: Remove.
	* g++.old-deja/g++.pt/instantiate6.C: Remove.
	* g++.old-deja/g++.pt/repo1.C: Remove.
	* g++.old-deja/g++.pt/repo2.C: Remove.
	* g++.old-deja/g++.pt/repo3.C: Remove.
	* g++.old-deja/g++.pt/repo4.C: Remove.
	* lib/g++.exp: Remove removal of repo files.
	* lib/gcc-dg.exp: Likewise.
	* lib/obj-c++.exp: Likewise.

From-SVN: r275450
2019-09-06 06:58:42 +00:00
GCC Administrator
ebd247d4b3 Daily bump.
From-SVN: r275449
2019-09-06 00:16:38 +00:00
Jakub Jelinek
36ec3f57d3 RISC-V: Fix bad insn splits with paradoxical subregs.
Shifting by more than the size of a SUBREG_REG doesn't work, so we either
need to disable splits if an input is paradoxical, or else we need to
generate a clean temporary for intermediate results.

Jakub wrote the first version of this patch, so gets primary credit for it.

	gcc/
	PR target/91635
	* config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2,
	extend<SHORT:mode><SUPERQI:mode>2): Don't split if
	paradoxical_subreg_p (operands[0]).
	(*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and
	use as intermediate value.

	gcc/testsuite/
	PR target/91635
	* gcc.c-torture/execute/pr91635.c: New test.
	* gcc.target/riscv/shift-shift-4.c: New test.
	* gcc.target/riscv/shift-shift-5.c: New test.

Co-Authored-By: Jim Wilson <jimw@sifive.com>

From-SVN: r275444
2019-09-05 13:32:55 -07:00
Harald Anlauf
3c0f026505 re PR fortran/91496 (!GCC$ directives error if mistyped or unknown)
2019-09-05  Harald Anlauf  <anlauf@gmx.de>

	PR fortran/91496
	* parse.c (parse_executable): Improve error messages for
	improperly placed pragmas not preceeding a loop.

	PR fortran/91496
	* gfortran.dg/directive_unroll_5.f90: Adjust error message.

From-SVN: r275442
2019-09-05 20:13:00 +00:00
Steven G. Kargl
0e521c6461 re PR fortran/91660 (Missing error on invalid type declaration)
2019-09-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91660
	* decl.c (gfc_match_decl_type_spec): Improve and restore error
	message for malformed types-spec.

2019-09-05  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/91660
	* gfortran.dg/pdt_4.f03: Fix invalid code.
	* gfortran.dg/pr91660_1.f90: New test.
	* gfortran.dg/pr91660_2.f90: Ditto.

From-SVN: r275426
2019-09-05 18:14:34 +00:00
Marek Polacek
bb64bef659 PR c++/91644 - ICE with constinit in function template.
* decl.c (start_decl): Call retrofit_lang_decl for constinit variables.
	* pt.c (tsubst_expr): Pass LOOKUP_CONSTINIT down to cp_finish_decl for
	constinit variables.

	* g++.dg/cpp2a/constinit13.C: New test.

From-SVN: r275421
2019-09-05 15:37:52 +00:00
Andrew Stubbs
b2c113aed6 Global GCN instructions need nops too.
2019-09-05  Andrew Stubbs  <ams@codesourcery.com>

	gcc/
	* config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store.
	(sync_compare_and_swap<mode>_insn): Likewise.

From-SVN: r275414
2019-09-05 14:21:28 +00:00
Jonathan Wakely
b5c433ce11 Improve precondition checks for std::span
* doc/xml/manual/status_cxx2020.xml: Update status for P0122R7 and
	P1024R3. Remove entry for P0920R2.
	* include/std/span  (__cpp_lib_span): Change value.
	(__extent_storage, __extent_storage<dynamic_extent>): Remove default
	constructor.
	(span): Replace __extent_storage base class with data member.
	(span::_S_subspan_extent): New function.
	(span::empty()): Add nodiscard attribute.
	(span::front, span::back, span::operator[]): Check preconditions.
	(span::first, span::last, span::subspan): Add noexcept. Improve
	precondition checks (LWG 3103).
	(get): Remove redundant condition from static_assert.
	(tuple_element<I, span<T, E>>): Fix static_assert message and simplify.
	(as_writable_bytes): Add inline specifier.
	* include/std/version (__cpp_lib_span): Change value.
	* testsuite/23_containers/span/back_neg.cc: Remove stray semi-colon.
	* testsuite/23_containers/span/front_neg.cc: Likewise.
	* testsuite/23_containers/span/index_op_neg.cc: Likewise.
	* testsuite/23_containers/span/last_neg.cc: Improve test.
	* testsuite/23_containers/span/subspan_neg.cc: Likewise.
	* testsuite/23_containers/span/1.cc: New test.
	* testsuite/23_containers/span/2.cc: New test.
	* testsuite/23_containers/span/back_assert_neg.cc: New test.
	* testsuite/23_containers/span/first_2_assert_neg.cc: New test.
	* testsuite/23_containers/span/first_assert_neg.cc: New test.
	* testsuite/23_containers/span/first_neg.cc: New test.
	* testsuite/23_containers/span/front_assert_neg.cc: New test.
	* testsuite/23_containers/span/index_op_assert_neg.cc: New test.
	* testsuite/23_containers/span/last_2_assert_neg.cc: New test.
	* testsuite/23_containers/span/last_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_2_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_3_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_4_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_5_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_6_assert_neg.cc: New test.
	* testsuite/23_containers/span/subspan_assert_neg.cc: New test.

From-SVN: r275411
2019-09-05 14:48:33 +01:00
Bernd Edlinger
55e8f926f2 re PR target/91615 ([armeb] ICEs since r274986)
2019-09-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        PR middle-end/91615
        * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF
        without movmisalign optab.

From-SVN: r275409
2019-09-05 13:40:17 +00:00
Jakub Jelinek
728347922a re PR middle-end/91001 (internal compiler error: in extract_insn, at recog.c:2310)
PR middle-end/91001
	PR middle-end/91105
	PR middle-end/91106
	* calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR
	types, use type of their first field instead of type of
	args[i].tree_value.

	* gcc.c-torture/compile/pr91001.c: New test.

From-SVN: r275408
2019-09-05 15:30:23 +02:00
Richard Biener
5a4c9a4931 re PR rtl-optimization/91656 (wrong code with -fgcse-after-reload)
2019-09-05  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/91656
	* postreload-gcse.c (record_last_mem_set_info): Revert addition
	of early out.

	* gcc.dg/torture/pr91656-1.c: New testcase.
	* gcc.dg/torture/pr91656-2.c: Likewise.
	* gcc.dg/torture/pr91656-3.c: Likewise.

From-SVN: r275406
2019-09-05 13:23:28 +00:00
Nathan Sidwell
b101938436 [C++ PATCH] vtable decl marking
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg02063.html
	* cp-tree.h (DECL_VTABLE_OR_VTT_P): Forward to DECL_VIRTUAL_P.

From-SVN: r275404
2019-09-05 11:31:08 +00:00
JeanHeyd Meneide
95e9a7616d Implement std::span for C++20
2019-09-05  JeanHeyd Meneide  <phdofthehouse@gmail.com>

	* include/Makefile.am: Add <span> header.
	* include/Makefile.in: Regenerate.
	* include/bits/range_access.h (__adl_begin, __adl_end, __adl_cbegin)
	(__adl_cend, __adl_rbegin, __adl_rend, __adl_crbegin, __adl_crend)
	(__adl_data, __adl_cdata, __adl_size, __adl_empty, __adl_to_address):
	New functions for performing argument-dependent lookup of range
	customization points.
	* include/bits/stl_iterator.h (__normal_iterator): Add
	_GLIBCXX20_CONSTEXPR to all functions.
	* include/std/span: New header.
	* include/std/version (__cpp_lib_span): Define feature test macro.
	* testsuite/23_containers/span/contiguous_range_neg.cc: New test.
	* testsuite/23_containers/span/everything.cc: New test.
	* testsuite/23_containers/span/get_neg.cc: New test.
	* testsuite/23_containers/span/last_neg.cc: New test.
	* testsuite/23_containers/span/subspan_neg.cc: New test.
	* testsuite/23_containers/span/tuple_element_dynamic_neg.cc: New test.
	* testsuite/23_containers/span/tuple_element_oob_neg.cc: New test.
	* testsuite/23_containers/span/tuple_size_neg.cc: New test.

From-SVN: r275403
2019-09-05 12:27:45 +01:00
Nathan Sidwell
056f95ec95 [preprocessor/91639] #includes at EOF
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg00280.html
	libcpp/
	PR preprocessor/91639
	* directives.c (do_include_common): Tell lexer we're a #include.
	* files.c (_cpp_stack_file): Lexer will have always incremented.
	* internal.h (struct cpp_context): Extend in_directive's
	semantics.
	* lex.c (_cpp_lex_direct): Increment line for final \n when lexing
	for an ISO #include.
	* line-map.c (linemap_line_start): Remember if we overflowed.

	gcc/testsuite/
	PR preprocessor/91639
	* c-c++-common/cpp/pr91639.c: New.
	* c-c++-common/cpp/pr91639-one.h: New.
	* c-c++-common/cpp/pr91639-two.h: New.

From-SVN: r275402
2019-09-05 11:23:48 +00:00
Richard Biener
e7414688f1 re PR middle-end/90501 (ICE: address taken, but ADDRESSABLE bit not set)
2019-09-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/90501
	* tree-inline.c (declare_return_variable): Mark the return
	slot as addressable after building an address of it.

From-SVN: r275401
2019-09-05 11:02:43 +00:00
Arnaud Charlet
0fd3ee9234 install.texi: Update and clarify requirements to build GNAT.
* doc/install.texi: Update and clarify requirements to build GNAT.

From-SVN: r275400
2019-09-05 11:51:38 +02:00
Richard Sandiford
359f25f8e2 Force IFN_LOAD/STORE_LANES operands to be memory (PR91577)
This patch uses the workaround Richi suggested in the PR: make
discover_nonconstant_array_refs mark the source of an IFN_LOAD_LANES
call and the destination of an IFN_STORE_LANES call as addressable,
so that they don't end up being REG rtxes during expansion.

I had to move the discover_nonconstant_array_refs call outside the
currently_expanding_to_rtl block since otherwise mark_addressable
just queues the decision for later.

2019-09-05  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	PR middle-end/91577
	* cfgexpand.c (discover_nonconstant_array_refs): Force the source
	of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
	call to be in memory.
	(pass_expand::execute): Call discover_nonconstant_array_refs before
	setting currently_expanding_to_rtl.

gcc/testsuite/
	PR middle-end/91577
	* gfortran.dg/pr91577.f90: New test, taken from temporary_1.f90.

From-SVN: r275399
2019-09-05 07:50:07 +00:00
Jonathan Wakely
efd9a01b59 Remove broken URL from libstdc++ manual
The URL for the "What Are Allocators Good For?" article has been a
recurring source of problems. It moved from the C/C++ Users Journal
website to the Dr Dobbs site after CUJ shut down, and the original
domain changed hands, leaving old links pointing to nefarious sites.

Now the URL to the copy on drdobbs.com no longer works either and I
can't find a (legal) copy of the article online. The simplest solution
is to remove the URL.

	* doc/xml/manual/allocator.xml: Remove URL for bibliography entry.
	* doc/html/*: Regenerate.

From-SVN: r275398
2019-09-05 08:46:00 +01:00
Janne Blomqvist
0eaee4abb1 Improve PRNG jumping when using threads
Currently, when a new thread needs to use the RANDOM_NUMBER intrinsic,
the per-thread PRNG state is initialized by copying the master state
and then jumping forwards N*2**128 entries in the stream so that the
PRNG streams for different threads don't alias each other, where N is
the number of threads that have so far initialized the PRNG.

With this patch the master state itself is jumped forwards once each
time a new thread initializes the PRNG, thus obviating the need to
jump through all the N-1 previous streams. Effectively turning an O(N)
algorithm into an O(1) one.

Regtested on x86_64-pc-linux-gnu.

libgfortran/ChangeLog:

2019-09-05  Janne Blomqvist  <jb@gcc.gnu.org>

	* intrinsics/random.c (master_init): Replace with
	master_state.init.
	(njumps): Remove variable.
	(master_state): Make instance of struct prng_state.
	(init_rand_state): When jumping, update the master_state once
	instead of keeping track of how many jumps need to be done.
	(SZU64): Modify to handle new master_state.
	(SZ): Likewise.
	(random_seed_i4): Likewise.
	(random_seed_i8): Likewise.

From-SVN: r275397
2019-09-05 09:59:55 +03:00
Ian Lance Taylor
f44526e367 re PR tree-optimization/91663 (split function can be re-inlined, leaving bad stack trace)
PR tree-optimization/91663
	* go-lang.c (go_langhook_post_options): Clear
	flag_partial_inlining.

From-SVN: r275396
2019-09-05 04:12:30 +00:00
GCC Administrator
7d394f772f Daily bump.
From-SVN: r275395
2019-09-05 00:16:27 +00:00
Steven G. Kargl
4844a5cb8c re PR fortran/91650 (ICE in gfc_conv_constant_to_tree, at fortran/trans-const.c:370)
2019-09-04  Steven G. Kargl  <kargl@gcvc.gnu.org>

	PR fortran/91650
	* io.c (match_io_element):  An output IO list item cannot be a BOZ.

2019-09-04  Steven G. Kargl  <kargl@gcvc.gnu.org>

	PR fortran/91650
	* gfortran.dg/pr91650_1.f90: New test.
	* gfortran.dg/pr91650_2.f90: Ditto.

From-SVN: r275391
2019-09-04 23:21:12 +00:00
Mike Crowe
ad4d1d21ad PR libstdc++/41861 Add full steady_clock support to condition_variable
The pthread_cond_clockwait function is available in glibc since the 2.30
release. If this function is available in the C library it can be used
to fix PR libstdc++/41861 by supporting std::chrono::steady_clock
properly with std::condition_variable.

This means that code using std::condition_variable::wait_for or
std::condition_variable::wait_until with std::chrono::steady_clock is no
longer subject to timing out early or potentially waiting for much
longer if the system clock is warped at an inopportune moment.

If pthread_cond_clockwait is available then std::chrono::steady_clock is
deemed to be the "best" clock available which means that it is used for
the relative wait_for calls and absolute wait_until calls using
user-defined clocks. Calls explicitly using std::chrono::system_clock
continue to use CLOCK_REALTIME via __gthread_cond_timedwait.

If pthread_cond_clockwait is not available then
std::chrono::system_clock is deemed to be the "best" clock available
which means that the previous suboptimal behaviour remains.

2019-09-04  Mike Crowe  <mac@mcrowe.com>

	PR libstdc++/41861
	* acinclude.m4 (GLIBCXX_CHECK_PTHREAD_COND_CLOCKWAIT): Check for new
	pthread_cond_clockwait function.
	* configure.ac: Use GLIBCXX_CHECK_PTHREAD_COND_CLOCKWAIT.
	* configure: Regenerate.
	* config.h.in: Regenerate.
	* include/std/condition_variable: (condition_variable): Rename
	__steady_clock_t typedef and add system_clock. Change __clock_t to be
	a typedef for the preferred clock to convert arbitrary other clocks to.
	[_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT] (wait_until): Add a steady_clock
	overload.
	(wait_until): Change __clock_t overload to use system_clock.
	[_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT] (__wait_until_impl): Add
	steady_clock overload that calls pthread_cond_clockwait.
	(__wait_until_impl): Change __clock_t overload to use system_clock.
	(condition_variable_any) [_GLIBCXX_USE_PTHREAD_COND_CLOCKWAIT]: Use
	steady_clock for __clock_t if pthread_cond_clockwait is available.

From-SVN: r275390
2019-09-04 23:43:29 +01:00
Mike Crowe
76e0dd66c8 Add user-defined clock to libstdc++ condition_variable tests
2019-09-04  Mike Crowe  <mac@mcrowe.com>

	* testsuite/30_threads/condition_variable/members/2.cc (test01):
	Parameterise so that test can be run against an arbitrary clock.
	(main): Test using std::chrono::steady_clock and a user-defined
	clock in addition to the previous std::chrono::system_clock.
	* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.

From-SVN: r275389
2019-09-04 23:43:20 +01:00