160103 Commits

Author SHA1 Message Date
Jakub Jelinek
454144fcc5 re PR target/84565 (ICE in extract_insn, at recog.c:2304 on aarch64)
PR fortran/84565
	* config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use
	aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero.

	* gfortran.dg/pr84565.f90: New test.

From-SVN: r258333
2018-03-07 11:39:32 +01:00
Jakub Jelinek
b6f03d1312 re PR c++/84704 (internal compiler error: gimplification failed)
PR c++/84704
	* gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag
	on tmp_var.
	* tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG,
	don't print names of DECL_NAMELESS DECL_IGNORED_P decls.

From-SVN: r258317
2018-03-07 10:19:36 +01:00
Jakub Jelinek
0f1de8d013 re PR middle-end/84723 (ICE in create_target_clone, at multiple_target.c:275)
PR middle-end/84723
	* multiple_target.c: Include tree-inline.h and intl.h.
	(expand_target_clones): Diagnose and fail if node->definition and
	!tree_versionable_function_p (node->decl).

	* gcc.target/i386/pr84723-1.c: New test.
	* gcc.target/i386/pr84723-2.c: New test.
	* gcc.target/i386/pr84723-3.c: New test.
	* gcc.target/i386/pr84723-4.c: New test.
	* gcc.target/i386/pr84723-5.c: New test.

From-SVN: r258316
2018-03-07 10:16:07 +01:00
Denis Chertykov
d06202a0cb Fix Changelog commit errro.
From-SVN: r258314
2018-03-07 11:53:33 +03:00
John David Anglin
9250872b8d pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use sprint_ul.
* config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
	sprint_ul.
	(ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
	(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
	* config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.

From-SVN: r258312
2018-03-07 00:47:41 +00:00
Steven G. Kargl
1d792a6d0e re PR fortran/64107 ([F95] Pure function as array size)
2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

        PR fortran/64107
        * gfortran.dg/pr64107.f90: New test.

From-SVN: r258311
2018-03-07 00:25:30 +00:00
John David Anglin
66a00b11a0 fptr.c (_dl_read_access_allowed): New.
* config/pa/fptr.c (_dl_read_access_allowed): New.
	(__canonicalize_funcptr_for_compare): Use it.

From-SVN: r258310
2018-03-07 00:17:32 +00:00
GCC Administrator
c0423c3e71 Daily bump.
From-SVN: r258309
2018-03-07 00:16:24 +00:00
Thomas Koenig
5867bb9a60 re PR fortran/84697 (minloc/maxloc not simplified with zero size)
2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/84697
	PR fortran/66128
	* expr.c (simplify_parameter_variable): If p is a size zero array
	and not an ARRAY_EXPR insert an empty array constructor and
	return.
	* gfortran.h: Add prototype for gfc_is_size_zero_array.
	* simplify.c (is_size_zero_array): Make non-static and rename into
	(gfc_is_size_zero_array):  Check for parameter arrays of zero
	size by comparing shape and absence of constructor.
	(gfc_simplify_all): Use gfc_is_size_zero_array instead of
	is_size_zero_array.
	(gfc_simplify_count): Likewise.
	(gfc_simplify_iall): Likewise.
	(gfc_simplify_iany): Likewise.
	(gfc_simplify_iparity): Likewise.
	(gfc_simplify_minval): Likewise.
	(gfc_simplify_maxval): Likewise.
	(gfc_simplify_product): Likewise.
	(gfc_simplify_sum): Likewise.

2017-03-06  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/84697
	PR fortran/66128
	* gfortran.dg/minmaxloc_zerosize_1.f90: New test.

From-SVN: r258305
2018-03-06 23:50:01 +00:00
Ville Voutilainen
447346e465 re PR libstdc++/84601 (std::optional<std::pair<int, int>> is not assignment copyable)
PR libstdc++/84601
* include/std/optional (_Optional_payload): Split into multiple
specializations that can handle different cases of trivial or
non-trivial assignment operators.
* testsuite/20_util/optional/84601.cc: New.
* testsuite/20_util/optional/cons/value_neg.cc: Adjust.

From-SVN: r258304
2018-03-06 23:43:03 +02:00
Marek Polacek
1dc2350519 re PR c++/84684 (inserting random code / flags produces wrong code)
PR c++/84684
	* constexpr.c (cxx_bind_parameters_in_call): Unshare evaluated
	arguments.

	* g++.dg/cpp1z/constexpr-84684.C: New test.

From-SVN: r258303
2018-03-06 21:11:46 +00:00
Jakub Jelinek
849bbdb99c re PR c/84721 (ICE in c_push_function_context, at c-decl.c:9667)
PR c/84721
	* c-parser.c (add_debug_begin_stmt): Don't add DEBUG_BEGIN_STMT if
	!building_stmt_list_p ().

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

From-SVN: r258302
2018-03-06 21:57:30 +01:00
Jakub Jelinek
2728bf8f13 re PR target/84710 (ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1896 with -O -fno-forward-propagate)
PR target/84710
	* combine.c (try_combine): Use reg_or_subregno instead of handling
	just paradoxical SUBREGs and REGs.

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

From-SVN: r258301
2018-03-06 21:41:37 +01:00
Steven G. Kargl
284ee475e1 re PR fortran/56667 (Syntax error causes misleading message: "Expected PARAMETER symbol in complex constant")
2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/56667
	* primary.c (match_sym_complex_part): Give the matcher for an implied
	do-loop a chance to run.

2018-03-06  Steven G. Kargl  <kargl@gcc.gnu.org>

	PR fortran/56667
	* gfortran.dg/implied_do_2.f90: New test.
	* gfortran.dg/coarray_8.f90: Update for new error message.

From-SVN: r258281
2018-03-06 19:05:48 +00:00
Eric Botcazou
2128896318 trans.c (convert_with_check): Fix typo in the condition guarding the overflow check emitted for the upper...
* gcc-interface/trans.c (convert_with_check): Fix typo in the condition
	guarding the overflow check emitted for the upper bound of a floating-
	point conversion.

From-SVN: r258277
2018-03-06 12:21:27 +00:00
Eric Botcazou
0d6091d924 * gcc-interface/utils.c (def_builtin_1): Bail out on error_mark_node.
From-SVN: r258276
2018-03-06 12:09:33 +00:00
Claudiu Zissulescu
b51addd6e1 [ARC] Cleanup unused functions.
Remove unused pieces of code.

gcc/
2018-03-06  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_finalize_pic): Remove function.
	(arc_must_save_register): We use single base PIC register, remove
	checks to save/restore the PIC register.
	(arc_expand_prologue): Likewise.
	* config/arc/arc-protos.h (arc_set_default_type_attributes):
	Remove.
	(arc_verify_short): Likewise.
	(arc_attr_type): Likewise.
	* config/arc/arc.c (arc_set_default_type_attributes): Remove.
	(walk_stores): Likewise.
	(arc_address_cost): Make it static.
	(arc_verify_short): Likewise.
	(branch_dest): Likewise.
	(arc_attr_type): Likewise.
	* config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove.
	(TARGET_INSN_LENGTH_PARAMETERS): Likewise.
	(arc_final_prescan_insn): Remove inserting the nops due to
	hardware hazards.  It is done in reorg step.
	(insn_length_variant_t): Remove.
	(insn_length_parameters_t): Likewise.
	(arc_insn_length_parameters): Likewise.
	(arc_get_insn_variants): Likewise.
	* config/arc/arc.h (TARGET_UPSIZE_DBR): Remove.

From-SVN: r258275
2018-03-06 12:50:16 +01:00
Jakub Jelinek
155958ddfe re PR inline-asm/84683 (internal compiler error: in move_for_stack_reg, at reg-stack.c:1173)
PR inline-asm/84683
	* reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid
	assertion failure.

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

From-SVN: r258273
2018-03-06 10:23:36 +01:00
Jakub Jelinek
16ef0a8cb7 re PR tree-optimization/84687 (error: invalid conversion in gimple call with -O3 and -ffast-math)
PR tree-optimization/84687
	* omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS
	on new_node->decl.
	* match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization.

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

From-SVN: r258272
2018-03-06 08:06:44 +01:00
Alexandre Oliva
23d63b459c [C++] [PR84231] overload on cond_expr in template
A non-type-dependent COND_EXPR within a template is reconstructed with
the original operands, after one with non-dependent proxies is built to
determine its result type.  This is problematic because the operands of
a COND_EXPR determined to be an rvalue may have been converted to denote
their rvalue nature.  The reconstructed one, however, won't have such
conversions, so lvalue_kind may not recognize it as an rvalue, which may
lead to e.g. incorrect overload resolution decisions.

If we mistake such a COND_EXPR for an lvalue, overload resolution might
regard a conversion sequence that binds it to a non-const reference as
viable, and then select that over one that binds it to a const
reference.  Only after template substitution would we rebuild the
COND_EXPR, realize it is an rvalue, and conclude the reference binding
is ill-formed, but at that point we'd have long discarded any alternate
candidates we could have used.

This patch modifies the logic that determines whether a
(non-type-dependent) COND_EXPR in a template is an lvalue, to rely on
its type, more specifically, on the presence of a REFERENCE_TYPE
wrapper.  In order to avoid a type bootstrapping problem, the
REFERENCE_TYPE that wraps the type of some such COND_EXPRs is
introduced earlier, so that we don't have to test for lvalueness of
the expression using the very code that we wish to change.


for  gcc/cp/ChangeLog

	PR c++/84231
	* tree.c (lvalue_kind): Use presence/absence of REFERENCE_TYPE
	only while processing template decls.
	* typeck.c (build_x_conditional_expr): Move wrapping of
	reference type around type...
	* call.c (build_conditional_expr_1): ... here.  Rename
	is_lvalue to is_glvalue.
	* parser.c (cp_parser_fold_expression): Catch REFERENCE_REF_P
	INDIRECT_REF of COND_EXPR too.

for  gcc/testsuite/ChangeLog

	PR c++/84231
	* g++.dg/pr84231.C: New.

From-SVN: r258271
2018-03-06 06:25:12 +00:00
Alexandre Oliva
2e1a7ecb2d [PR c++/84593] ice on braced init with uninit ref field
If an initializer expr is to be NULL in a ctor initializer list, we
ICE in picflag_from_initializer and elsewhere.

If we're missing an initializer for a reference field, we report the
error, but then build a zero initializer to avoid the ICE.

for  gcc/cp/ChangeLog

	PR c++/84593
	* init.c (build_zero_init_1): Zero-initialize references.

for  gcc/testsuite/ChangeLog

	PR c++/84593
	* g++.dg/cpp1y/pr84593.C: New.

From-SVN: r258270
2018-03-06 06:24:53 +00:00
Alexandre Oliva
1ea71a82f9 [PR c++/84492] stmt expr ending with overload
We ICEd when returning a stmt expr that ends with an overloaded
function, because instantiate_type did not know what to do with
STMT_EXPRs.  And it shouldn't have to: the expected type of a stmt
expr cannot be used to resolve its value: an unresolved overload
cannot supply the result of a stmt expr.  Catch that and report the
error in the stmt expr before we have a chance to instantiate it.

for  gcc/cp/ChangeLog

	PR c++/84492
	* semantics.c (finish_stmt_expr_expr): Reject unresolved
	overloads used as stmt expr values.

for  gcc/testsuite/ChangeLog

	PR c++/84492
	* g++.dg/pr84492.C: New.

From-SVN: r258269
2018-03-06 06:24:40 +00:00
Bill Schmidt
4900146ce0 rs6000-builtin.def (rs6000_speculation_barrier): Rename to ppc_speculation_barrier.
[gcc]

2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier):
	Rename to ppc_speculation_barrier.
	* config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to
	__builtin_ppc_speculation_barrier.

[gcc/testsuite]

2018-03-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/spec-barr-1.c: Change called function name to
	__builtin_ppc_speculation_barrier.

From-SVN: r258268
2018-03-06 01:56:41 +00:00
GCC Administrator
f75fbd29fb Daily bump.
From-SVN: r258267
2018-03-06 00:16:23 +00:00
Jason Merrill
91e534b0d4 PR c++/84708 - ICE with lambda in local class NSDMI.
* lambda.c (lambda_expr_this_capture): Handle local class NSDMI
	context.

From-SVN: r258264
2018-03-05 17:14:38 -05:00
Jakub Jelinek
9a25c5ce6e re PR target/84700 (ICE on 32-bit BE powerpc targets w/ -misel -O1)
PR target/84700
	* combine.c (combine_simplify_rtx): Don't try to simplify if
	if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
	are equal to x.

	* gcc.target/powerpc/pr84700.c: New test.

From-SVN: r258263
2018-03-05 23:13:58 +01:00
Jakub Jelinek
46cf7fa13b re PR c++/84684 (inserting random code / flags produces wrong code)
PR c++/84684
	* constexpr.c (constexpr_call_hasher::equal): Return false if
	lhs->hash != rhs->hash.  Change return 1 to return true and
	return 0 to return false.

From-SVN: r258262
2018-03-05 23:12:45 +01:00
Segher Boessenkool
34b01e681e rs6000: Don't align tiny loops to 32 bytes for POWER9
For POWER4..POWER8 we align loops of 5..8 instructions to 32 bytes
(instead of to 16 bytes) because that executes faster.  This is no
longer the case on POWER9, so we can just as well only align to 16
bytes.


	* config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops
	to 32 bytes when compiling for POWER9.

From-SVN: r258260
2018-03-05 20:11:54 +01:00
Ian Lance Taylor
14710257c1 libgo: fix typo in mksysinfo.sh script
Fix a small typo in the mksysinfo.sh script (incorrect input
    file for a grep command).
    
    Reviewed-on: https://go-review.googlesource.com/98635

From-SVN: r258259
2018-03-05 18:44:44 +00:00
Nathan Sidwell
f7af3ad637 [PR c++/84702] ICE with default tmpl arg of overload set
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00227.html
	PR c++/84702
	* pt.c (process_template_arg): Mark lookup_keep on a default arg.

	PR c++/84702
	* g++.dg/lookup/pr84702.C: New.

From-SVN: r258258
2018-03-05 18:44:24 +00:00
Jakub Jelinek
537400180d re PR target/84564 (error: unable to find a register to spill with -mforce-indirect-call)
PR target/84564
	* config/i386/i386.c (ix86_function_ok_for_sibcall): Check for
	regparm >= 3 with no arg reg available also for calls with
	flag_force_indirect_call.  Pass decl to ix86_function_regparm.

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

From-SVN: r258256
2018-03-05 17:24:43 +01:00
Marek Polacek
a2460abb82 re PR c++/84707 (internal compiler error: Segmentation fault (tree_check()/duplicate_decls()))
PR c++/84707
	* decl.c (duplicate_decls): Check DECL_NAME before accessing
	UDLIT_OPER_P.

	* g++.dg/cpp0x/inline-ns10.C: New test.

From-SVN: r258255
2018-03-05 16:15:35 +00:00
Nathan Sidwell
a5dccd4614 [PR c++/84694] ICE on template friend decl
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00221.html
	PR c++/84694
	* friend.c (do_friend): Restore check for identifier_p inside
	TEMPLATE_ID_EXPR.

	PR c++/84694
	* g++.dg/template/pr84694.C: New.

From-SVN: r258254
2018-03-05 16:12:07 +00:00
Jakub Jelinek
8c6b5eb80f re PR target/84524 (-O3 causes behavior change)
PR target/84524
	* config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
	orig,vex.
	(*<plusminus_insn><mode>3): Likewise.  Remove <mask_operand3> uses.

	* gcc.c-torture/execute/pr84524.c: New test.
	* gcc.target/i386/avx512bw-pr84524.c: New test.

From-SVN: r258252
2018-03-05 17:01:03 +01:00
Peter Bergner
75a741e87b re PR target/84264 (ICE in rs6000_emit_le_vsx_store, at config/rs6000/rs6000.c:10367 starting with r256656)
gcc/
	PR target/84264
	* config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands.

gcc/testsuite/
	PR target/84264
	* g++.dg/pr84264.C: New test.

From-SVN: r258251
2018-03-05 09:52:11 -06:00
Paolo Carlini
5625e74790 re PR c++/84618 (ICE in build_capture_proxy, at cp/lambda.c:460)
/cp
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84618
	* parser.c (cp_parser_lambda_introducer): Reject any capture not
	involving a VAR_DECL or a PARM_DECL.

/testsuite
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/84618
	* g++.dg/cpp0x/lambda/lambda-ice29.C: New.
	* g++.dg/cpp0x/lambda/lambda-ice17.C: Adjust.
	* g++.dg/cpp0x/lambda/lambda-ice23.C: Likewise.

From-SVN: r258250
2018-03-05 15:40:15 +00:00
Richard Biener
800916ab50 re PR tree-optimization/84486 (code hoisting removes alignment assumption)
2018-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84486
	* tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
	When inserting a __builtin_assume_aligned call set the LHS
	SSA name alignment info accordingly.

From-SVN: r258249
2018-03-05 15:00:48 +00:00
Wilco Dijkstra
b5b33e1134 [AArch64] PR84114: Avoid reassociating FMA
As discussed in the PR, the reassociation phase runs before FMAs are formed
and so can significantly reduce FMA opportunities.  Although reassociation
could be switched off, it helps in many cases, so a better alternative is to
only avoid reassociation of floating point additions.  This fixes the testcase
and gives 1% speedup on SPECFP2017, fixing the performance regression.

    gcc/
	PR tree-optimization/84114
	* config/aarch64/aarch64.c (aarch64_reassociation_width)
	Avoid reassociation of FLOAT_MODE addition.

From-SVN: r258248
2018-03-05 14:40:55 +00:00
Olga Makhotina
13b93d4b89 Enable WBOINVD and PCONFIG instructions.
2018-03-05  Olga Makhotina  <olga.makhotina@intel.com>

Enable WBOINVD and PCONFIG instructions.

gcc/
	* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET,
	OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET,
	OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions.
	(ix86_handle_option): Handle -mpconfig and -mwbnoinvd.
	* config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers.
	* config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New.
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig
	and -mwbnoinvd.
	* config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd,
	__builtin_ia32_wbinvd): New builtins.
	(SPECIAL_ARGS2): New.
	* config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New.
	(SPECIAL_ARGS2): New.
	* config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd.
	(ix86_valid_target_attribute_inner_p): Ditto.
	(ix86_init_mmx_sse_builtins): Add special_args2.
	* config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD,
	TARGET_WBNOINVD_P): New.
	* config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New.
	(define_insn "wbinvd", define_insn "wbnoinvd"): New.
	* config/i386/i386.opt: Add -mpconfig and -mwbnoinvd.
	* config/i386/immintrin.h (_wbinvd): New intrinsic.
	* config/i386/pconfigintrin.h: New file.
	* config/i386/wbnoinvdintrin.h: Ditto.
	* config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.h.
	* doc/invoke.texi (-mpconfig, -mwbnoinvd): New.

gcc/testsuite/
	* g++.dg/other/i386-2.C: Add -mpconfig and -mwbnoinvd.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/sse-12.c: Ditto.
	* gcc.target/i386/sse-13.c: Ditto.
	* gcc.target/i386/sse-14.c: Ditto.
	* gcc.target/i386/sse-23.c: Add pconfig and wbnoinvd.
	* gcc.target/i386/wbinvd-1.c: New test.
	* gcc.target/i386/wbnoinvd-1.c: Ditto.
	* gcc.target/i386/pconfig-1.c: Ditto.

From-SVN: r258247
2018-03-05 15:37:54 +01:00
Pádraig Brady
35a313aaf2 [PR c++/84497] ref to undefined tls init
https://gcc.gnu.org/ml/gcc-patches/2018-03/msg00209.html
	PR c++/84497
	* decl2.c (get_tls_init_fn): Check TYPE_HAS_TRIVIAL_DFLT too.

	PR c++/84497
	* g++.dg/cpp0x/pr84497.C: New.

Co-Authored-By: Jason Merrill <jason@redhat.com>
Co-Authored-By: Nathan Sidwell <nathan@acm.org>

From-SVN: r258244
2018-03-05 13:48:43 +00:00
Richard Biener
36a9f50ca9 re PR tree-optimization/84670 (ICE: in compute_antic_aux, at tree-ssa-pre.c:2148 with -O2 -fno-tree-dominator-opts)
2018-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84670
	* tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs
	member.
	(BB_VISITED_WITH_VISITED_SUCCS): New define.
	(compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS.
	(compute_antic_aux): Only assert the number of values in ANTIC_IN
	doesn't grow if all successors (recursively) were visited at least
	once.

	* gcc.dg/pr84670-1.c: New testcase.
	* gcc.dg/pr84670-2.c: Likewise.
	* gcc.dg/pr84670-3.c: Likewise.
	* gcc.dg/pr84670-4.c: Likewise.

From-SVN: r258243
2018-03-05 13:18:12 +00:00
Richard Biener
144a822fec re PR tree-optimization/84650 ([graphite] ICE: Segmentation fault (in create_new_iv))
2018-03-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84650
	* tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache
	if executed in the loop pipeline.

	* gcc.dg/graphite/pr84650.c: New testcase.

From-SVN: r258242
2018-03-05 12:49:07 +00:00
Paolo Carlini
a0445a5fb1 re PR c++/82022 (constexpr lambda in template context: expression ‘<lambda>’ is not a constant expression)
2018-03-05  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/82022
	* g++.dg/cpp1z/constexpr-lambda20.C: New.

From-SVN: r258241
2018-03-05 10:19:11 +00:00
Sandra Loosemore
e095eec19a configfiles.texi (Configuration Files): Move info about conditionalizing $target-protos.h to...
2018-03-05  Sandra Loosemore  <sandra@codesourcery.com>

	gcc/
	* doc/configfiles.texi (Configuration Files): Move info about
	conditionalizing $target-protos.h to...
	* doc/sourcebuild.texi (Back End): Here.  Explain how $target.h
	differs from $target-protos.h.

From-SVN: r258240
2018-03-05 01:31:24 -05:00
Kito Cheng
142439c50c [NDS32] Implment setmem pattern.
gcc/
	* config/nds32/nds32-protos.h (nds32_expand_setmem): Declare.
	* config/nds32/nds32-multiple.md (setmemsi): Define.
	* config/nds32/nds32-memory-manipulation.c
	(nds32_gen_dup_4_byte_to_word_value): New.
	(emit_setmem_word_loop): New.
	(emit_setmem_byte_loop): New.
	(nds32_expand_setmem_loop): New.
	(nds32_expand_setmem_loop_v3m): New.
	(nds32_expand_setmem_unroll): New.
	(nds32_expand_setmem): New.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r258239
2018-03-05 02:27:30 +00:00
GCC Administrator
9322e1aa5c Daily bump.
From-SVN: r258238
2018-03-05 00:16:13 +00:00
Kito Cheng
eab7aaedc7 [NDS32] Rename nds32_expand_movmemqi to nds32_expand_movmemsi and rewrite its implementation.
gcc/
	*config/nds32/nds32-memory-manipulation.c
	(nds32_emit_load_store): New.
	(nds32_emit_post_inc_load_store): New.
	(nds32_emit_mem_move): New.
	(nds32_emit_mem_move_block): New.
	(nds32_expand_movmemsi_loop_unknown_size): New.
	(nds32_expand_movmemsi_loop_known_size): New.
	(nds32_expand_movmemsi_loop): New.
	(nds32_expand_movmemsi_unroll): New.
	(nds32_expand_movmemqi): Rename ...
	(nds32_expand_movmemsi): ... to this.
	*config/nds32/nds32-multiple.md (movmemqi): Rename ...
	(movmemsi): ... to this.
	*config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ...
	(nds32_expand_movmemsi): ... to this.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r258235
2018-03-04 16:43:09 +00:00
Kito Cheng
32a6f4f488 [NDS32] Refine load_multiple and store_multiple.
gcc/
	* config/nds32/nds32-protos.h
	(nds32_expand_load_multiple): New arguments.
	(nds32_expand_store_multiple): Ditto.
	(nds32_valid_multiple_load_store): Rename ...
	(nds32_valid_multiple_load_store_p): ... to this.
	* config/nds32/nds32-memory-manipulation.c
	(nds32_expand_load_multiple): Refine implementation.
	(nds32_expand_store_multiple): Ditto.
	* config/nds32/nds32-multiple.md
	(load_multiple): Update nds32_expand_load_multiple interface.
	(store_multiple): Update nds32_expand_store_multiple interface.
	* config/nds32/nds32-predicates.c
	(nds32_valid_multiple_load_store): Rename ...
	(nds32_valid_multiple_load_store_p): ... to this and refine
	implementation.
	* config/nds32/predicates.md
	(nds32_load_multiple_and_update_address_operation): New predicate.
	(nds32_store_multiple_and_update_address_operation): New predicate.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
Co-Authored-By: Monk Chiang <sh.chiang04@gmail.com>

From-SVN: r258234
2018-03-04 16:27:34 +00:00
Kito Cheng
264159d28c [NDS32] Add load_multiple,store_multiple and new attribute combo.
gcc/
	* config/nds32/nds32.md (type): Add load_multiple and store_multiple.
	(combo): New attribute.
	* config/nds32/nds32-multiple.md: Refine patterns with new attributes.

Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>

From-SVN: r258232
2018-03-04 07:58:34 +00:00
Jason Merrill
38946ea192 PR c++/84686 - missing volatile loads.
* cvt.c (convert_to_void): Call maybe_undo_parenthesized_ref.

From-SVN: r258231
2018-03-04 00:32:39 -05:00