Commit Graph

165142 Commits

Author SHA1 Message Date
Ville Voutilainen
4fea820523 re PR libstdc++/87855 (std::optional<T> only copy-constructible if T is trivially copy-constructible)
PR libstdc++/87855

Also implement P0602R4 (variant and optional
should propagate copy/move triviality) for std::optional.
* include/std/optional (_Optional_payload): Change
the main constraints to check constructibility in
addition to assignability.
(operator=): Make constexpr.
(_M_reset): Likewise.
(_M_construct): Likewise.
(operator->): Likewise.
* testsuite/20_util/optional/assignment/8.cc: Adjust.
* testsuite/20_util/optional/assignment/9.cc: New.

From-SVN: r266278
2018-11-19 17:05:18 +02:00
Martin Liska
f615cb162d Fix condition in lto-symtab.c (PR lto/88077).
2018-11-19  Martin Liska  <mliska@suse.cz>

	PR lto/88077
	* lto-symtab.c (lto_symtab_merge): Transform the
	condition before r256989.
2018-11-19  Martin Liska  <mliska@suse.cz>

	PR lto/88077
	* gcc.dg/lto/pr88077_0.c: New test.
	* gcc.dg/lto/pr88077_1.c: New test.

From-SVN: r266277
2018-11-19 15:00:41 +00:00
Jakub Jelinek
4cb3570c8c re PR tree-optimization/88071 (ICE: verify_gimple failed (error: dead STMT in EH table))
PR tree-optimization/88071
	* tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead
	of false as last argument to gsi_remove.
	* tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of
	false as last argument to gsi_replace.

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

From-SVN: r266276
2018-11-19 15:44:08 +01:00
Jakub Jelinek
3b60ab0aab re PR c++/60994 (gcc does not recognize hidden/shadowed enumeration as valid nested-name-specifier)
PR c++/60994
	* g++.dg/lookup/pr60994.C: New test.

From-SVN: r266275
2018-11-19 15:01:56 +01:00
Jakub Jelinek
4ccc4e3014 re PR debug/87039 (DW_OP_fbreg used without a frame base on a C++ code w/ -fopenmp)
PR debug/87039
	* omp-expand.c: Don't include debug.h.
	(adjust_context_and_scope): Add REGION argument.  Find DECL_CONTEXT
	from innermost outer parallel, task, teams or target that has a
	child_fn set, or, if there is no such outer region, use
	current_function_decl.  Do the DECL_CONTEXT adjustment regardless of
	whether a suitable BLOCK is found or not.
	(expand_parallel_call, expand_teams_call): Don't call
	adjust_context_and_scope here.
	(grid_expand_target_grid_body): Revert 2017-01-25 changes.
	(expand_omp_taskreg, expand_omp_target): Likewise.  Call
	adjust_context_and_scope.
	* dwarf2out.c (dwarf2out_early_global_decl): For
	decl_function_context recurse instead of calling dwarf2out_decl.

	* g++.dg/gomp/pr78363-4.C: New test.
	* g++.dg/gomp/pr78363-5.C: New test.
	* g++.dg/gomp/pr78363-6.C: New test.
	* g++.dg/gomp/pr78363-7.C: New test.

From-SVN: r266272
2018-11-19 14:44:13 +01:00
Richard Biener
e48e04f598 re PR c++/87229 (ICE: tree code 'call_expr' is not supported in LTO streams)
2018-11-19  Richard Biener  <rguenther@suse.de>

	PR lto/87229
	* tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val
	sizepos values.

	* g++.dg/lto/pr87229_0.C: New testcase.

From-SVN: r266271
2018-11-19 11:36:51 +00:00
Martin Liska
ddd6f407e8 Fix how we match for count(n*) in gcov tests.
2018-11-19  Martin Liska  <mliska@suse.cz>

	* g++.dg/gcov/pr84548.C: Remove remove-gcda.
	* g++.dg/gcov/ternary.C: Likewise.
	* lib/gcov.exp: Support pattern of following form:
	count(1*).

From-SVN: r266270
2018-11-19 11:19:15 +00:00
Jonathan Wakely
d86b600d89 PR libstdc++/88084 - Implement LWG 2777
* include/std/string_view (basic_string_view::copy): Use traits to
	copy.
	* testsuite/21_strings/basic_string_view/operations/copy/char/2.cc:
	New test.
	* testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc:
	New test.

From-SVN: r266269
2018-11-19 10:53:59 +00:00
Eric Botcazou
0ea52812a8 compare-elim.c (struct comparison): Add not_in_a field.
* compare-elim.c (struct comparison): Add not_in_a field.
	(is_not): New static function.
	(strip_not): Likewise.
	(conforming_compare): Handle a NOT in the first operand.
	(can_eliminate_compare): Likewise.
	(find_comparison_dom_walker::before_dom_children): Likewise.
	(try_eliminate_compare): Likewise.
	* config/visium/visium.md (negsi2_insn_set_carry): Turn into...
	(neg<mode>2_insn_set_carry): ...this and add missing NEG operation.

From-SVN: r266268
2018-11-19 10:25:35 +00:00
Jonathan Wakely
fc315b4769 Fix typos in packed attribute documentation
* doc/extend.texi (Common Type Attributes): Fix typos.

From-SVN: r266267
2018-11-19 09:52:41 +00:00
Eric Botcazou
3087ed26fb Bump copyright year
From-SVN: r266266
2018-11-19 09:52:13 +00:00
Eric Botcazou
ad0c3dd296 * gcc-interface/cuintp.c (UI_From_gnu): Remove code for 32-bit hosts.
From-SVN: r266265
2018-11-19 09:47:36 +00:00
Paolo Carlini
4ef3890074 decl2.c (grokfield): Remove obsolete _vptr check; fix explicit template argument list error location.
/cp
2018-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* decl2.c (grokfield): Remove obsolete _vptr check; fix
	explicit template argument list error location.

/testsuite
2018-11-18  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/template/crash91.C: Check location too.

From-SVN: r266264
2018-11-19 09:33:18 +00:00
Martin Liska
390e529e2b Strenghten assumption about function start and end line (PR gcov-profile/88045).
2018-11-19  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/88045
	* coverage.c (coverage_begin_function): Add assert.
2018-11-19  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/88045
	* g++.dg/gcov/pr88045.C: New test.

From-SVN: r266262
2018-11-19 08:16:17 +00:00
Martin Liska
ca44d7f40a Detect mixed usage of spaces and tabs.
2018-11-19  Martin Liska  <mliska@suse.cz>

	* check_GNU_style_lib.py: Detect mixed usage
	of spaces and tabs.

From-SVN: r266261
2018-11-19 08:08:28 +00:00
Sandra Loosemore
662076c9fa re PR other/40498 (no_instrument_function attribute not documented to prevent -pg instrumentation)
2018-11-18  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/40498

	gcc/
	* doc/extend.texi (Common Function Attributes): Document that
	no_instrument_function applies to -p and -pg, too.
	* doc/invoke.texi (Instrumentation Options): Add cross-references
	to docs for -p, -pg, and -finstrument-functions.

From-SVN: r266260
2018-11-18 20:04:04 -05:00
GCC Administrator
45f27e5c6c Daily bump.
From-SVN: r266259
2018-11-19 00:16:45 +00:00
Iain Buclaw
6feee1e1b8 Remove unused modules from libphobos std.internal package.
libphobos/ChangeLog:

2018-11-19  Iain Buclaw  <ibuclaw@gdcproject.org>

	* src/Makefile.am: Remove std.internal.digest.sha_SSSE3 and
	std.internal.math.biguintx86 modules.
	* src/Makefile.in: Rebuild.
	* src/std/internal/digest/sha_SSSE3.d: Remove.
	* src/std/internal/math/biguintx86.d: Remove.

From-SVN: r266256
2018-11-18 23:39:16 +00:00
Michele Pezzutti
bee39274cb PR libstdc++/83566 - cyl_bessel_j returns wrong result for x>1000
2018-11-16  Michele Pezzutti <mpezz@tiscali.it>
	    Edward Smith-Rowland  <3dw4rd@verizon.net>

	PR libstdc++/83566 - cyl_bessel_j returns wrong result for x>1000
	for high orders.
	* include/tr1/bessel_function.tcc: Perform no fewer than nu/2 iterations
	of the asymptotic series (nu is the Bessel order).
	* testsuite/tr1/5_numerical_facilities/special_functions/
	09_cyl_bessel_j/check_value.cc: Add tests at nu=100, 1000<=x<=2000.
	* testsuite/tr1/5_numerical_facilities/special_functions/	
	11_cyl_neumann/check_value.cc: Ditto.
	* testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Ditto.
	* testsuite/special_functions/10_cyl_neumann/check_value.cc: Ditto.


Co-Authored-By: Edward Smith-Rowland <3dw4rd@verizon.net>

From-SVN: r266252
2018-11-18 18:32:26 +00:00
Thomas Koenig
cb40e8071e re PR fortran/88073 (Internal compiler error compiling WHERE construct with -O or -O2)
2018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/88073
	* frontend-passes.c (combine_array_constructor): Do not do
	anything if in a WHERE statement.

2018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/88073
	* gfortran.dg/where_7.f90: New test.

From-SVN: r266251
2018-11-18 17:40:23 +00:00
Alan Modra
9515381d1c Allow target to override gnu-user.h crti and crtn
Also give target access to the gnu-user.h LINK_GCC_C_SEQUENCE_SPEC.

	* config/gnu-user.h (GNU_USER_TARGET_CRTI): Define.
	(GNU_USER_TARGET_STARTFILE_SPEC): Use it here.
	(GNU_USER_TARGET_CRTN): Define.
	(GNU_USER_TARGET_ENDFILE_SPEC): Use it here.
	(GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define.

From-SVN: r266250
2018-11-18 20:55:24 +10:30
Alan Modra
003fc14b5b Delete !HAVE_LD_PIE variants of startfile/endfile specs
The HAVE_LD_PIE variant doesn't contain anything that will break
linking when !HAVE_LD_PIE that isn't already broken if you choose to
build PIEs with a linker that doesn't support PIE.  All this
HAVE_LD_PIE protects is the choice of different crt files, which is
more about libc capability than linker capability.

	* config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete
	!HAVE_LD_PIE variant.
	(GNU_USER_TARGET_ENDFILE_SPEC): Likewise.

From-SVN: r266249
2018-11-18 20:52:10 +10:30
Thomas Koenig
83fad92900 re PR fortran/70260 (ICE: gimplification failed)
2018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/70260
    * expr.c (gfc_check_assign): Reject assigning to an external
    symbol.
    (gfc_check_pointer_assign): Add suppress_type_test
    argument. Insert line after if. A non-proc pointer can not point
    to a constant.  Only check types if suppress_type_test is false.
    * gfortran.h (gfc_check_pointer_assign): Add optional
    suppress_type_test argument.
    * resolve.c (gfc_resolve_code):  Move up gfc_check_pointer_assign
    and give it the extra argument.
    (resolve_fl_procedure): Set error on value for a function with
    an inizializer.

2018-11-18  Thomas Koenig  <tkoenig@gcc.gnu.org>

    PR fortran/70260
    * gfortran.dg/proc_ptr_result_5.f90:  Add dg-error directive.
    * gfortran.dg/protected_4.f90: Split line to allow for extra error.
    * gfortran.dg/protected_6.f90: Likewise.
    * gfortran.dg/assign_11.f90: New test.
    * gfortran.dg/pointer_assign_12.f90: New test.

From-SVN: r266248
2018-11-18 09:16:19 +00:00
Nick Clifton
f163ea822b Correct ChangeLog for PR31357 fix
From-SVN: r266247
2018-11-17 23:12:03 -05:00
Nick Clifton
1657e6355d re PR driver/31357 (document that --help and --help=<value> options cannot be combined.)
2018-11-17  Eric Gallager  <egallager@gcc.gnu.org>
	    Sandra Loosemore  <sandra@codesourcery.com>

	PR driver/31357

	gcc/
	* doc/invoke.texi (Overall Options): Document that --help and 
	--help=<value> options cannot be combined.

Co-Authored-By: Sandra Loosemore <sandra@codesourcery.com>

From-SVN: r266246
2018-11-17 23:09:14 -05:00
GCC Administrator
258db1ff6b Daily bump.
From-SVN: r266245
2018-11-18 00:16:39 +00:00
Jonathan Wakely
c5be64810c Implement std::pmr::synchronized_pool_resource
Define the thread-safe pool resource, using a shared_mutex to allow
multiple threads to concurrently allocate from thread-specific pools.

Define new weak symbols for the pthread_rwlock_t functions, to avoid
making libstdc++.so depend on libpthread.so

When the necessary Gthread support is absent only define the
feature-test macro to 1, rather than 201603. This is intended to imply
incomplete support, because everything except synchronized_pool_resource
works.

	Implement std::pmr::synchronized_pool_resource
	* config/abi/pre/gnu.ver: Add new symbols.
	* include/std/memory_resource [_GLIBCXX_HAS_GTHREADS]
	(__cpp_lib_memory_resource): Define to expected value, 201603.
	(synchronized_pool_resource): New class.
	[!_GLIBCXX_HAS_GTHREADS] (__cpp_lib_memory_resource): Define to 1.
	* include/std/shared_mutex (__glibcxx_rwlock_rdlock)
	(__glibcxx_rwlock_tryrdlock, __glibcxx_rwlock_wrlock)
	(__glibcxx_rwlock_trywrlock, __glibcxx_rwlock_unlock)
	(__glibcxx_rwlock_destroy, __glibcxx_rwlock_init)
	(__glibcxx_rwlock_timedrdlock, __glibcxx_rwlock_timedwrlock): Define
	weak symbols for POSIX rwlock functions.
	(__shared_mutex_pthread): Use weak symbols.
	* include/std/version (__cpp_lib_memory_resource): Define.
	* src/c++17/memory_resource.cc [_GLIBCXX_HAS_GTHREADS]
	(synchronized_pool_resource::_TPools): New class.
	(destroy_TPools): New function for pthread_key_create destructor.
	(synchronized_pool_resource::synchronized_pool_resource)
	(synchronized_pool_resource::~synchronized_pool_resource)
	(synchronized_pool_resource::release)
	(synchronized_pool_resource::do_allocate)
	(synchronized_pool_resource::do_deallocate): Define public members.
	(synchronized_pool_resource::_M_thread_specific_pools)
	(synchronized_pool_resource::_M_alloc_tpools)
	(synchronized_pool_resource::_M_alloc_shared_tpools): Define private
	members.
	* testsuite/20_util/synchronized_pool_resource/allocate.cc: New test.
	* testsuite/20_util/synchronized_pool_resource/cons.cc: New test.
	* testsuite/20_util/synchronized_pool_resource/is_equal.cc: New test.
	* testsuite/20_util/synchronized_pool_resource/multithreaded.cc: New
	test.
	* testsuite/20_util/synchronized_pool_resource/release.cc: New test.
	* testsuite/performance/20_util/memory_resource/pools.cc: Add
	multithreaded tests using pmr::synchronized_pool_resource.

From-SVN: r266242
2018-11-17 23:35:44 +00:00
Jim Wilson
b579523b7b RISC-V: Fix epilogue unwind info with fp and single sp adjust.
gcc/
	* config/riscv/riscv.c (epilogue_cfa_sp_offset): New.
	(riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and
	epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote.
	(riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset.  Set it
	to step2 if frame_pointer_needed and step1 is 0.

From-SVN: r266241
2018-11-17 15:31:01 -08:00
Sandra Loosemore
9472dfbf21 re PR c++/4225 (documentation about CPLUS_INCLUDE_PATH vs. system headers incomplete)
2018-11-17  Sandra Loosemore  <sandra@codesourcery.com>

	PR c++/4225

	gcc/
	* doc/cpp.texi (System Headers): Add note about implicit
	extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C.

From-SVN: r266240
2018-11-17 11:59:26 -05:00
Sandra Loosemore
3337f9bf48 re PR c++/4025 (Document use/non-use of -fno-implicit-templates in bootflags)
2018-11-17  Sandra Loosemore  <sandra@codesourcery.com>

	PR c++/4025

	gcc/
	* doc/invoke.texi (C++ Dialect Options): Clarify usage of
	-fno-implicit-templates.

From-SVN: r266239
2018-11-17 11:05:45 -05:00
Iain Buclaw
5d11bfefc5 libphobos: Add IEEE quadruple support for std.conv
Backport from upstream phobos 2.079 for AArch64.

Reviewed-on: https://github.com/dlang/phobos/pull/5965

From-SVN: r266238
2018-11-17 15:48:42 +00:00
Jakub Jelinek
d11be094c7 re PR tree-optimization/87546 (Gcc miscompiles at -O3 on valid code)
PR tree-optimization/87546
	* tree-vect-patterns.c (vect_look_through_possible_promotion): Add
	min_precision variable, initially set it to orig_precision, only does
	something if op_type's precision is <= min_precision and update
	min_precision whenever calling set_op.

	* gcc.dg/vect/O3-pr87546.c: New test.

From-SVN: r266237
2018-11-17 16:10:48 +01:00
Jakub Jelinek
e14aba114f re PR rtl-optimization/88018 (ICE in insert_insn_on_edge at cfgrtl.c:1952 since r255066)
PR rtl-optimization/88018
	* cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge
	on the presence of fallthru edge, rather than if it is a USE or not.

	* g++.dg/tsan/pr88018.C: New test.

From-SVN: r266236
2018-11-17 16:09:43 +01:00
Jan Hubicka
ba1677480a re PR ipa/87957 (ICE tree check: expected tree that contains ‘decl minimal’ structure, have ‘identifier_node’ in warn_odr, at ipa-devirt.c:1051 since r265519)
PR ipa/87957
	* ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL.

From-SVN: r266235
2018-11-17 11:35:01 +00:00
Iain Buclaw
d7815fc450 Fix wrong alignment returned by .alignof property.
The D language expects the value to be the minimum alignment required
for the type, not the preferred alignment.

gcc/d/ChangeLog:

2018-11-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/87824
	* d-target.cc (Target::alignsize): Return min_align_of_type.

From-SVN: r266234
2018-11-17 11:01:00 +00:00
Sandra Loosemore
95c0a21042 invoke.texi (Option Summary): Fix whitespace and line breaks in @gccoptlist environments.
2018-11-16  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (Option Summary): Fix whitespace and line
	breaks in @gccoptlist environments.
	(Warning Options): Likewise.
	(Optimize Options): Likewise.
	(PowerPC SPE Options): Likewise.
	(RS/6000 and PowerPC Options): Likewise.

From-SVN: r266233
2018-11-16 23:52:29 -05:00
Jeff Law
a1d5b8cacd mn10300.md (adddi3_degenerate): Remove bogus gcc_assert.
* config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus
	gcc_assert.

From-SVN: r266232
2018-11-16 21:19:27 -07:00
Sandra Loosemore
a6b2d8e54b re PR middle-end/23197 (Improve documentation on -fprofile-generate, -fprofile-use)
2018-11-16  Sandra Loosemore  <sandra@codesourcery.com>

	PR middle-end/23197

	gcc/
	* doc/invoke.texi (Optimize Options): Update options enabled by
	fprofile-generate, -fprofile-use, and -fauto-profile.

From-SVN: r266231
2018-11-16 19:53:17 -05:00
Jozef Lawrynowicz
7cf403a36e re PR middle-end/87854 (gcc.c-torture/compile/pr46534.c ICE for 16-bit size_t)
2018-11-17  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	PR middle-end/87854
	* g++.dg/parse/concat1.C: Add dg-error for targets with size_t < 32
	bits. Update comment.
	* gcc.dg/concat2.c: Likewise.
	* gcc.c-torture/compile/pr46534.c: Likewise.

From-SVN: r266230
2018-11-17 00:45:43 +00:00
GCC Administrator
4bc4855280 Daily bump.
From-SVN: r266229
2018-11-17 00:16:29 +00:00
Jozef Lawrynowicz
cac6691c13 re PR target/87927 (ICE: segmentation fault with patchable_function_entry attribute for msp430-elf -mlarge)
2018-11-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>

	PR target/87927
	* target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP.
	Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs.
	* target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in
	the byte_op hook.
	* target.h: Add psi, pdi, pti to struct asm_int_op definition.
	* targhooks.c (default_print_patchable_function_entry): Assert
	asm_int_op does not return a NULL string.
	* varasm.c (integer_asm_op): Return the op for a partial int type
	when the requested size does not correspond to an integer type.
	* config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP.
	* doc/tm.texi: Regenerate.

From-SVN: r266226
2018-11-16 23:53:30 +00:00
Jakub Jelinek
8808260dfd re PR c++/87269 (ICE in tsubst_copy, at cp/pt.c:15475 starting from r261802)
PR c++/87269
	* g++.dg/lookup/pr87269.C (std::size_t): New typedef.
	(operator"" _a) Change unsigned long type to std::size_t.

From-SVN: r266225
2018-11-17 00:18:13 +01:00
Kamlesh Kumar
205d542ad5 re PR c++/52869 ([DR 1207] "this" not being allowed in noexcept clauses)
PR c++/52869

	DR 1207
	* parser.c (cp_parser_noexcept_specification_opt): Call
	inject_this_parameter.

From-SVN: r266224
2018-11-16 16:55:00 -05:00
Jason Merrill
2674fa47de Implement P0479R5, [[likely]] and [[unlikely]].
[[likely]] and [[unlikely]] are equivalent to the GNU hot/cold attributes,
except that they can be applied to arbitrary statements as well as labels;
this is most likely to be useful for marking if/else branches as likely or
unlikely.  Conveniently, PREDICT_EXPR fits the bill nicely as a
representation.

I also had to fix marking case labels as hot/cold, which didn't work before.
Which then required me to force __attribute ((fallthrough)) to apply to the
statement rather than the label.

gcc/
	* gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes.
gcc/c-family/
	* c-lex.c (c_common_has_attribute): Handle likely/unlikely.
	* c-attribs.c (attr_cold_hot_exclusions): Make public.
gcc/cp/
	* tree.c (handle_likeliness_attribute): New.
	(std_attribute_table): Add likely/unlikely.
	* cp-gimplify.c (lookup_hotness_attribute, remove_hotness_attribute)
	(process_stmt_hotness_attribute, first_stmt): New.
	(genericize_if_stmt): Check for duplicate predictions.
	* parser.c (cp_parser_statement): Call
	process_stmt_hotness_attribute.
	(cp_parser_label_for_labeled_statement): Apply attributes to case.
	* decl.c (finish_case_label): Give label in template type void.
	* pt.c (tsubst_expr) [CASE_LABEL_EXPR]: Copy attributes.
	[PREDICT_EXPR]: Handle.

From-SVN: r266223
2018-11-16 16:49:42 -05:00
Iain Buclaw
a0a57b074f libphobos: Add IEEE quadruple support to core.internal.convert
Backport from upstream druntime 2.083 for AArch64.

Reviewed-on: https://github.com/dlang/druntime/pull/2257

From-SVN: r266222
2018-11-16 21:17:33 +00:00
Michael Meissner
2fbd3c3763 constraints.md (wF constraint): Remove power9 fusion documentation.
[gcc]
2018-11-16  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/constraints.md (wF constraint): Remove power9
	fusion documentation.  Just document wF's use for power8 fusion.
	* config/rs6000/predicates.md (p9_fusion_reg_operand): Delete.
	(fusion_gpr_addis): Delete power9 fusion support.  Change power8
	fusion support to require the upper 12 bits to be all 0's or all
	1's.
	(fusion_gpr_mem_load): Add comment.
	(fusion_addis_mem_combo_load): Remove power9 fusion support.
	(fusion_addis_mem_combo_store): Delete.
	(fusion_offsettable_mem_operand): Delete.
	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set
	power8 fusion here.
	(ISA_3_0_MASKS_SERVER): Delete power9 fusion.
	(POWERPC_MASKS): Delete power9 fusion.
	* config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete.
	(fusion_p9_p): Delete.
	(expand_fusion_p9_load): Delete.
	(expand_fusion_p9_store): Delete.
	(emit_fusion_p9_load): Delete.
	(emit_fusion_p9_store): Delete.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9
	fusion support.
	(rs6000_option_override_internal): Set power8 fusion based on
	whether we are tuning for power8.  Delete power9 fusion support.
	(rs6000_opt_masks): Delete -mpower9-fusion switch.
	(emit_fusion_load): Rename emit_fusion_load_store to
	emit_fusion_load, and drop fusion store support.  Update callers.
	(emit_fusion_load_store): Likewise.
	(emit_fusion_gpr_load): Likewise.
	(fusion_p9_p): Delete.
	(expand_fusion_p9_load): Delete.
	(expand_fusion_p9_store): Delete.
	(emit_fusion_p9_load): Delete.
	(emit_fusion_p9_store): Delete.
	* config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete.
	(GPR_FUSION): Delete.
	(FPR_FUSION): Delete.
	(power9 fusion peephole2s): Delete.
	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Delete.
	(fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Delete.
	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Delete.
	(fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Delete.
	(fusion_p9_<mode>_constant): Delete.
	* config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented
	power9 fusion switch.
	* doc/md.texi (PowerPC constraints): Update wF constraint
	documentation for power8 fusion only.

[gcc/testsuite]
2018-11-16  Michael Meissner  <meissner@linux.ibm.com>

	* gcc.target/powerpc/fusion3.c: Delete.
	* gcc.target/powerpc/fusion4.c: Delete.

From-SVN: r266220
2018-11-16 20:18:13 +00:00
Jakub Jelinek
a09ad34709 re PR rtl-optimization/87475 (ICE in patch_jump_insn, at cfgrtl.c:1275)
PR rtl-optimization/87475
	* cfgrtl.c (patch_jump_insn): Allow redirection failure for
	CROSSING_JUMP_P insns.
	(cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL.

	* g++.dg/opt/pr87475.C: New test.

From-SVN: r266219
2018-11-16 17:43:49 +01:00
Uros Bizjak
b41835733b re PR target/88051 (internal compiler error: in add_clobbers, at config/i386/sync.md:1762)
PR target/88051
	* config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets.
	* config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC.
	(movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec.

From-SVN: r266218
2018-11-16 17:42:16 +01:00
Jakub Jelinek
258b385463 re PR middle-end/87854 (gcc.c-torture/compile/pr46534.c ICE for 16-bit size_t)
PR middle-end/87854
	* c-common.c (fix_string_type): Reject string literals larger than
	TYPE_MAX_VALUE (ssizetype) bytes.

From-SVN: r266217
2018-11-16 17:41:54 +01:00
Jakub Jelinek
7f46559c82 re PR middle-end/88032 (ICE in operand_subword_force, at emit-rtl.c:1793)
PR middle-end/88032
	* optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it
	is VOIDmode, in which case use int_mode.  Similarly for op1_mode.

From-SVN: r266216
2018-11-16 17:40:53 +01:00