aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-08-30decl.c (annotate_value): Inline the call also if List_Representation_Info is ↵Eric Botcazou2-1/+6
greater than 3. * gcc-interface/decl.c (annotate_value) <CALL_EXPR>: Inline the call also if List_Representation_Info is greater than 3. From-SVN: r275188
2019-08-30* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Add assertion.Eric Botcazou2-0/+7
From-SVN: r275187
2019-08-30* doc/invoke.texi (-Wvolatile): Use @code for volatile.Marek Polacek2-7/+12
From-SVN: r275178
2019-08-30gigi.h (gigi_checking_assert): New macro.Eric Botcazou4-146/+83
* gcc-interface/gigi.h (gigi_checking_assert): New macro. * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>: Remove redundant test and adjust comments. Minor tweaks. * gcc-interface/trans.c (Call_to_gnu): Do not generate range checks, instead assert that the Do_Range_Check flag is not set. Adjust call to convert_with_check. (gnat_to_gnu): Likewise. (assoc_to_constructor): Likewise. (pos_to_constructor): Likewise. Remove GNAT_COMPONENT_TYPE parameter. (emit_range_check): Delete. (convert_with_check): Remove RANGE_P parameter and adjust. Do a single overflow check for modular types. From-SVN: r275174
2019-08-30arm.md (unaligned_loaddi, [...]): New unspec insn patterns.Bernd Edlinger4-6/+55
2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de> * config/arm/arm.md (unaligned_loaddi, unaligned_storedi): New unspec insn patterns. * config/arm/neon.md (unaligned_storev8qi): Likewise. * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi and unaligned_storedi for 4-byte aligned memory. (arm_block_set_aligned_vect): Use unaligned_storev8qi for 4-byte aligned memory. From-SVN: r275063
2019-08-30[PR 91579] Avoid creating redundant PHI nodes in tail-call passMartin Jambor4-23/+63
2019-08-30 Martin Jambor <mjambor@suse.cz> tree-optimization/91579 * tree-tailcall.c (tailr_arg_needs_copy): New variable. (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as appropriate. (arg_needs_copy_p): Removed. (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling arg_needs_copy_p. (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy. testsuite/ * gcc.dg/tree-ssa/pr91579.c: New test. From-SVN: r275062
2019-08-30Daily bump.GCC Administrator1-1/+1
From-SVN: r275059
2019-08-29* config/i386/i386-features.cUros Bizjak2-4/+19
(general_scalar_chain::compute_convert_gain): Correct cost for double-word shifts. (general_scalar_to_vector_candidate_p): Reject count operands greater or equal to mode bitsize. From-SVN: r275055
2019-08-29i386.c (inline_secondary_memory_needed): Return true for moves between SSE ↵Uros Bizjak2-17/+20
and non-general registers and between mask... * config/i386/i386.c (inline_secondary_memory_needed): Return true for moves between SSE and non-general registers and between mask and non-general registers. (ix86_register_move_cost): Remove stalled comment. From-SVN: r275050
2019-08-29* ChangeLog: Fix wrong ChangeLog of my last entry.Uros Bizjak1-5/+2
From-SVN: r275049
2019-08-29i386-features.c (general_scalar_chain::convert_insn): Guard debug work with ↵Richard Biener2-1/+6
MAY_HAVE_DEBUG_BIND_INSNS. 2019-08-29 Richard Biener <rguenther@suse.de> * config/i386/i386-features.c (general_scalar_chain::convert_insn): Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS. From-SVN: r275031
2019-08-29re PR bootstrap/91580 (i686-{darwin, linux} bootstrap fails after r274926)Richard Biener2-3/+45
2019-08-29 Richard Biener <rguenther@suse.de> PR bootstrap/91580 * config/i386/i386-features.c (general_scalar_chain::convert_insn): Do not emit scalar copies for debug-insns, instead replace their uses with the reg copy used in the chain or reset them if there is a reaching definition outside of the chain as well. From-SVN: r275030
2019-08-29re PR target/91560 (Try harder for AVX non-AVX2 cross-lane permutations)Jakub Jelinek4-19/+144
PR target/91560 * config/i386/i386-expand.c (expand_vec_perm_movs, expand_vec_perm_blend, expand_vec_perm_vpermil, expand_vec_perm_pshufb, expand_vec_perm_1, expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr, expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1, expand_vec_perm_vperm2f128, expand_vec_perm_interleave3, expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf, expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function comments - replace ix86_expand_vec_perm_builtin_1 with ix86_expand_vec_perm_const_1. (expand_vec_perm2_vperm2f128_vblend): New function. (ix86_expand_vec_perm_const_1): New forward declaration. Call expand_vec_perm2_vperm2f128_vblend as last resort. (canonicalize_perm): Formatting fix. * gcc.dg/torture/vshuf-8.inc: Add two further permutations. From-SVN: r275027
2019-08-29re PR tree-optimization/91351 (-fstrict-enums generates incorrect code)Jakub Jelinek6-11/+74
PR tree-optimization/91351 * tree-cfg.c (generate_range_test): Use range_check_type instead of unsigned_type_for. * tree-cfgcleanup.c (convert_single_case_switch): Punt if range_check_type returns NULL. * tree-switch-conversion.c (switch_conversion::build_one_array): Use range_check_type instead of unsigned_type_for, don't perform linear opt if it returns NULL. (bit_test_cluster::find_bit_tests): Formatting fix. (bit_test_cluster::emit): Use range_check_type instead of unsigned_type_for. (switch_decision_tree::try_switch_expansion): Punt if range_check_type returns NULL. * g++.dg/opt/pr91351.C: New test. From-SVN: r275026
2019-08-29decl.c (check_var_type): Add location_t parameter and use it.Paolo Carlini12-20/+42
/cp 2019-08-29 Paolo Carlini <paolo.carlini@oracle.com> * decl.c (check_var_type): Add location_t parameter and use it. (grokdeclarator): Adjust call. * pt.c (tsubst_decl): Likewise. * cp-tree.h: Adjust declaration. /testsuite 2019-08-29 Paolo Carlini <paolo.carlini@oracle.com> * g++.dg/spellcheck-typenames.C: Adjust expected locations. * g++.dg/cpp0x/pr84676.C: Check locations. * g++.dg/other/pr88187.C: Likewise. * g++.dg/parse/crash13.C: Likewise. * g++.dg/parse/crash46.C: Likewise. * g++.dg/parse/template28.C: Likewise. * g++.dg/parse/typename4.C: Likewise. From-SVN: r275025
2019-08-29re PR tree-optimization/91568 (internal compiler error: in ↵Richard Biener5-9/+56
vect_schedule_slp_instance, at tree-vect-slp.c:3922) 2019-08-29 Richard Biener <rguenther@suse.de> PR tree-optimization/91568 * tree-vectorizer.h (_slp_tree::max_nunits): Add. (vect_update_max_nunits): Add overload for poly_uint64. * tree-vect-slp.c (vect_create_new_slp_node): Initialize it. (vect_build_slp_tree): Record max_nunits into the subtree and merge it upwards. (vect_print_slp_tree): Print max_nunits. * gfortran.dg/pr91568.f: New testcase. From-SVN: r275023
2019-08-29Implement P1152R4: Deprecating some uses of volatile.Marek Polacek57-67/+814
PR c++/91361 * c-opts.c (c_common_post_options): Enable -Wvolatile by default for C++2a, unless -Wno-deprecated. * c.opt (Wvolatile): New warning. * cp-gimplify.c (cp_fold): Set TREE_THIS_VOLATILE. * decl.c (grokdeclarator): Warn about a volatile-qualified structured binding and return type. (grokparms): Warn about a volatile-qualified function parameter. * expr.c (mark_use) <case MODIFY_EXPR>: Emit a -Wvolatile warning. * typeck.c (cp_build_unary_op): Emit a -Wvolatile warning for pre and post ++/-- on a volatile operand. (genericize_compound_lvalue): Use a better location. Don't lose TREE_THIS_VOLATILE. (cp_build_modify_expr): Emit a -Wvolatile warning for a compound assignment whose LHS is volatile-qualified. Build the assignment with a more precise location. * doc/invoke.texi: Document -Wvolatile. * c-c++-common/Wbool-operation-1.c: Use -Wno-volatile in C++. * c-c++-common/gomp/atomic-1.c: Likewise. * c-c++-common/gomp/atomic-9.c: Likewise. * c-c++-common/gomp/depend-iterator-1.c: Likewise. * c-c++-common/gomp/loop-1.c: Adjust warning location for C++. * c-c++-common/gomp/order-3.c: Likewise. * c-c++-common/pr69733.c: Use -Wno-volatile in C++. * c-c++-common/spec-barrier-2.c: Likewise. * c-c++-common/tm/pr54893.c: Likewise. * g++.dg/cpp0x/pr65327.C: Add dg-warning. * g++.dg/cpp0x/rv-conv2.C: Likewise. * g++.dg/cpp0x/rv1n.C: Likewise. * g++.dg/cpp0x/rv1p.C: Likewise. * g++.dg/cpp0x/rv2n.C: Likewise. * g++.dg/cpp0x/rv2p.C: Likewise. * g++.dg/cpp0x/rv3n.C: Likewise. * g++.dg/cpp0x/rv3p.C: Likewise. * g++.dg/cpp0x/rv4n.C: Likewise. * g++.dg/cpp0x/rv4p.C: Likewise. * g++.dg/cpp0x/rv5n.C: Likewise. * g++.dg/cpp0x/rv5p.C: Likewise. * g++.dg/cpp0x/rv6n.C: Likewise. * g++.dg/cpp0x/rv6p.C: Likewise. * g++.dg/cpp0x/rv7n.C: Likewise. * g++.dg/cpp0x/rv7p.C: Likewise. * g++.dg/cpp0x/rv8p.C: Likewise. * g++.dg/cpp0x/trailing14.C: Use -Wno-volatile. * g++.dg/cpp1y/new1.C: Add dg-warning. * g++.dg/cpp2a/volatile1.C: New test. * g++.dg/cpp2a/volatile2.C: New test. * g++.dg/cpp2a/volatile3.C: New test. * g++.dg/cpp2a/volatile4.C: New test. * g++.dg/expr/bool3.C: Add dg-warning. * g++.dg/expr/bool4.C: Likewise. * g++.dg/expr/cond9.C: Likewise. * g++.dg/ext/vector25.C: Likewise. * g++.dg/gomp/depend-iterator-1.C: Use -Wno-volatile. * g++.dg/inherit/covariant21.C: Add dg-warning. * g++.dg/init/ref18.C: Likewise. * g++.dg/ipa/pr63838.C: Likewise. * g++.dg/overload/rvalue2.C: Likewise. * g++.dg/parse/semicolon4.C: Likewise. * g++.dg/warn/Wreturn-type-4.C: Likewise. * g++.dg/warn/pr36069.C: Likewise. * g++.old-deja/g++.mike/p9506.C: Likewise. * g++.old-deja/g++.other/volatile1.C: Likewise. From-SVN: r275022
2019-08-29Daily bump.GCC Administrator1-1/+1
From-SVN: r275021
2019-08-28* es.po: Update.Joseph Myers2-51/+34
From-SVN: r275012
2019-08-28runtime: move osinit to GoIan Lance Taylor1-1/+1
This is a step toward updating libgo to 1.13. This adds the 1.13 version of the osinit function to Go code, and removes the corresponding code from the C runtime. This should simplify future updates. Some additional 1.13 code was brought in to simplify this change. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191717 From-SVN: r275010
2019-08-28re PR fortran/91551 (ICE in sort_actual, at fortran/intrinsic.c:4193)Steven G. Kargl4-22/+49
2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91551 * intrinsic.c (sort_actual): ALLOCATED has one argument. Check for no argument case. 2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91551 * gfortran.dg/allocated_3.f90 From-SVN: r275009
2019-08-28PR c++/91360 - Implement C++20 P1143R2: constinit.Marek Polacek28-17/+556
* c-common.c (c_common_reswords): Add constinit and __constinit. (keyword_is_decl_specifier): Handle RID_CONSTINIT. * c-common.h (enum rid): Add RID_CONSTINIT, RID_FIRST_CXX20, and RID_LAST_CXX20. (D_CXX20): Define. * c-cppbuiltin.c (c_cpp_builtins): Define __cpp_constinit. * c-format.c (cxx_keywords): Add "constinit". * c.opt (Wc++2a-compat, Wc++20-compat): New options. * cp-tree.h (TINFO_VAR_DECLARED_CONSTINIT): Define. (LOOKUP_CONSTINIT): Define. (enum cp_decl_spec): Add ds_constinit. * decl.c (check_tag_decl): Give an error for constinit in type declarations. (check_initializer): Also check LOOKUP_CONSTINIT. (cp_finish_decl): Add checking for a constinit declaration. Set TINFO_VAR_DECLARED_CONSTINIT. (grokdeclarator): Add checking for a declaration with the constinit specifier. * lex.c (init_reswords): Handle D_CXX20. * parser.c (cp_lexer_get_preprocessor_token): Pass a better location to warning_at. Warn about C++20 keywords. (cp_keyword_starts_decl_specifier_p): Handle RID_CONSTINIT. (cp_parser_diagnose_invalid_type_name): Add an inform about constinit. (cp_parser_decomposition_declaration): Maybe pass LOOKUP_CONSTINIT to cp_finish_decl. (cp_parser_decl_specifier_seq): Handle RID_CONSTINIT. (cp_parser_init_declarator): Maybe pass LOOKUP_CONSTINIT to cp_finish_decl. (set_and_check_decl_spec_loc): Add "constinit". * pt.c (tsubst_decl): Set TINFO_VAR_DECLARED_CONSTINIT. (instantiate_decl): Maybe pass LOOKUP_CONSTINIT to cp_finish_decl. * typeck2.c (store_init_value): If a constinit variable wasn't initialized using a constant initializer, give an error. * doc/invoke.texi: Document -Wc++20-compat. * g++.dg/cpp2a/constinit1.C: New test. * g++.dg/cpp2a/constinit2.C: New test. * g++.dg/cpp2a/constinit3.C: New test. * g++.dg/cpp2a/constinit4.C: New test. * g++.dg/cpp2a/constinit5.C: New test. * g++.dg/cpp2a/constinit6.C: New test. * g++.dg/cpp2a/constinit7.C: New test. * g++.dg/cpp2a/constinit8.C: New test. * g++.dg/cpp2a/constinit9.C: New test. * g++.dg/cpp2a/constinit10.C: New test. * g++.dg/cpp2a/constinit11.C: New test. * g++.dg/cpp2a/constinit12.C: New test. From-SVN: r275008
2019-08-28re PR fortran/91565 (ICE in gfc_simplify_reshape, at fortran/simplify.c:6707 ↵Steven G. Kargl4-3/+59
etc.) 2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91565 * simplify.c (gfc_simplify_reshape): Add additional checks of the ORDER dummy argument. 2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91565 * gfortran.dg/pr91565.f90: New test. From-SVN: r275007
2019-08-28re PR fortran/91564 (ICE in gimplify_expr, at gimplify.c:14147)Steven G. Kargl4-0/+43
2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91564 * check.c (gfc_check_kill_sub): Additional checks on status dummy argument. 2019-08-28 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/91564 * gfortran.dg/pr91564.f90: New test. From-SVN: r275005
2019-08-28compiler: handle unsafe conversion expression in escape analysisIan Lance Taylor2-1/+10
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/192037 From-SVN: r275000
2019-08-28compiler, runtime: provide index information on bounds check failureIan Lance Taylor6-190/+381
This implements https://golang.org/cl/161477 in the gofrontend. Updates golang/go#30116 Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191881 From-SVN: r274998
2019-08-28PR tree-optimization/91457 - inconsistent warning for writing past the end ↵Martin Sebor10-45/+1365
of an array member gcc/ChangeLog: PR tree-optimization/91457 * builtins.c (component_size): New function. (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF. * builtins.h (compute_objsize): Add argument. * tree-ssa-strlen.c (handle_store): Handle no-warning bit. * tree-vrp.c (vrp_prop::check_array_ref): Return warning result. (vrp_prop::check_mem_ref): Same. (vrp_prop::search_for_addr_array): Set no-warning bit. (check_array_bounds): Same. gcc/testsuite/ChangeLog: PR tree-optimization/91457 * c-c++-common/Wstringop-overflow-2.c: New test. * g++.dg/warn/Warray-bounds-8.C: New test. * g++.dg/warn/Wstringop-overflow-3.C: New test. * gcc.dg/Wstringop-overflow-15.c: New test. From-SVN: r274997
2019-08-28PR driver/80545 - option -Wstringop-overflow not recognized by FortranMartin Sebor2-1/+9
gcc/ChangeLog: PR driver/80545 * opts-common.c (option_enabled): Correct checking for language options. From-SVN: r274996
2019-08-28* config/i386/i386-features.cUros Bizjak2-3/+11
(general_scalar_chain::compute_convert_gain): Correct cost for double-word shifts. (general_scalar_to_vector_candidate_p): Reject count operands greater or equal to mode bitsize. From-SVN: r274994
2019-08-28[PR 91468] Small fixes in ipa-cp.c and ipa-prop.cMartin Jambor3-15/+17
2019-08-28 Martin Jambor <mjambor@suse.cz> PR ipa/91468 * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a checking assert a normal assert to test it really is redundant. * ipa-prop.c (compute_complex_assign_jump_func): Removed redundant test. (update_jump_functions_after_inlining): Removed combining unary arithmetic operations with an ancestor jump function. (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs instead of t. From-SVN: r274992
2019-08-28[PR c++/90613] Fix using-decl debug bloatNathan Sidwell4-16/+36
https://gcc.gnu.org/ml/gcc-patches/2019-08/msg01888.html cp/ PR c++/90613 * name-lookup.c (cp_emit_debug_info): Check for builtins during overload iteration. testsuite/ PR c++/90613 * g++.dg/lookup/using61.C: New. From-SVN: r274991
2019-08-28i386-features.c (convert_scalars_to_vector): Do not add the MD problem.Richard Biener2-1/+5
2019-08-28 Richard Biener <rguenther@suse.de> * config/i386/i386-features.c (convert_scalars_to_vector): Do not add the MD problem. From-SVN: r274990
2019-08-28Stated standards in documentationMark Eggleston2-168/+178
Correct the stated standards in documentation and for intrinsics and specific intrinsics. In C_SIZEOF the printed value is T not .TRUE.. In IPARITY example wrap BOZ constants in calls to INT. From-SVN: r274988
2019-08-28re PR middle-end/89544 (Argument marshalling incorrectly assumes stack slots ↵Bernd Edlinger2-0/+19
are naturally aligned.) 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de> PR middle-end/89544 * gcc.target/arm/unaligned-argument-3.c: New test. From-SVN: r274987
2019-08-28expr.c (expand_assignment): Handle misaligned DECLs.Bernd Edlinger8-5/+73
2019-09-28 Bernd Edlinger <bernd.edlinger@hotmail.de> Richard Biener <rguenther@suse.de> * expr.c (expand_assignment): Handle misaligned DECLs. (expand_expr_real_1): Handle FUNCTION_DECL as unaligned. * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab too. (assign_parm_setup_stack): Allocate properly aligned stack slots. * varasm.c (build_constant_desc): Align constants of misaligned types. * config/arm/predicates.md (aligned_operand): New predicate. * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use aligned_operand to check restrictions on memory addresses. * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise. * config/arm/vec-common.md (mov<VALL>): Likewise. Co-Authored-By: Richard Biener <rguenther@suse.de> From-SVN: r274986
2019-08-28re PR libgomp/91530 (Several libgomp.*/scan-* tests FAIL without avx_runtime)Jakub Jelinek2-4/+10
PR libgomp/91530 * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use V_128 iterator instead of VI_128. * testsuite/libgomp.c/scan-21.c: New test. * testsuite/libgomp.c/scan-22.c: New test. From-SVN: r274984
2019-08-28Remove code leftover that has never been used.Martin Liska2-5/+6
2019-08-28 Martin Liska <mliska@suse.cz> PR tree-optimization/90970 * builtins.c (check_access): Remove assignment to maxread as it hasn't been used since when it was introduced in r255755. From-SVN: r274983
2019-08-28PR c++/81676 - bogus -Wunused warnings in constexpr if.Marek Polacek5-0/+125
* semantics.c (maybe_mark_exp_read_r): New function. (finish_if_stmt): Call it on THEN_CLAUSE and ELSE_CLAUSE. * g++.dg/cpp1z/constexpr-if31.C: New test. * g++.dg/cpp1z/constexpr-if32.C: New test. From-SVN: r274982
2019-08-28PR c++/91428 - warn about std::is_constant_evaluated in if constexpr.Marek Polacek6-1/+101
* cp-tree.h (decl_in_std_namespace_p): Declare. * semantics.c (is_std_constant_evaluated_p): New. (finish_if_stmt_cond): Warn about "std::is_constant_evaluated ()" in an if-constexpr. * typeck.c (decl_in_std_namespace_p): No longer static. * g++.dg/cpp2a/is-constant-evaluated9.C: New test. From-SVN: r274981
2019-08-28Daily bump.GCC Administrator1-1/+1
From-SVN: r274980
2019-08-27PR tree-optimization/91567 - Spurious -Wformat-overflow warnings building ↵Martin Sebor6-5/+101
glibc (32-bit only) gcc/ChangeLog: PR tree-optimization/91567 * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths of unknown strings. * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound to PTRDIFF_MAX - 2. gcc/testsuite/ChangeLog: PR tree-optimization/91567 * gcc.dg/tree-ssa/builtin-snprintf-6.c: Xfail a subset of assertions on targets other than x86_64 to work around PR 83543. * gcc.dg/tree-ssa/builtin-sprintf-warn-22.c: New test. From-SVN: r274976
2019-08-27tree-ssa-strlen.c (printf_strlen_execute): Initialize the loop optimizer and ↵Jeff Law4-7/+122
SCEV before sizing ssa_ver_to_stridx. * tree-ssa-strlen.c (printf_strlen_execute): Initialize the loop optimizer and SCEV before sizing ssa_ver_to_stridx. * gcc.c-torture/compile/20190827-1.c: New test. From-SVN: r274975
2019-08-27re PR fortran/91496 (!GCC$ directives error if mistyped or unknown)Harald Anlauf10-2/+238
2019-08-27 Harald Anlauf <anlauf@gmx.de> PR fortran/91496 * gfortran.h: Extend struct gfc_iterator for loop annotations. * array.c (gfc_copy_iterator): Copy loop annotations by IVDEP, VECTOR, and NOVECTOR pragmas. * decl.c (gfc_match_gcc_ivdep, gfc_match_gcc_vector) (gfc_match_gcc_novector): New matcher functions handling IVDEP, VECTOR, and NOVECTOR pragmas. * match.h: Declare prototypes of matcher functions handling IVDEP, VECTOR, and NOVECTOR pragmas. * parse.c (decode_gcc_attribute, parse_do_block) (parse_executable): Decode IVDEP, VECTOR, and NOVECTOR pragmas; emit warning for unrecognized pragmas instead of error. * trans-stmt.c (gfc_trans_simple_do, gfc_trans_do): Add code to emit annotations for IVDEP, VECTOR, and NOVECTOR pragmas. * gfortran.texi: Document IVDEP, VECTOR, and NOVECTOR pragmas. PR fortran/91496 * gfortran.dg/pr91496.f90: New testcase. From-SVN: r274966
2019-08-27sse4_1-round-roundeven-1.c (dg-options): Add -mfpmath=sse.Uros Bizjak3-2/+8
* gcc.target/i386/sse4_1-round-roundeven-1.c (dg-options): Add -mfpmath=sse. * gcc.target/i386/sse4_1-round-roundeven-2.c (dg-options): Ditto. From-SVN: r274964
2019-08-27re PR target/91528 (ICE in ix86_expand_prologue at i386.c:7844 since r274481)Uros Bizjak4-0/+54
PR target/91528 * config/i386/i386-features.c (convert_scalars_to_vector): Update crtl->stack_realign_needed, crtl->stack_realign_tried and crtl->stack_realign_processed. Update crtl->drap_reg by calling targetm.calls.get_drap_rtx. If drap_rtx is non-null then Update crtl->args.internal_arg_pointer and call fixup_tail_calls. testsuite/ChangeLog: PR target/91528 * gcc.target/i386/pr91528.c: New test. From-SVN: r274962
2019-08-27re PR c++/83431 (-Wformat-truncation may incorrectly report truncation)Martin Sebor2-5/+11
gcc/testsuite/ChangeLog: PR c++/83431 PR testsuite/91562 * gcc.dg/strlenopt-8.c: Adjust pass/dump name. From-SVN: r274961
2019-08-27Options documentation fixes.Mark Eggleston2-26/+36
Ensure that options lists fit cleanly inside the margins of a PDF page. Reword description of option -ffrontend-loop-interchange so that it fits cleanly inside the margins of a PDF page. Add options to those enabled by -fdec. From-SVN: r274958
2019-08-27libgo: rebuild runtime.inc if mkruntimeinc.sh changesIan Lance Taylor1-1/+1
The Makefile was missing a dependency. Also remove runtime.inc.raw in mostlyclean. Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/191958 From-SVN: r274956
2019-08-272019-08-27 Richard Biener <rguenther@suse.de>Richard Biener3-83/+119
* config/i386/i386-features.h (general_scalar_chain::~general_scalar_chain): Add. (general_scalar_chain::insns_conv): New bitmap. (general_scalar_chain::n_sse_to_integer): New. (general_scalar_chain::n_integer_to_sse): Likewise. (general_scalar_chain::make_vector_copies): Adjust signature. * config/i386/i386-features.c (general_scalar_chain::general_scalar_chain): Outline, initialize new members. (general_scalar_chain::~general_scalar_chain): New. (general_scalar_chain::mark_dual_mode_def): Record insns we need to insert conversions at and count them. (general_scalar_chain::compute_convert_gain): Account for conversion instructions at chain boundary. (general_scalar_chain::make_vector_copies): Generate a single copy for a def by a specific insn. (general_scalar_chain::convert_registers): First populate defs_map, then make copies at out-of chain insns. From-SVN: r274953
2019-08-27re PR c++/91415 (Invalid warning for C++17 sequencing of shift operator E1<<E2.)Jakub Jelinek4-1/+45
PR c++/91415 * c-common.c (verify_tree): For LSHIFT_EXPR, RSHIFT_EXPR, COMPONENT_REF and ARRAY_REF in cxx_dialect >= cxx17 mode handle it like COMPOUND_EXPR rather than normal expression. * g++.dg/warn/sequence-pt-4.C: New test. From-SVN: r274952