Commit Graph

29750 Commits

Author SHA1 Message Date
Richard Biener 45f7faf0b5 re PR tree-optimization/79683 (SLP vectorizer drops gs: prefix)
2017-02-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79683
	* tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
	vector types for data-refs.

	* gcc.target/i386/pr79683.c: New testcase.

From-SVN: r245679
2017-02-23 11:43:51 +00:00
Jeff Law 18eb304e5f re PR tree-optimization/79578 (Unnecessary instructions in generated code)
PR tree-optimization/79578
	* tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
	to compare base operands.

	PR tree-optimization/79578
	* g++.dg/tree-ssa/ssa-dse-3.C: New test.

From-SVN: r245675
2017-02-22 22:47:43 -07:00
Sameera Deshpande 0a864a97e9 Fix MIPS o32 calling convention for MSA and FP vector types
gcc/
	* config/mips/mips.c (mips_return_in_memory): Force FP
	vector types to be returned in memory for o32 ABI.

gcc/testsuite/

	* gcc.target/mips/msa-fp-cc.c: New test.

From-SVN: r245666
2017-02-22 23:09:43 +00:00
Jakub Jelinek e40b6fc7a1 re PR c++/79664 (ICE with #pragma omp parallel in constexpr function)
PR c++/79664
	* parser.c (cp_parser_omp_teams, cp_parser_omp_target): Use
	SET_EXPR_LOCATION on OMP_TARGET/OMP_TEAMS tree.
	* constexpr.c (potential_constant_expression_1): Handle
	OMP_*, OACC_* and CILK_* trees.  Use error_at with
	EXPR_LOC_OR_LOC (t, input_location) computed early
	instead of error, or error_at with location_of (t).

	* g++.dg/gomp/teams-1.C: Adjust expected diagnostic location.
	* g++.dg/cpp1y/constexpr-throw.C: Likewise.
	* g++.dg/gomp/pr79664.C: New test.

From-SVN: r245662
2017-02-22 23:36:20 +01:00
Jakub Jelinek fe8ece053b dwarf2out.c (gen_variable_die): For -gdwarf-5...
* dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
	instead of DW_TAG_member for static data member declarations and don't
	set no_linkage_name for static inline data members.
	(gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
	to DW_TAG_member.

	* g++.dg/debug/dwarf2/inline-var-2.C: New test.

From-SVN: r245661
2017-02-22 22:33:47 +01:00
Marek Polacek 61ac5ebe61 re PR c/79662 (ICE on invalid code in convert_arguments in c/c-typeck.c:3452)
PR c/79662
	* c-typeck.c (convert_arguments): Handle error_mark_node.

	* gcc.dg/enum-incomplete-4.c: New test.

From-SVN: r245660
2017-02-22 21:28:42 +00:00
Marek Polacek 8fdddd3d83 re PR c++/79657 (ICE on invalid c++ code in finish_underlying_type cp/semantics.c:3849)
PR c++/79657
	* semantics.c (finish_underlying_type): Bail out for incomplete enums.

	* g++.dg/ext/underlying_type12.C: New test.

From-SVN: r245658
2017-02-22 19:33:13 +00:00
Marek Polacek 78af14ae0e re PR c++/79653 (ICE on invalid c++ code in cp_check_const_attributes in cp/decl2.c:1423)
PR c++/79653
	* parser.c (cp_parser_std_attribute_spec): Don't build the attribute
	if the alignas expression is erroneous.
	* pt.c (tsubst_attribute): If tsubst_pack_expansion fails, return
	error_mark_node.

	* g++.dg/cpp0x/alignas10.C: New test.
	* g++.dg/cpp0x/alignas9.C: New test.

From-SVN: r245657
2017-02-22 19:31:49 +00:00
Jakub Jelinek 888c705092 re PR target/70465 (Poor code for x87 asm)
PR target/70465
	* reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
	and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
	elimination by swapping fld*.

	* gcc.target/i386/pr70465-2.c: New test.

From-SVN: r245654
2017-02-22 18:17:17 +01:00
Uros Bizjak 6d3daa1afb pr61441.c: Use dg-add-options ieee.
* gcc.dg/pr61441.c: Use dg-add-options ieee.

From-SVN: r245652
2017-02-22 16:39:03 +01:00
Uros Bizjak b86fec684a ChangeLog: Add missing entry.
* ChangeLog: Add missing entry.
	* testsuite/ChangeLog: Ditto.

From-SVN: r245651
2017-02-22 16:36:24 +01:00
Richard Biener 76dd203e1b re PR middle-end/79673 (GIMPLE verification fails when compiling code with __seg_gs)
2017-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79673
	* tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
	convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
	irrelevant address-space qualifiers and avoiding a
	ADDR_SPACE_CONVERT_EXPR from fold_convert.

	* gcc.target/i386/pr79673.c: New testcase.

From-SVN: r245649
2017-02-22 15:00:39 +00:00
Richard Biener a9c774d2ae re PR tree-optimization/79666 (wrong code (SIGFPE) at -O2 on x86_64-linux-gnu (in both 32-bit and 64-bit modes))
2017-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79666
	* tree-vrp.c (extract_range_from_binary_expr_1): Make sure
	to not symbolically negate if that may introduce undefined
	overflow.

	* gcc.dg/torture/pr79666.c: New testcase.

From-SVN: r245648
2017-02-22 12:11:27 +00:00
Martin Liska 8f4f841a3e Remove wrong assert about gcov_type (PR lto/79587).
2017-02-22  Martin Liska  <mliska@suse.cz>

	PR lto/79587
	* data-streamer-in.c (streamer_read_gcov_count): Remove assert.
	* data-streamer-out.c (streamer_write_gcov_count_stream):
	Likewise.
	* value-prof.c (stream_out_histogram_value): Make assert more
	precise based on type of counter.
2017-02-22  Martin Liska  <mliska@suse.cz>

	PR lto/79587
	* gcc.dg/tree-prof/pr79587.c: New test.

From-SVN: r245647
2017-02-22 09:45:42 +00:00
Marek Polacek a232a1cb17 re PR c++/79535 (ICE in verify_ctor_sanity, at cp/constexpr.c:2636)
PR c++/79535
	* cp-tree.h (maybe_reject_flexarray_init): Declare.
	* init.c (maybe_reject_flexarray_init): No longer static.
	Add check for current_function_decl.
	* parser.c (cp_parser_late_parse_one_default_arg): Reject
	a default mem-initializer for a flexible array.

	* g++.dg/ext/flexary23.C: New test.

From-SVN: r245641
2017-02-21 20:23:09 +00:00
Jakub Jelinek b7280ac270 re PR c++/79654 (ICE on invalid c++ code in register_dtor_fn in cp/decl.c:7877)
PR c++/79654
	* decl.c (cp_finish_decomp): Don't set decl's type to error_mark_node
	on error.
	* pt.c (tsubst_decomp_names): Return error_mark_node if the first
	decl after the decomposition artificial decl has error_mark_node.
	* decl2.c (prune_vars_needing_no_initialization): Use error_operand_p
	instead of just == error_mark_node comparison.

	* g++.dg/cpp1z/decomp26.C: New test.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>

From-SVN: r245639
2017-02-21 19:00:35 +01:00
Jakub Jelinek 5c3f1d7b10 re PR sanitizer/79589 (ICE in gimplify_compound_expr (gimplify.c:5712) with -fsanitize=undefined)
PR sanitizer/79589
	* decl.c: Include gimplify.h.
	(cp_finish_decomp): Make sure there is no sharing of trees
	in between DECL_VALUE_EXPR of decomposition decls.

	* g++.dg/ubsan/pr79589.C: New test.

From-SVN: r245638
2017-02-21 18:59:07 +01:00
Jeff Law 1486c2a780 re PR tree-optimization/79621 (Missed path isolation opportunity)
PR tree-optimization/79621
	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
	blocks with edges to themselves.

	PR tree-optimization/79621
	* gcc.c-torture/compile/pr79621.c: New test.

From-SVN: r245637
2017-02-21 10:58:00 -07:00
Jakub Jelinek 3bb4311904 re PR c++/79655 (ICE on invalid c++ code in cxx_eval_store_expression in cp/constexpr.c:3464)
PR c++/79655
	* constexpr.c (cxx_eval_array_reference): Diagnose negative subscript.

	* g++.dg/cpp1y/constexpr-79655.C: New test.

From-SVN: r245636
2017-02-21 18:57:23 +01:00
Jakub Jelinek 664beaf2c1 re PR c++/79639 (ICE with -O and constexpr)
PR c++/79639
	* constexpr.c (cxx_eval_store_expression): If *valp is a PTRMEM_CST,
	call cplus_expand_constant on it first.

	* g++.dg/cpp1y/constexpr-79639.C: New test.

From-SVN: r245635
2017-02-21 18:48:57 +01:00
Jakub Jelinek 956d3e61a0 re PR target/79633 (ICE in gimple_call_arg, at gimple.h:3163)
PR target/79633
	* tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
	is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
	Use gimple_call_builtin_p.

	* gcc.target/i386/mpx/pr79633.c: New test.

From-SVN: r245634
2017-02-21 18:46:42 +01:00
Jakub Jelinek d4cbfca47f re PR target/79570 (ICE in sel-sched-ir.c:4534 in pr69956.c)
PR target/79570
	* sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
	on temporarily removed DEBUG_INSNs.

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

From-SVN: r245633
2017-02-21 17:56:11 +01:00
Jakub Jelinek 00bc9de3fe re PR c++/79641 (ICE with const variable and attribute)
PR c++/79641
	* c-attribs.c (handle_mode_attribute): Use build_qualified_type to
	preserve quals.

	* c-c++-common/pr79641.c: New test.

From-SVN: r245632
2017-02-21 17:55:00 +01:00
Jakub Jelinek d002d099b0 re PR middle-end/79649 (Memset pattern in named address space crashes compiler or generates wrong code)
PR tree-optimization/79649
	* tree-loop-distribution.c (classify_partition): Give up on
	non-generic address space loads/stores.

	* gcc.target/i386/pr79649.c: New test.

From-SVN: r245631
2017-02-21 17:29:37 +01:00
Jakub Jelinek 2f3ec56d60 re PR target/79494 (ICE in maybe_record_trace_start, at dwarf2cfi.c:2330)
PR target/79494
	* config/i386/i386.c (ix86_expand_split_stack_prologue): Call
	make_reg_eh_region_note_nothrow_nononlocal on call_insn.
	* config/rs6000/rs6000.c: Include except.h.
	(rs6000_expand_split_stack_prologue): Call
	make_reg_eh_region_note_nothrow_nononlocal on the call insn.

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

From-SVN: r245629
2017-02-21 15:39:21 +01:00
Segher Boessenkool e6655a5f98 Add -Wno-psabi to diagnostic-test-expressions-1.c options
Without this the test fails on 32-bit PowerPC.


gcc/testsuite/
	* gcc.dg/plugin/diagnostic-test-expressions-1.c: Add -Wno-psabi
	to dg-options.

From-SVN: r245625
2017-02-21 13:12:55 +01:00
Kyrylo Tkachov 319633cd76 Skip gcc.dg/gimplefe-26.c on non-c99 runtime targets
* gcc.dg/gimplefe-26.c: Require c99_runtime.

From-SVN: r245622
2017-02-21 10:09:20 +00:00
Kelvin Nilsen 027a9dd509 re PR target/78056 (build failure on Power7)
gcc/testsuite/ChangeLog:

2017-02-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>

	PR target/78056
	* gcc.target/powerpc/pr78056-8.c: Remove.

From-SVN: r245607
2017-02-20 16:43:03 +00:00
Marek Polacek 85ade8d640 re PR sanitizer/79558 (ICE: Segfault in ubsan_type_descriptor, at ubsan.c:412)
PR sanitizer/79558
	* ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.

	* c-c++-common/ubsan/bounds-14.c: New test.

From-SVN: r245605
2017-02-20 15:50:23 +00:00
Marek Polacek 80480ceee9 re PR middle-end/79537 (ICE in gimplify_expr, at gimplify.c:12009)
PR middle-end/79537
	* gimplify.c (gimplify_expr): Handle unused *&&L;.

	* gcc.dg/comp-goto-4.c: New.

From-SVN: r245604
2017-02-20 15:05:53 +00:00
Jakub Jelinek 705d3b776d re PR target/79568 (ICE in extract_insn, at recog.c:2311 for pr70325.c (with -mavx512bw))
PR target/79568
	* config/i386/i386.c (ix86_expand_builtin): Handle
	OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
	ix86_builtins_isa[fcode].isa as a requirement of those
	flags and any other flag in the bitmask.
	(ix86_init_mmx_sse_builtins): Use 0 instead of
	~OPTION_MASK_ISA_64BIT as mask.
	* config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
	__builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
	__builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
	__builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.

	* gcc.target/i386/pr79568-1.c: New test.
	* gcc.target/i386/pr79568-2.c: New test.
	* gcc.target/i386/pr79568-3.c: New test.

From-SVN: r245602
2017-02-20 13:52:21 +01:00
Paul Thomas dc42a736c9 re PR fortran/79382 (DTIO ICE)
2017-02-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79382
	* decl.c (access_attr_decl): Test for presence of generic DTIO
	interface and emit error if not present.

2017-02-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79382
	* io/transfer.c (check_dtio_proc): New function.
	(formatted_transfer_scalar_read): Use it.
	(formatted_transfer_scalar_write): ditto.

2017-02-16  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79382
	* gfortran.dg/dtio_10.f90 : Change test of error message.
	* gfortran.dg/dtio_23.f90 : New test.
	* gfortran.dg/dtio_24.f90 : New test.

From-SVN: r245596
2017-02-20 10:52:50 +00:00
Paul Thomas 1ca6a74f89 re PR fortran/79434 ([submodules] separate module procedure breaks encapsulation)
2017-02-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79434
	* parse.c (check_component, parse_union): Whitespace.
	(set_syms_host_assoc): For a derived type, check if the module
	in which it was declared is one of the submodule ancestors. If
	it is, make the components public. Otherwise, reset attribute
	'host_assoc' and set 'use-assoc' so that encapsulation is
	preserved.

2017-02-20  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79434
	* gfortran.dg/submodule_25.f08 : New test.

From-SVN: r245595
2017-02-20 09:42:48 +00:00
Paul Thomas 63af1586ca re PR fortran/79447 ([F08] gfortran rejects valid & accepts invalid internal subprogram in a submodule)
2017-02-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79447
	* decl.c (gfc_set_constant_character_len): Whitespace.
	(gfc_match_end): Catch case where a procedure is contained in
	a module procedure and ensure that 'end procedure' is the
	correct termination.

2017-02-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79447
	* gfortran.dg/submodule_24.f08 : New test.

From-SVN: r245582
2017-02-19 19:59:20 +00:00
Andre Vehreschild 4ca4d1e95e re PR fortran/79229 (ICE in gfc_trans_assignment_1 with -fcheck=mem)
gcc/testsuite/ChangeLog:

2017-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/79229
	* gfortran.dg/class_allocate_24.f90: New test.


gcc/fortran/ChangeLog:

2017-02-19  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR fortran/79229
	* trans-expr.c (gfc_trans_assignment_1): Deref indirect refs when
	compiling with -fcheck=mem to check the pointer and not the data.

From-SVN: r245581
2017-02-19 19:43:49 +01:00
Paul Thomas dea71ad06f re PR fortran/79402 (ICE with submodules: module procedure interface defined in parent module)
2017-02-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79402
	* resolve.c (fixup_unique_dummy): New function.
	(gfc_resolve_expr): Call it for dummy variables with a unique
	symtree name.

2017-02-19  Paul Thomas  <pault@gcc.gnu.org>

	PR fortran/79402
	* gfortran.dg/submodule_23.f90: New test.

From-SVN: r245580
2017-02-19 18:27:14 +00:00
Paolo Carlini f46e2bc923 re PR c++/79380 (ICE on C++11 code with illegal alignas specifier on x86_64-linux-gnu: unexpected expression ‘f’ of kind overload)
/cp
2017-02-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79380
	* typeck.c (cxx_alignas_expr): Reject a non-integral alignas
	argument.

/testsuite
2017-02-19  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/79380
	* g++.dg/cpp0x/alignas8.C: New.

From-SVN: r245578
2017-02-19 17:43:41 +00:00
Jonathan Wakely 7dfa657b5b PR c++/69523 make -Wliteral-suffix control warning
gcc:

	PR c++/69523
	* doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
	description.

gcc/cp:

2017-02-19  Eric Fiselier  <eric@efcs.ca>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR c++/69523
	* parser.c (cp_parser_unqualified_id): Use OPT_Wliteral_suffix to
	control warning about literal suffix identifiers without a leading
	underscore.

gcc/testsuite:

2017-02-19  Eric Fiselier  <eric@efcs.ca>
	    Jonathan Wakely  <jwakely@redhat.com>

	PR c++/69523
	* g++.dg/cpp0x/Wliteral-suffix2.C: New test.

From-SVN: r245574
2017-02-19 14:13:53 +00:00
Prathamesh Kulkarni eab1f16915 gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format for FMA_EXPR.
2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
	for FMA_EXPR.

c/
	* gimple-parser.c (c_parser_gimple_postfix_expression): Handle
	FMA_EXPR.

testsuite/
	* gcc.dg/gimplefe-26.c: New test.

From-SVN: r245570
2017-02-19 09:06:30 +00:00
John David Anglin 47e16d83e9 thread_local-order2.C: xfail on hppa*-*-hpux*.
* g++.dg/tls/thread_local-order2.C: xfail on hppa*-*-hpux*.

From-SVN: r245562
2017-02-18 14:24:35 +00:00
Jakub Jelinek c28fcc601c re PR target/79569 (Unrecognized command line option ‘-m3dnowa’)
PR target/79569
	* config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
	(ix86_handle_option): Handle OPT_m3dnowa.
	* doc/invoke.texi (-m3dnowa): Document.
	* doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
	-m3dnowa instead of -m3dnow -march=athlon.

	* gcc.target/i386/3dnowA-3.c: New test.

From-SVN: r245561
2017-02-18 14:14:43 +01:00
Jakub Jelinek c26159516d re PR target/79559 (ICE in ix86_print_operand, at config/i386/i386.c:18189)
PR target/79559
	* config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
	instead of gcc_assert for K, r and R code checks.  Formatting fixes.

	* gcc.target/i386/pr79559.c: New test.

From-SVN: r245560
2017-02-18 14:13:43 +01:00
Joseph Myers 97fcf7446c Restore DECIMAL_DIG macro to C99/C11 value.
By extending the set of floating types, TS 18661-3 thereby affected
the definition of DECIMAL_DIG, which is defined in terms of the
"widest supported floating type".  This is not conditional on whether
__STDC_WANT_IEC_60559_TYPES_EXT__ is defined when <float.h> is
included.

I raised this possible incompatibility with C11 (an implementation
should be able to conform simultaneously with C11, and with C11 + TS
18661) in DR#501.  This is not yet resolved, but the latest proposal
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2108.pdf> would
obsolete DECIMAL_DIG with the intention of limiting it to the C11
types (so making it equivalent to LDBL_DECIMAL_DIG).  (This proposal
is intended to go along with a corresponding change to TS 18661-3 to
avoid the new types and non-arithmetic interchange encodings affecting
the value of DECIMAL_DIG.)

To avoid releasing GCC 7 with a wider-than-C11 value of DECIMAL_DIG
and possibly reverting back to a C11 value in a future release, this
patch reverts back to the C11 value now.  If the proposed resolution
to DR#501 changes again so that DECIMAL_DIG *should* have a
wider-than-C11 value, we can move back to a wider-than-C11 value in
GCC 8.

Bootstrapped with no regressions on x86_64-pc-linux-gnu.

gcc/c-family:
	* c-cppbuiltin.c (builtin_define_float_constants): Define
	__DECIMAL_DIG__ to the value for long double.

gcc/testsuite:
	* gcc.dg/c11-float-2.c: New test.
	* gcc.dg/torture/float128-floath.c,
	gcc.dg/torture/float128x-floath.c,
	gcc.dg/torture/float16-floath.c, gcc.dg/torture/float32-floath.c,
	gcc.dg/torture/float32x-floath.c, gcc.dg/torture/float64-floath.c,
	gcc.dg/torture/float64x-floath.c: Do not test comparison of
	*_DECIMAL_DIG macros with DECIMAL_DIG.

From-SVN: r245555
2017-02-17 23:04:14 +00:00
Bill Schmidt a530e18167 re PR target/79261 (vec_xxpermdi appears to have endian issues)
[gcc]

2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/79261
	* config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
	support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
	* config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
	generator for vsx_xxpermdi_<mode>_be.
	* config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
	force big-endian semantics.
	(vsx_xxpermdi_<mode>_be): New define_expand with same
	implementation as previous version of vsx_xxpermdi_<mode>.

[gcc/testsuite]

2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	PR target/79261
	* gcc.target/powerpc/vec-xxpermdi.c: New file.

From-SVN: r245545
2017-02-17 19:11:06 +00:00
Julia Koval 1d516992d1 i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
* common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
	(OPTION_MASK_ISA_PKU_UNSET): New.
	(ix86_handle_option): Handle -mrdpid.
	* config/i386/cpuid.h (bit_RDPID): New.
	* config/i386/driver-i386.c (host_detect_local_cpu):
	Detect RDPID feature.
	* config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
	* config/i386/i386-c.c (ix86_target_macros_internal):
	Handle RDPID flag.
	* config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
	(ix86_valid_target_attribute_inner_p): Add "rdpid".
	(ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
	* config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
	* config/i386/i386.md (define_insn "rdpid"): New.
	* config/i386/i386.opt Add -mrdpid.
	* config/i386/immintrin.h (_rdpid_u32): New.

testsuite/ChangeLog:

	* gcc.target/i386/rdpid.c New test.
	* gcc.target/i386/sse-12.c: Add -mrdpid.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.
	* g++.dg/other/i386-2.C: Ditto.
	* g++.dg/other/i386-3.C: Ditto.

From-SVN: r245540
2017-02-17 19:11:28 +01:00
Segher Boessenkool 3185712c77 testsuite: pr59833.c and pr61441.c should use -fsignaling-nans
The testcases pr59833.c and pr61441.c check whether signaling NaNs as
input to some operation result in quiet NaNs.  Without -fsignaling-nans
this is not guaranteed to happen.  So, this patch add this option to
these testcases.


	* gcc.dg/pr59833.c: Add -fsignaling-nans to options.
	* gcc.dg/pr61441.c: Ditto.

From-SVN: r245533
2017-02-17 15:51:40 +01:00
Martin Liska a261ee4913 Use HOST_WIDE_INT for a param calculation (PR rtl-optimization/79574).
2017-02-17  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/79574
	* gcc.dg/pr79574.c: New test.
2017-02-17  Martin Liska  <mliska@suse.cz>

	PR rtl-optimization/79574
	* gcse.c (want_to_gcse_p): Prevent integer overflow.

From-SVN: r245531
2017-02-17 14:46:14 +00:00
Marek Polacek 5bf69d74ab re PR middle-end/79536 (ICE in fold_binary_loc, at fold-const.c:9060)
PR middle-end/79536
	* fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
	(fold_negate_expr): New wrapper.

	* gcc.dg/torture/pr79536.c: New test.

From-SVN: r245526
2017-02-17 09:51:38 +00:00
Alan Modra a72b242eac re PR rtl-optimization/79286 (ira and lra wrong code at -O2 and -Os on i686-linux)
2017-02-16  Alan Modra  <amodra@gmail.com>

	PR rtl-optimization/79286
	* ira.c (def_dominates_uses): New function.
	(update_equiv_regs): Don't create an equivalence for insns that
	may trap where the register def does not dominate the use.

	* gcc.c-torture/execute/pr79286.c: New.

From-SVN: r245521
2017-02-16 15:56:51 -07:00
Jakub Jelinek bcac0b4dac re PR c++/79512 (ICE: Segfault in gimple_build_call_1, at gimple.c:218)
PR c++/79512
c/
	* c-parser.c (c_parser_omp_target): For -fopenmp-simd
	ignore #pragma omp target even when not followed by identifier.
cp/
	* parser.c (cp_parser_omp_target): For -fopenmp-simd
	ignore #pragma omp target even when not followed by identifier.
testsuite/
	* c-c++-common/gomp/pr79512.c: New test.

From-SVN: r245504
2017-02-16 13:02:24 +01:00