Commit Graph

152480 Commits

Author SHA1 Message Date
Gerald Pfeifer a98cf819ee * config.guess: Import latest from upstream.
From-SVN: r246258
2017-03-18 18:22:06 +00:00
Gerald Pfeifer 9826d1a38a MAINTAINERS (Write After Approval): Remove entries that are already covered under Reviewers.
* MAINTAINERS (Write After Approval): Remove entries that are
	already covered under Reviewers.

From-SVN: r246257
2017-03-18 13:04:43 +00:00
Paul Thomas 91d2c04ced re PR fortran/79676 ([submodules] Compilation/linking error when module procedures PRIVATE)
2017-03-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79676
	* module.c (mio_symbol_attribute): Remove reset of the flag
	'no_module_procedures'.
	(check_for_module_procedures): New function. Move declaration
	of 'no_module_procedures' to above it.
	(gfc_dump_module): Traverse namespace calling new function.

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

	PR fortran/79676
	* gfortran.dg/submodule_28.f08 : New test.

From-SVN: r246256
2017-03-18 12:38:02 +00:00
Paul Thomas c7e4107b53 re PR fortran/71838 (ICE with OpenCoarrays on submodule)
2017-03-18  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/71838
	* symbol.c (check_conflict): A dummy procedure in a submodule,
	module procedure is not an error.
	(gfc_add_flavor): Ditto.

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

	PR fortran/71838
	* gfortran.dg/submodule_26.f08 : New test.
	* gfortran.dg/submodule_27.f08 : New test.

From-SVN: r246255
2017-03-18 11:53:53 +00:00
Gerald Pfeifer 251daa19a4 install.texi (Specific): Remove old requirement for binutils 2.13.
* doc/install.texi (Specific) <arm-*-eabi>: Remove old
	requirement for binutils 2.13.

From-SVN: r246254
2017-03-18 09:43:47 +00:00
Jim Wilson 2d6568bdcb Fix aarch64 bootstrap compare failure.
gcc/
	* combine.c (try_combine): Delete redundant i1 test.  Call
	prev_nonnote_nondebug_insn instead of prev_nonnote_insn.

From-SVN: r246253
2017-03-17 22:37:52 -07:00
GCC Administrator a2bb525722 Daily bump.
From-SVN: r246252
2017-03-18 00:16:14 +00:00
Marek Polacek 31dc71a83b * c-parser.c: Add C11 references.
From-SVN: r246249
2017-03-17 21:50:16 +00:00
Thomas Koenig dba937c321 re PR libfortran/79956 (many new -Wmaybe-uninitialized warnings with bootstrap-O3)
2017-03-17  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR libfortran/79956
	* m4/reshape.m4 (reshape_'rtype_ccode`):  Correct use
	of GFC_ASSERT.
	* generated/reshape_c10.c: Regenerated.
	* generated/reshape_c16.c: Regenerated.
	* generated/reshape_c4.c: Regenerated.
	* generated/reshape_c8.c: Regenerated.
	* generated/reshape_i16.c: Regenerated.
	* generated/reshape_i4.c: Regenerated.
	* generated/reshape_i8.c: Regenerated.
	* generated/reshape_r10.c: Regenerated.
	* generated/reshape_r16.c: Regenerated.
	* generated/reshape_r4.c: Regenerated.
	* generated/reshape_r8.c: Regenerated.

From-SVN: r246248
2017-03-17 21:27:08 +00:00
Jonathan Wakely d951e75dfe Fix alignment bugs in std::codecvt_utf16
* src/c++11/codecvt.cc (range): Add non-type template parameter and
	define oerloaded operators for reading and writing code units.
	(range<Elem, false>): Define partial specialization for accessing
	wide characters in potentially unaligned byte ranges.
	(ucs2_span(const char16_t*, const char16_t*, ...))
	(ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters
	to range<const char16_t, false> in order to avoid unaligned reads.
	(__codecvt_utf16_base<char16_t>::do_out)
	(__codecvt_utf16_base<char32_t>::do_out)
	(__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for
	unaligned data to avoid unaligned writes.
	(__codecvt_utf16_base<char16_t>::do_in)
	(__codecvt_utf16_base<char32_t>::do_in)
	(__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return
	error if there are unprocessable trailing bytes.
	(__codecvt_utf16_base<char16_t>::do_length)
	(__codecvt_utf16_base<char32_t>::do_length)
	(__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type
	range<const char16_t, false> to span functions.
	* testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test.

From-SVN: r246245
2017-03-17 19:28:05 +00:00
Jason Merrill d1a73b0bae PR c++/78345 - ICE initializing array from lambda.
* init.c (build_aggr_init): Check array initializer.
	(build_vec_init): Check the type of a CONSTRUCTOR.

From-SVN: r246244
2017-03-17 14:56:22 -04:00
Palmer Dabbelt 3b82a32c3e RISC-V documentation cleanups
A recent mailing list post about install.texi cleanup suggested I take a
look at ours, and there were a few problems:

 * No table of contents entries
 * Not alphabetically ordered
 * Missing a note about requiring binutils-2.28

gcc/ChangeLog:

2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com

        * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
        riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
        contents.
        <riscv64-*-elf>: Re-arrange section
        <riscv32-*-elf>: Add a note about requiring binutils 2.28.
        <riscv32-*-linux>: Likewise.
        <riscv64-*-elf>: Likewise
        <riscv64-*-linux>: Likewise.

From-SVN: r246243
2017-03-17 18:49:34 +00:00
Jason Merrill c7ec585d78 PR c++/80073 - C++17 ICE with virtual base.
* decl.c (xref_basetypes): Also check for indirect vbases.

From-SVN: r246242
2017-03-17 14:42:09 -04:00
Jerry DeLisle 2da189b6ea re PR fortran/79841 (Inconsistent diagnostics in fortran/openmp.c, function check_symbol_not_pointer)
2017-03-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/79841
	* openmp.c (check_symbol_not_pointer): Adjust diagnostics.

From-SVN: r246241
2017-03-17 18:21:08 +00:00
Richard Earnshaw d1132c1bc5 [aarch64] Fix typo in aarch64.opt (dummping -> dumping).
PR target/80052
	* aarch64.opt(verbose-cost-dump): Fix typo.

From-SVN: r246229
2017-03-17 17:05:23 +00:00
Pat Haugen d8fe28be76 re PR target/79951 (ICE in extract_insn, at recog.c:2311 on ppc64le with -mno-cmpb)
PR target/79951
	* config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
	for VECTOR_UNIT_VSX_P (<MODE>mode) too.
	* gcc.target/powerpc/pr79951.c: New.

From-SVN: r246228
2017-03-17 16:42:29 +00:00
Bernd Schmidt 6b4c3c7b23 reload.c (find_reloads): When reloading a nonoffsettable address...
* reload.c (find_reloads): When reloading a nonoffsettable address,
	use RELOAD_OTHER for it and its address reloads.

From-SVN: r246227
2017-03-17 15:39:28 +00:00
Bernd Schmidt 4a17943d36 re PR rtl-optimization/79910 (wrong code with -O -fweb)
PR rtl-optimization/79910
	* combine.c (record_used_regs): New static function.
	(try_combine): Handle situations where there is an additional
	instruction between I2 and I3 which needs to have a LOG_LINK
	updated.

	PR rtl-optimization/79910
	* gcc.dg/torture/pr79910.c: New test.

From-SVN: r246226
2017-03-17 09:10:13 -06:00
Jeff Law 7f166d9447 re PR tree-optimization/71437 (Performance regression after r235817)
PR tree-optimization/71437
	* tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
	conditional in the hash table first.
	(vrp_dom_walker::before_dom_children): Extract condition from
	ASSERT_EXPR.  Record condition, its inverion and any implied
	conditions as well.

	PR tree-optimization/71437
	* gcc.dg/tree-ssa/pr71437.c: New test.
	* gcc.dg/tree-ssa/20040305-1.c: Test earlier dump.
	* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Adjust for jump threads
	now caught by VRP, but which were previously caught by DOM.

From-SVN: r246225
2017-03-17 09:01:56 -06:00
Marek Polacek faec5f2473 re PR tree-optimization/80079 (Conditional jump or move depends on uninitialised value(s): gimple-ssa-store-merging.c:768)
PR tree-optimization/80079
	* gimple-ssa-store-merging.c (class pass_store_merging): Initialize
	m_stores_head.

Co-Authored-By: Markus Trippelsdorf <markus@trippelsdorf.de>

From-SVN: r246224
2017-03-17 13:14:42 +00:00
Richard Biener 12c4f7dcaf re PR c++/80075 (ICE: "statement marked for throw, but doesn’t" with -fnon-call-exceptions)
2017-03-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/80075
	* tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
	Properly verify the LHS before the RHS possibly claims to be
	handled.
	(stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
	do not throw.

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

From-SVN: r246223
2017-03-17 12:48:56 +00:00
Martin Jambor 5c7d37de41 Document -fipa-vrp
2017-03-17  Martin Jambor  <mjambor@suse.cz>

	* doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
	(List of -O2 options): Likewise.
	(-fipa-bit-cp): Replace "ipa" with "interprocedural."
	(-fipa-vrp) New.

From-SVN: r246221
2017-03-17 13:34:27 +01:00
Tom de Vries 39653b82d8 Print bug url for gcov-dump --help
2017-03-17  Tom de Vries  <tom@codesourcery.com>

	* gcov-dump.c (print_usage): Print bug_report_url.

From-SVN: r246219
2017-03-17 12:14:50 +00:00
Richard Biener d59b72533f re PR other/80050 (gcc/genmatch.c: PVS-Studio: V590)
2017-03-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/80050
	* genmatch.c (parser::next): Remove pointless check for CPP_EOF.
	(parser::peek): Likewise.

From-SVN: r246218
2017-03-17 11:04:00 +00:00
Richard Biener 61c81999bf re PR tree-optimization/80048 (gcc/sese.c: PVS-Studio: Improper Release of Memory Before Removing Last Reference (CWE-401))
2017-03-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/80048
	* sese.c (free_sese_info): Properly release rename_map and
	copied_bb_map elements.

From-SVN: r246217
2017-03-17 11:03:32 +00:00
GCC Administrator 7c1bb24d4f Daily bump.
From-SVN: r246216
2017-03-17 00:16:19 +00:00
Alexandre Oliva 50b6d6761b stabilize store merging
Don't let pointer randomization change the order in which we process
store chains.  This may cause SSA_NAMEs to be released in different
order, and if they're reused later, they may cause differences in SSA
partitioning, leading to differences in expand, and ultimately to
different code.

bootstrap-debug-lean (-fcompare-debug) on i686-linux-gnu has failed in
haifa-sched.c since r245196 exposed the latent ordering problem in
store merging.  In this case, the IR differences (different SSA names
selected for copies in out-of-SSA, resulting in some off-by-one
differences in pseudos) were not significant enough to be visible in
the compiler output.


for  gcc/ChangeLog

	* gimple-ssa-store-merging.c (struct imm_store_chain_info):
	Add linked-list forward and backlinks.  Insert on
	construction, remove on destruction.
	(class pass_store_merging): Add m_stores_head field.
	(pass_store_merging::terminate_and_process_all_chains):
	Iterate over m_stores_head list.
	(pass_store_merging::terminate_all_aliasing_chains):
	Likewise.
	(pass_store_merging::execute): Check for debug stmts first.
	Push new chains onto the m_stores_head stack.

From-SVN: r246213
2017-03-16 23:31:01 +00:00
Jason Merrill 2e92d7ada9 * decl.c (start_enum): std::byte aliases anything.
From-SVN: r246212
2017-03-16 17:16:45 -04:00
Jason Merrill 85e653c925 * init.c (cpp_init_builtins): Update __cplusplus for C++17.
From-SVN: r246211
2017-03-16 17:16:39 -04:00
Jason Merrill fbd603c43d re PR c++/79797 (ICE with NSDMI, this pointer and constexpr)
PR c++/79797
	* constexpr.c (lookup_placeholder): Tweak.

From-SVN: r246210
2017-03-16 17:16:33 -04:00
Michael Meissner 207f34233c re PR target/71294 (ICE in gen_add2_insn, at optabs.c:4442 on powerpc64le-linux)
[gcc]
2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/71294
	* config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
	SPLAT operation on ISA 2.07 64-bit systems that have direct move,
	but no MTVSRDD support, by doing MTVSRD and XXPERMDI.

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

	PR target/71294
	* g++.dg/pr71294.C: New test.

From-SVN: r246209
2017-03-16 20:09:21 +00:00
Jeff Law c87550223a re PR tree-optimization/71437 (Performance regression after r235817)
PR tree-optimization/71437
	* tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
	member function.  Implementation moved into after_dom_children
	member function and into the threader's thread_outgoing_edges
	function.
	(dom_opt_dom_walker::after_dom_children): Simplify by moving
	some code into new thread_outgoing_edges.
	* tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
	definition.  Simplify marker handling (do it here).   Assume we always
	have the available expression and the const/copies tables.
	(thread_outgoing_edges): New function extracted from tree-ssa-dom.c
	and tree-vrp.c
	* tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
	* tree-vrp.c (equiv_stack): No longer file scoped.
	(vrp_dom_walker): New class.
	(vrp_dom_walker::before_dom_children): New member function.
	(vrp_dom_walker::after_dom_children): Likewise.
	(identify_jump_threads):  Setup domwalker.  Use it rather than
	walking edges in a random order by hand.  Simplify setup/finalization.
	(finalize_jump_threads): Remove.
	(vrp_finalize): Do not call identify_jump_threads here.
	(execute_vrp): Do it here instead and call thread_through_all_blocks
	here too.

From-SVN: r246208
2017-03-16 13:21:33 -06:00
Jeff Law 8d7437be47 re PR tree-optimization/71437 (Performance regression after r235817)
PR tree-optimization/71437
	* tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
	callers changed.
	(simplify_stmt_for_jump_threading): Add basic_block argument.  All
	callers changed.
	(lhs_of_dominating_assert): Moved from here into tree-vrp.c.
	(dom_opt_dom_walker::thread_across_edge): Remove
	handle_dominating_asserts argument.  All callers changed.
	(record_temporary_equivalences_from_stmts_at_dest): Corresponding
	changes.  Remove calls to lhs_of_dominating_assert.  Other
	uses of handle_dominating_asserts turn into unconditional code
	(simplify_control_stmt_condition_1): Likewise.
	(simplify_control_stmt_condition): Likewise.
	(thread_through_normal_block, thread_across_edge): Likewise.
	* tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
	* tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
	object if it is not an SSA_NAME.
	(simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
	before calling into the VRP specific simplifiers.
	(identify_jump_threads): Remove handle_dominating_asserts
	argument.

From-SVN: r246207
2017-03-16 13:21:23 -06:00
Segher Boessenkool 9fc900af68 Fix tree-prof/pr66295.c
This testcase can only ever be built on x86 (it needs the "avx*"
attributes).  This patch skips the test elsewhere.


gcc/testsuite/
	* gcc.dg/tree-prof/pr66295.c: Skip unless on an x86 target.

From-SVN: r246206
2017-03-16 19:18:58 +01:00
Jonathan Wakely e363c939cb PR libstdc++/79980 fix target type of cast
PR libstdc++/79980
	* src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type.

From-SVN: r246205
2017-03-16 17:22:47 +00:00
Jakub Jelinek e711928b48 re PR fortran/80010 (diagnostics: typo $!)
PR fortran/80010
	* parse.c (gfc_ascii_statement): Use !$ACC for ST_OACC_ATOMIC
	and ST_OACC_END_ATOMIC, instead of !ACC.
	* trans-decl.c (finish_oacc_declare): Use !$ACC instead of $!ACC.
	* openmp.c (gfc_match_oacc_declare, gfc_match_oacc_wait,
	gfc_resolve_oacc_declare): Likewise.

	* gfortran.dg/goacc/asyncwait-3.f95: Adjust expected diagnostic.

From-SVN: r246204
2017-03-16 17:50:27 +01:00
Jakub Jelinek c05c238081 re PR fortran/79886 (ICE in pp_format, at pretty-print.c:681)
PR fortran/79886
	* tree-diagnostic.c (default_tree_printer): No longer static.
	* tree-diagnostic.h (default_tree_printer): New prototype.
fortran/
	* error.c (gfc_format_decoder): Rename plus argument to set_locus,
	remove ATTRIBUTE_UNUSED from all arguments, call default_tree_printer
	if not a Fortran specific spec.
	* trans-io.c: Include options.h.
	(gfc_build_st_parameter): Temporarily disable -Wpadded around layout
	of artificial IO data structures.
testsuite/
	* gfortran.dg/pr79886.f90: New test.

From-SVN: r246203
2017-03-16 17:27:08 +01:00
Jonathan Wakely a4c687d64b PR libstdc++/80041 fix codecvt_utf16<wchar_t> to use UTF-16 not UTF-8
PR libstdc++/80041
	* src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out)
	(__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to
	char16_t to work with UTF-16 instead of UTF-8.
	* testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test.

From-SVN: r246202
2017-03-16 15:28:02 +00:00
Jonathan Wakely 516231de73 Fix encoding() and max_length() values for codecvt facets
* src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>)
	(codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>)
	(__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>)
	(__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>)
	(__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>)
	(__codecvt_utf8_utf16_base<char32_t>)
	(__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and
	do_max_length() return values.
	* testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test.
	* testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test.
	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test.

From-SVN: r246201
2017-03-16 15:27:57 +00:00
Jonathan Wakely bcd682e1fa PR libstdc++/79980 fix BOM detection, maxcode checks, UCS2 handling
PR libstdc++/79980
	* include/bits/locale_conv.h (__do_str_codecvt): Set __count on
	error path.
	* src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads
	for manipulating codecvt_mode values.
	(read_utf16_bom): Compare input to BOM constants instead of integral
	constants that depend on endianness.  Take mode parameter by
	reference and adjust it, to distinguish between no BOM present and
	UTF-16BE BOM present.
	(ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom.
	(surrogates): New enumeration type.
	(utf16_in, utf16_out): Add surrogates parameter to choose between
	UTF-16 and UCS2 behaviour.
	(utf16_span, ucs2_span): Use std::min not std::max.
	(ucs2_out): Use std::min not std::max.  Disallow surrogate pairs.
	(ucs2_in): Likewise. Adjust calls to read_utf16_bom.
	* testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test.
	* testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test.

From-SVN: r246200
2017-03-16 15:27:51 +00:00
Jonathan Wakely 02e12bda2d PR libstdc++/79511 fix endianness of UTF-16 data
PR libstdc++/79511
	* src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff
	as a surrogate pair.
	(__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness
	for internal representation.
	(__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise.
	* testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test.

From-SVN: r246199
2017-03-16 15:27:45 +00:00
Jonathan Wakely 8d85abab44 PR libstdc++/80064 make heap algorithms work with function types
PR libstdc++/80064
	* include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap)
	(pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with
	invalid instantiations using function types for _Compare argument.
	* testsuite/25_algorithms/make_heap/80064.cc: New test.

From-SVN: r246197
2017-03-16 14:32:07 +00:00
Jonathan Wakely 7acc534977 PR libstdc++/67440 make pretty printers work with GDB 7.6 again
PR libstdc++/67440
	* python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
	for GDB 7.6 compatibility, use gdb.Type.unqualified instead.

From-SVN: r246196
2017-03-16 14:11:48 +00:00
Jonathan Wakely 1c4df66b56 Fix typo and replace non-breaking spaces in libstdc++-v3/ChangeLog
From-SVN: r246191
2017-03-16 12:18:14 +00:00
Tamar Christina d78607f597 2017-03-16 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
	Change ins into fmov.

From-SVN: r246190
2017-03-16 11:41:24 +00:00
Kyrylo Tkachov 6d06971da1 [AArch64] Use 'x' constraint for vector HFmode multiplication by indexed element instructions
* config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
	* config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
	Use h_con constraint for operand 1.
	(*aarch64_fnma4_elt_from_dup<mode>): Likewise.
	(*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.

From-SVN: r246189
2017-03-16 10:03:11 +00:00
Jeff Law f5a3ad8ae5 re PR tree-optimization/71437 (Performance regression after r235817)
PR tree-optimization/71437
	* tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
	(record_temporary_equivalences): Use it.

From-SVN: r246187
2017-03-15 21:19:46 -06:00
Jeff Law a3d514f231 re PR tree-optimization/71437 (Performance regression after r235817)
PR tree-optimization/71437
	* tree-ssa-dom.c (struct cond_equivalence): Moved from here into
	tree-ssa-scopedtables.
	(lookup_avail_expr, build_and_record_new_cond): Likewise.
	(record_conditions, record_cond, vuse_eq): Likewise.
	(record_edge_info): Adjust to API tweak of record_conditions.
	(simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
	(record_temporary_equivalences, optimize_stmt): Likewise.
	(eliminate_redundant_computations): Likewise.
	(record_equivalences_from_stmt): Likewise.
	* tree-ssa-scopedtables.c: Include options.h and params.h.
	(vuse_eq): New function, moved from tree-ssa-dom.c
	(build_and_record_new_cond): Likewise.
	(record_conditions): Likewise.  Accept vector of conditions rather
	than edge_equivalence structure for first argument.
	for the first argument.
	(avail_exprs_stack::lookup_avail_expr): New member function, moved
	from tree-ssa-dom.c.
	(avail_exprs_stack::record_cond): Likewise.
	* tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
	from tree-ssa-dom.c.
	(avail_exprs_stack): Add new member functions lookup_avail_expr
	and record_cond.
	(record_conditions): Declare.

From-SVN: r246186
2017-03-15 21:19:35 -06:00
GCC Administrator 47ee2e0741 Daily bump.
From-SVN: r246185
2017-03-16 00:16:14 +00:00
Ville Voutilainen df99018275 Implement LWG 2857, {variant,optional,any}::emplace should return the constructed value.
Implement LWG 2857, {variant,optional,any}::emplace should
return the constructed value.
* include/std/any (emplace(_Args&&...)): Change the return type and
return a reference to the constructed value.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/optional (emplace(_Args&&...)): Likewise.
(emplace(initializer_list<_Up>, _Args&&...)): Likewise.
* include/std/variant (emplace<_Tp>(_Args&&...)): Likewise.
(emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise.
(emplace<_Np>(_Args&&...)): Likewise.
(emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise.
* testsuite/20_util/any/assign/emplace.cc: Add tests for
checking the return value of emplace.
* testsuite/20_util/any/misc/any_cast_neg.cc: Adjust.
* testsuite/20_util/optional/assignment/6.cc: Add tests for
checking the return value of emplace.
* testsuite/20_util/variant/run.cc: Likewise.

From-SVN: r246182
2017-03-16 01:13:20 +02:00