On Tue, Mar 17, 2020 at 10:37 AM Jakub Jelinek via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Hi!
>
> In the r10-7197-gbae7b38cf8a21e068ad5c0bab089dedb78af3346 commit I've
> noticed duplicated word in a message, which lead me to grep for those and
> we have a tons of them.
> I've used
> grep -v 'long long\|optab optab\|template template\|double double' *.[chS] 
> */*.[chS] *.def config/*/* 2>/dev/null | grep ' \([a-zA-Z]\+\) \1 '
> Note, the command will not detect the doubled words at the start or end of
> line or when one of the words is at the end of line and the next one at the
> start of another one.
> Some of it is fairly obvious, e.g. all the "the the" cases which is
> something I've posted and committed patch for already e.g. in 2016,
> other cases are often valid, e.g. "that that" seems to look mostly ok to me.
> Some cases are quite hard to figure out, I've left out some of them from the
> patch (e.g. "and and" in some cases isn't talking about bitwise/logical and
> and so looks incorrect, but in other cases it is talking about those
> operations).
> In most cases the right solution seems to be to remove one of the duplicated
> words, but not always.
>
> I think most important are the ones with user visible messages (in the patch
> 3 of the first 4 hunks), the rest is just comments (and internal
> documentation; for that see the doc/tm.texi changes).
>
> Shall I split the patch somehow for easier review, or is it ok as is?
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?

OK.

> 2020-03-17  Jakub Jelinek  <ja...@redhat.com>
>
>         * lra-spills.c (remove_pseudos): Fix up duplicated word issue in
>         a dump message.
>         * tree-sra.c (create_access_replacement): Fix up duplicated word issue
>         in a comment.
>         * read-rtl-function.c (find_param_by_name,
>         function_reader::parse_enum_value, function_reader::get_insn_by_uid):
>         Likewise.
>         * spellcheck.c (get_edit_distance_cutoff): Likewise.
>         * tree-data-ref.c (create_ifn_alias_checks): Likewise.
>         * tree.def (SWITCH_EXPR): Likewise.
>         * selftest.c (assert_str_contains): Likewise.
>         * ipa-param-manipulation.h (class ipa_param_body_adjustments):
>         Likewise.
>         * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise.
>         * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise.
>         * langhooks.h (struct lang_hooks_for_decls): Likewise.
>         * ipa-prop.h (struct ipa_param_descriptor): Likewise.
>         * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store):
>         Likewise.
>         * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
>         * tree-ssa-reassoc.c (reassociate_bb): Likewise.
>         * tree.c (component_ref_size): Likewise.
>         * hsa-common.c (hsa_init_compilation_unit_data): Likewise.
>         * gimple-ssa-sprintf.c (get_string_length, format_string,
>         format_directive): Likewise.
>         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
>         * input.c (string_concat_db::get_string_concatenation,
>         test_lexer_string_locations_ucn4): Likewise.
>         * cfgexpand.c (pass_expand::execute): Likewise.
>         * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds,
>         maybe_diag_overlap): Likewise.
>         * rtl.c (RTX_CODE_HWINT_P_1): Likewise.
>         * shrink-wrap.c (spread_components): Likewise.
>         * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse):
>         Likewise.
>         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
>         Likewise.
>         * dwarf2out.c (dwarf2out_early_finish): Likewise.
>         * gimple-ssa-store-merging.c: Likewise.
>         * ira-costs.c (record_operand_costs): Likewise.
>         * tree-vect-loop.c (vectorizable_reduction): Likewise.
>         * target.def (dispatch): Likewise.
>         (validate_dims, gen_ccmp_first): Fix up duplicated word issue
>         in documentation text.
>         * doc/tm.texi: Regenerated.
>         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up
>         duplicated word issue in a comment.
>         * config/i386/i386.c (ix86_test_loading_unspec): Likewise.
>         * config/i386/i386-features.c (remove_partial_avx_dependency):
>         Likewise.
>         * config/msp430/msp430.c (msp430_select_section): Likewise.
>         * config/gcn/gcn-run.c (load_image): Likewise.
>         * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise.
>         * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise.
>         * config/aarch64/falkor-tag-collision-avoidance.c
>         (single_dest_per_chain): Likewise.
>         * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise.
>         * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise.
>         * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise.
>         * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant):
>         Likewise.
>         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise.
>         * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
>         * config/rs6000/rs6000-logue.c
>         (rs6000_emit_probe_stack_range_stack_clash): Likewise.
>         * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise.
>         Fix various other issues in the comment.
> c-family/
>         * c-common.c (resolve_overloaded_builtin): Fix up duplicated word
>         issue in a diagnostic message.
> cp/
>         * pt.c (tsubst): Fix up duplicated word issue in a diagnostic message.
>         (lookup_template_class_1, tsubst_expr): Fix up duplicated word issue
>         in a comment.
>         * parser.c (cp_parser_statement, cp_parser_linkage_specification,
>         cp_parser_placeholder_type_specifier,
>         cp_parser_constraint_requires_parens): Likewise.
>         * name-lookup.c (suggest_alternative_in_explicit_scope): Likewise.
> fortran/
>         * array.c (gfc_check_iter_variable): Fix up duplicated word issue
>         in a comment.
>         * arith.c (gfc_arith_concat): Likewise.
>         * resolve.c (gfc_resolve_ref): Likewise.
>         * frontend-passes.c (matmul_lhs_realloc): Likewise.
>         * module.c (gfc_match_submodule, load_needed): Likewise.
>         * trans-expr.c (gfc_init_se): Likewise.
>
> --- gcc/lra-spills.c.jj 2020-03-16 22:56:55.557043260 +0100
> +++ gcc/lra-spills.c    2020-03-16 23:14:52.458127503 +0100
> @@ -434,7 +434,7 @@ remove_pseudos (rtx *loc, rtx_insn *insn
>               lra_get_insn_recog_data (insn)->used_insn_alternative = -1;
>               if (lra_dump_file != NULL)
>                 fprintf (lra_dump_file,
> -                        "Memory subreg was simplified in in insn #%u\n",
> +                        "Memory subreg was simplified in insn #%u\n",
>                          INSN_UID (insn));
>             }
>         }
> --- gcc/c-family/c-common.c.jj  2020-03-05 07:57:41.650447053 +0100
> +++ gcc/c-family/c-common.c     2020-03-16 23:28:25.560109119 +0100
> @@ -7427,7 +7427,7 @@ resolve_overloaded_builtin (location_t l
>               warning_at (input_location, 0,
>                           "this target does not define a speculation barrier; 
> "
>                           "your program will still execute correctly, "
> -                         "but incorrect speculation may not be be "
> +                         "but incorrect speculation may not be "
>                           "restricted");
>
>             /* If the optional second argument is present, handle any side
> --- gcc/cp/pt.c.jj      2020-03-15 01:25:58.369049305 +0100
> +++ gcc/cp/pt.c 2020-03-16 23:32:10.737777110 +0100
> @@ -9682,7 +9682,7 @@ lookup_template_class_1 (tree d1, tree a
>        if (entry)
>         return entry->spec;
>
> -      /* If the the template's constraints are not satisfied,
> +      /* If the template's constraints are not satisfied,
>           then we cannot form a valid type.
>
>           Note that the check is deferred until after the hash
> @@ -15688,7 +15688,7 @@ tsubst (tree t, tree args, tsubst_flags_
>             else if (TYPENAME_IS_CLASS_P (t) && !CLASS_TYPE_P (f))
>               {
>                 if (complain & tf_error)
> -                 error ("%qT resolves to %qT, which is is not a class type",
> +                 error ("%qT resolves to %qT, which is not a class type",
>                          t, f);
>                 else
>                   return error_mark_node;
> @@ -17855,7 +17855,7 @@ tsubst_expr (tree t, tree args, tsubst_f
>      case RANGE_FOR_STMT:
>        {
>         /* Construct another range_for, if this is not a final
> -          substitution (for inside inside a generic lambda of a
> +          substitution (for inside a generic lambda of a
>            template).  Otherwise convert to a regular for.  */
>          tree decl, expr;
>          stmt = (processing_template_decl
> --- gcc/tree-sra.c.jj   2020-02-21 21:54:56.752346267 +0100
> +++ gcc/tree-sra.c      2020-03-16 23:21:54.510889207 +0100
> @@ -2142,7 +2142,7 @@ sort_and_splice_var_accesses (tree var)
>  /* Create a variable for the given ACCESS which determines the type, name 
> and a
>     few other properties.  Return the variable declaration and store it also 
> to
>     ACCESS->replacement.  REG_TREE is used when creating a declaration to 
> base a
> -   default-definition SSA name on on in order to facilitate an uninitialized
> +   default-definition SSA name on in order to facilitate an uninitialized
>     warning.  It is used instead of the actual ACCESS type if that is not of a
>     gimple register type.  */
>
> --- gcc/read-rtl-function.c.jj  2020-01-12 11:54:36.917405805 +0100
> +++ gcc/read-rtl-function.c     2020-03-16 23:16:11.592957825 +0100
> @@ -532,7 +532,7 @@ function_reader::create_function ()
>
>  }
>
> -/* Look within the the params of FNDECL for a param named NAME.
> +/* Look within the params of FNDECL for a param named NAME.
>     Return NULL_TREE if one isn't found.  */
>
>  static tree
> @@ -969,7 +969,7 @@ function_reader::read_rtx_operand_u (rtx
>
>  /* Read a name, looking for a match against a string found in array
>     STRINGS of size NUM_VALUES.
> -   Return the index of the the matched string, or emit an error.  */
> +   Return the index of the matched string, or emit an error.  */
>
>  int
>  function_reader::parse_enum_value (int num_values, const char *const 
> *strings)
> @@ -1611,7 +1611,7 @@ function_reader::apply_fixups ()
>  }
>
>  /* Given a UID value, try to locate a pointer to the corresponding
> -   rtx_insn *, or NULL if if can't be found.  */
> +   rtx_insn *, or NULL if it can't be found.  */
>
>  rtx_insn **
>  function_reader::get_insn_by_uid (int uid)
> --- gcc/spellcheck.c.jj 2020-01-12 11:54:36.933405563 +0100
> +++ gcc/spellcheck.c    2020-03-16 23:19:21.261154369 +0100
> @@ -166,7 +166,7 @@ find_closest_string (const char *target,
>     to be meaningful, given a goal of length GOAL_LEN and a candidate of
>     length CANDIDATE_LEN.
>
> -   This is a third of the the length of the candidate or of the goal,
> +   This is a third of the length of the candidate or of the goal,
>     whichever is bigger.  */
>
>  edit_distance_t
> --- gcc/tree-data-ref.c.jj      2020-01-12 11:54:38.493382027 +0100
> +++ gcc/tree-data-ref.c 2020-03-16 23:21:08.920563064 +0100
> @@ -1751,7 +1751,7 @@ create_ifn_alias_checks (tree *cond_expr
>      return false;
>
>    /* Make sure that both DRs access the same pattern of bytes,
> -     with a constant length and and step.  */
> +     with a constant length and step.  */
>    poly_uint64 seg_len;
>    if (!operand_equal_p (dr_a.seg_len, dr_b.seg_len, 0)
>        || !poly_int_tree_p (dr_a.seg_len, &seg_len)
> --- gcc/tree.def.jj     2020-01-12 11:54:38.527381514 +0100
> +++ gcc/tree.def        2020-03-16 23:40:07.734718877 +0100
> @@ -970,7 +970,7 @@ DEFTREECODE (SWITCH_EXPR, "switch_expr",
>       is a 'default' label.
>     Operand 1 is CASE_HIGH.  If it is NULL_TREE, the label is a simple
>       (one-value) case label.  If it is non-NULL_TREE, the case is a range.
> -   Operand 2 is CASE_LABEL, which is is the corresponding LABEL_DECL.
> +   Operand 2 is CASE_LABEL, which has the corresponding LABEL_DECL.
>     Operand 3 is CASE_CHAIN.  This operand is only used in tree-cfg.c to
>       speed up the lookup of case labels which use a particular edge in
>       the control flow graph.  */
> --- gcc/cp/parser.c.jj  2020-03-16 09:01:27.723030059 +0100
> +++ gcc/cp/parser.c     2020-03-16 23:30:28.443290785 +0100
> @@ -11346,8 +11346,8 @@ cp_parser_statement (cp_parser* parser,
>           /* This must be a namespace alias definition.  */
>           if (std_attrs != NULL_TREE)
>             {
> -             /*  Attributes should be parsed as part of the the
> -                 declaration, so let's un-parse them.  */
> +             /* Attributes should be parsed as part of the
> +                declaration, so let's un-parse them.  */
>               saved_tokens.rollback();
>               std_attrs = NULL_TREE;
>             }
> @@ -14554,7 +14554,7 @@ cp_parser_linkage_specification (cp_pars
>    /* We're now using the new linkage.  */
>    push_lang_context (linkage);
>
> -  /* Preserve the location of the the innermost linkage specification,
> +  /* Preserve the location of the innermost linkage specification,
>       tracking the locations of nested specifications via a local.  */
>    location_t saved_location
>      = parser->innermost_linkage_specification_location;
> @@ -18316,7 +18316,7 @@ cp_parser_placeholder_type_specifier (cp
>      }
>
>    /* A type constraint constrains a contextually determined type or type
> -     parameter pack. However, the the Concepts TS does allow concepts
> +     parameter pack. However, the Concepts TS does allow concepts
>       to introduce non-type and template template parameters.  */
>    if (TREE_CODE (proto) != TYPE_DECL)
>      {
> @@ -27339,7 +27339,7 @@ cp_parser_constraint_requires_parens (cp
>
>        case CPP_EQ:
>         {
> -         /* An equal sign may be part of the the definition of a function,
> +         /* An equal sign may be part of the definition of a function,
>              and not an assignment operator, when parsing the expression
>              for a trailing requires-clause. For example:
>
> --- gcc/cp/name-lookup.c.jj     2020-02-14 00:03:21.022222232 +0100
> +++ gcc/cp/name-lookup.c        2020-03-16 23:29:19.366312932 +0100
> @@ -5938,7 +5938,7 @@ maybe_suggest_missing_header (location_t
>  /* Generate a name_hint at LOCATION for NAME, an IDENTIFIER_NODE for which 
> name
>     lookup failed within the explicitly provided SCOPE.
>
> -   Suggest the the best meaningful candidates (if any), otherwise
> +   Suggest the best meaningful candidates (if any), otherwise
>     an empty name_hint is returned.  */
>
>  name_hint
> --- gcc/selftest.c.jj   2020-01-12 11:54:36.931405594 +0100
> +++ gcc/selftest.c      2020-03-16 23:18:25.069984922 +0100
> @@ -95,7 +95,7 @@ assert_streq (const location &loc,
>  }
>
>  /* Implementation detail of ASSERT_STR_CONTAINS.
> -   Use strstr to determine if val_needle is is within val_haystack.
> +   Use strstr to determine if val_needle is within val_haystack.
>     ::selftest::pass if it is found.
>     ::selftest::fail if it is not found.  */
>
> --- gcc/ipa-param-manipulation.h.jj     2020-01-12 11:54:36.653409788 +0100
> +++ gcc/ipa-param-manipulation.h        2020-03-16 23:11:09.232426980 +0100
> @@ -406,7 +406,7 @@ private:
>
>    auto_vec<tree, 16> m_new_types;
>
> -  /* Vector of structures telling how to replace old parameters in in the
> +  /* Vector of structures telling how to replace old parameters in the
>       function body.  TODO: Even though there usually be only few, but should 
> we
>       use a hash?  */
>
> --- gcc/tree-ssa-math-opts.c.jj 2020-01-12 11:54:38.508381801 +0100
> +++ gcc/tree-ssa-math-opts.c    2020-03-16 23:23:45.394250256 +0100
> @@ -2477,7 +2477,7 @@ is_copysign_call_with_1 (gimple *call)
>  }
>
>  /* Try to expand the pattern x * copysign (1, y) into xorsign (x, y).
> -   This only happens when the the xorsign optab is defined, if the
> +   This only happens when the xorsign optab is defined, if the
>     pattern is not a xorsign pattern or if expansion fails FALSE is
>     returned, otherwise TRUE is returned.  */
>  static bool
> --- gcc/tree-ssa-loop-split.c.jj        2020-01-12 11:54:38.507381816 +0100
> +++ gcc/tree-ssa-loop-split.c   2020-03-16 23:23:21.723600127 +0100
> @@ -770,7 +770,7 @@ find_vdef_in_loop (struct loop *loop)
>
>           /* Non-pure call statement is conservatively assumed to impact all
>              memory locations.  So place call statements ahead of other memory
> -            stores in the vector with an idea of of using them as shortcut
> +            stores in the vector with an idea of using them as shortcut
>              terminators to memory alias analysis.  */
>           if (gimple_code (stmt) == GIMPLE_CALL)
>             info->memory_stores.safe_push (stmt);
> --- gcc/langhooks.h.jj  2020-01-12 11:54:36.670409531 +0100
> +++ gcc/langhooks.h     2020-03-16 23:14:00.503895437 +0100
> @@ -227,7 +227,7 @@ struct lang_hooks_for_decls
>    bool (*ok_for_sibcall) (const_tree);
>
>    /* Return a tree for the actual data of an array descriptor - or NULL_TREE
> -     if original tree is not an array descriptor.  If the the second argument
> +     if original tree is not an array descriptor.  If the second argument
>       is true, only the TREE_TYPE is returned without generating a new tree.  
> */
>    tree (*omp_array_data) (tree, bool);
>
> --- gcc/ipa-prop.h.jj   2020-02-25 09:01:01.484608786 +0100
> +++ gcc/ipa-prop.h      2020-03-16 23:12:31.905204999 +0100
> @@ -438,7 +438,7 @@ ipa_get_jf_ancestor_type_preserved (stru
>  struct GTY(()) ipa_param_descriptor
>  {
>    /* In analysis and modification phase, this is the PARAM_DECL of this
> -     parameter, in IPA LTO phase, this is the type of the the described
> +     parameter, in IPA LTO phase, this is the type of the described
>       parameter or NULL if not known.  Do not read this field directly but
>       through ipa_get_param and ipa_get_type as appropriate.  */
>    tree decl_or_type;
> --- gcc/tree-ssa-strlen.c.jj    2020-03-16 22:56:46.799172692 +0100
> +++ gcc/tree-ssa-strlen.c       2020-03-16 23:26:57.195415265 +0100
> @@ -4381,7 +4381,7 @@ handle_builtin_string_cmp (gimple_stmt_i
>    int idx1 = get_stridx (arg1);
>    int idx2 = get_stridx (arg2);
>
> -  /* For strncmp set to the the value of the third argument if known.  */
> +  /* For strncmp set to the value of the third argument if known.  */
>    HOST_WIDE_INT bound = -1;
>    tree len = NULL_TREE;
>    /* Extract the strncmp bound.  */
> @@ -4937,7 +4937,7 @@ handle_store (gimple_stmt_iterator *gsi,
>    tree ssaname = NULL_TREE, lhs = gimple_assign_lhs (stmt);
>    tree rhs = gimple_assign_rhs1 (stmt);
>
> -  /* The offset of the first byte in LHS modified by the the store.  */
> +  /* The offset of the first byte in LHS modified by the store.  */
>    unsigned HOST_WIDE_INT offset = 0;
>
>    if (TREE_CODE (lhs) == MEM_REF
> --- gcc/tree-ssa-dom.c.jj       2020-03-03 11:04:46.367821907 +0100
> +++ gcc/tree-ssa-dom.c  2020-03-16 23:22:17.174554220 +0100
> @@ -875,7 +875,7 @@ simplify_stmt_for_jump_threading (gimple
>                                   class avail_exprs_stack *avail_exprs_stack,
>                                   basic_block bb ATTRIBUTE_UNUSED)
>  {
> -  /* First query our hash table to see if the the expression is available
> +  /* First query our hash table to see if the expression is available
>       there.  A non-NULL return value will be either a constant or another
>       SSA_NAME.  */
>    tree cached_lhs =  avail_exprs_stack->lookup_avail_expr (stmt, false, 
> true);
> --- gcc/tree-ssa-reassoc.c.jj   2020-03-16 09:01:52.436662813 +0100
> +++ gcc/tree-ssa-reassoc.c      2020-03-16 23:26:00.612251615 +0100
> @@ -6373,7 +6373,7 @@ reassociate_bb (basic_block bb)
>                   int width;
>
>                   /* For binary bit operations, if there are at least 3
> -                    operands and the last last operand in OPS is a constant,
> +                    operands and the last operand in OPS is a constant,
>                      move it to the front.  This helps ensure that we generate
>                      (X & Y) & C rather than (X & C) & Y.  The former will
>                      often match a canonical bit test when we get to RTL.  */
> --- gcc/tree.c.jj       2020-03-11 13:25:17.852216259 +0100
> +++ gcc/tree.c  2020-03-16 23:20:14.445368262 +0100
> @@ -13663,7 +13663,7 @@ component_ref_size (tree ref, bool *inte
>      }
>
>    /* BASE is the declared object of which MEMBER is either a member
> -     or that is is cast to REFTYPE (e.g., a char buffer used to store
> +     or that is cast to REFTYPE (e.g., a char buffer used to store
>       a REFTYPE object).  */
>    tree reftype = TREE_TYPE (TREE_OPERAND (ref, 0));
>    tree basetype = TREE_TYPE (base);
> --- gcc/hsa-common.c.jj 2020-01-12 11:54:36.645409908 +0100
> +++ gcc/hsa-common.c    2020-03-16 23:09:15.367109770 +0100
> @@ -95,7 +95,7 @@ hsa_callable_function_p (tree fndecl)
>           && !lookup_attribute ("oacc function", DECL_ATTRIBUTES (fndecl)));
>  }
>
> -/* Allocate HSA structures that are are used when dealing with different
> +/* Allocate HSA structures that are used when dealing with different
>     functions.  */
>
>  void
> --- gcc/gimple-ssa-sprintf.c.jj 2020-01-12 11:54:36.623410240 +0100
> +++ gcc/gimple-ssa-sprintf.c    2020-03-16 23:06:14.122788343 +0100
> @@ -2098,7 +2098,7 @@ get_string_length (tree str, unsigned el
>    if (res.range.max < target_int_max ())
>      {
>        res.knownrange = true;
> -      /* When the the length of the longest string is known and not
> +      /* When the length of the longest string is known and not
>          excessive use it as the likely length of the string(s).  */
>        res.range.likely = res.range.max;
>      }
> @@ -2478,7 +2478,7 @@ format_string (const directive &dir, tre
>              is bounded by MB_LEN_MAX * wcslen (S).  */
>           res.range.max *= target_mb_len_max ();
>           res.range.unlikely = res.range.max;
> -         /* It's likely that the the total length is not more that
> +         /* It's likely that the total length is not more that
>              2 * wcslen (S).*/
>           res.range.likely = res.range.min * 2;
>
> @@ -3337,7 +3337,7 @@ format_directive (const call_info &info,
>         }
>        else if (!info.is_string_func ())
>         {
> -         /* If the warning is for a file function function like fprintf
> +         /* If the warning is for a file function like fprintf
>              of printf with no destination size just print the computed
>              result.  */
>           if (min == max)
> --- gcc/omp-grid.c.jj   2020-01-12 11:54:36.687409275 +0100
> +++ gcc/omp-grid.c      2020-03-16 23:15:17.390758982 +0100
> @@ -1186,7 +1186,7 @@ grid_mark_tiling_parallels_and_loops (gi
>  /* Given freshly copied top level kernel SEQ, identify the individual OMP
>     components, mark them as part of kernel, copy assignment leading to them
>     just before DST, remapping them using WI and adding new temporaries to
> -   TGT_BIND, and and return the loop that will be used for kernel dispatch.  
> */
> +   TGT_BIND, and return the loop that will be used for kernel dispatch.  */
>
>  static gomp_for *
>  grid_process_kernel_body_copy (grid_prop *grid, gimple_seq seq,
> --- gcc/input.c.jj      2020-01-12 11:54:36.648409863 +0100
> +++ gcc/input.c 2020-03-16 23:10:20.585145928 +0100
> @@ -1296,7 +1296,7 @@ string_concat_db::record_string_concaten
>    m_table->put (key_loc, concat);
>  }
>
> -/* Determine if LOC was the location of the the initial token of a
> +/* Determine if LOC was the location of the initial token of a
>     concatenation of string literal tokens.
>     If so, *OUT_NUM is written to with the number of tokens, and
>     *OUT_LOCS with the location of an array of locations of the
> @@ -2701,7 +2701,7 @@ test_lexer_string_locations_ucn4 (const
>
>    /* Verify that cpp_interpret_string works.
>       The string should be encoded in the execution character
> -     set.  Assuming that that is UTF-8, we should have the following:
> +     set.  Assuming that is UTF-8, we should have the following:
>       -----------  ----  -----  -------  ----------------
>       Byte offset  Byte  Octal  Unicode  Source Column(s)
>       -----------  ----  -----  -------  ----------------
> --- gcc/cfgexpand.c.jj  2020-02-24 15:22:17.303787284 +0100
> +++ gcc/cfgexpand.c     2020-03-16 23:03:24.427296232 +0100
> @@ -6656,7 +6656,7 @@ pass_expand::execute (function *fun)
>    if (crtl->tail_call_emit)
>      fixup_tail_calls ();
>
> -  /* BB subdivision may have created basic blocks that are are only reachable
> +  /* BB subdivision may have created basic blocks that are only reachable
>       from unlikely bbs but not marked as such in the profile.  */
>    if (optimize)
>      propagate_unlikely_bbs_forward ();
> --- gcc/gimple-ssa-warn-restrict.c.jj   2020-03-06 11:35:46.287074813 +0100
> +++ gcc/gimple-ssa-warn-restrict.c      2020-03-16 23:08:59.298347249 +0100
> @@ -577,7 +577,7 @@ builtin_memref::offset_out_of_bounds (in
>    bool hib = wi::les_p (offrng[0], offrng[1]);
>    bool lob = !hib;
>
> -  /* Set to the size remaining in the object object after subtracting
> +  /* Set to the size remaining in the object after subtracting
>       REFOFF.  It may become negative as a result of negative indices
>       into the enclosing object, such as in:
>         extern struct S { char a[4], b[3], c[1]; } *p;
> @@ -1430,7 +1430,7 @@ builtin_access::overlap ()
>  }
>
>  /* Attempt to detect and diagnose an overlapping copy in a call expression
> -   EXPR involving an an access ACS to a built-in memory or string function.
> +   EXPR involving an access ACS to a built-in memory or string function.
>     Return true when one has been detected, false otherwise.  */
>
>  static bool
> --- gcc/rtl.c.jj        2020-01-12 11:54:36.924405699 +0100
> +++ gcc/rtl.c   2020-03-16 23:17:55.958415219 +0100
> @@ -106,7 +106,7 @@ const enum rtx_class rtx_class[NUM_RTX_C
>  #undef DEF_RTL_EXPR
>  };
>
> -/* Whether rtxs with the given code code store data in the hwint field.  */
> +/* Whether rtxs with the given code store data in the hwint field.  */
>
>  #define RTX_CODE_HWINT_P_1(ENUM)                                       \
>      ((ENUM) == CONST_INT || (ENUM) == CONST_DOUBLE                     \
> --- gcc/shrink-wrap.c.jj        2020-01-12 11:54:36.932405578 +0100
> +++ gcc/shrink-wrap.c   2020-03-16 23:18:51.106600073 +0100
> @@ -1380,7 +1380,7 @@ spread_components (sbitmap components)
>
>    todo.release ();
>
> -  /* Finally, mark everything not not needed both forwards and backwards.  */
> +  /* Finally, mark everything not needed both forwards and backwards.  */
>
>    bool did_changes = false;
>
> --- gcc/fortran/array.c.jj      2020-02-10 22:43:56.574481441 +0100
> +++ gcc/fortran/array.c 2020-03-16 23:34:09.482020015 +0100
> @@ -1475,7 +1475,7 @@ static cons_stack *base;
>  static bool check_constructor (gfc_constructor_base, bool (*) (gfc_expr *));
>
>  /* Check an EXPR_VARIABLE expression in a constructor to make sure
> -   that that variable is an iteration variables.  */
> +   that that variable is an iteration variable.  */
>
>  bool
>  gfc_check_iter_variable (gfc_expr *expr)
> --- gcc/fortran/arith.c.jj      2020-01-12 11:54:36.582410859 +0100
> +++ gcc/fortran/arith.c 2020-03-16 23:33:25.265674305 +0100
> @@ -994,7 +994,7 @@ gfc_arith_concat (gfc_expr *op1, gfc_exp
>    gfc_expr *result;
>    size_t len;
>
> -  /* By cleverly playing around with constructors, is is possible
> +  /* By cleverly playing around with constructors, it is possible
>       to get mismaching types here.  */
>    if (op1->ts.type != BT_CHARACTER || op2->ts.type != BT_CHARACTER
>        || op1->ts.kind != op2->ts.kind)
> --- gcc/fortran/resolve.c.jj    2020-03-09 12:43:00.858036331 +0100
> +++ gcc/fortran/resolve.c       2020-03-16 23:35:40.031680138 +0100
> @@ -5318,7 +5318,7 @@ gfc_resolve_ref (gfc_expr *expr)
>             {
>               array_ref->u.ar.type = AR_ELEMENT;
>               expr->rank = 0;
> -             /* INQUIRY_LEN is not evaluated from the the rest of the expr
> +             /* INQUIRY_LEN is not evaluated from the rest of the expr
>                  but directly from the string length. This means that setting
>                  the array indices to one does not matter but might trigger
>                  a runtime bounds error. Suppress the check.  */
> --- gcc/fortran/frontend-passes.c.jj    2020-01-31 19:18:02.419904105 +0100
> +++ gcc/fortran/frontend-passes.c       2020-03-16 23:34:43.627514760 +0100
> @@ -3190,7 +3190,7 @@ matmul_lhs_realloc (gfc_expr *c, gfc_exp
>    gcc_assert (ar && ar->type == AR_FULL);
>
>    /* c comes in as a full ref.  Change it into a copy and make it into an
> -     element ref so it has the right form for for ALLOCATE.  In the same
> +     element ref so it has the right form for ALLOCATE.  In the same
>       switch statement, also generate the size comparison for the secod IF
>       statement.  */
>
> --- gcc/fortran/module.c.jj     2020-03-03 07:57:42.422826729 +0100
> +++ gcc/fortran/module.c        2020-03-16 23:35:22.646937383 +0100
> @@ -743,7 +743,7 @@ cleanup:
>     ordered pair whose first element is the ancestor module name and
>     whose second element is the submodule name. 'Submodule_name' is
>     used for the submodule filename and uses '@' as a separator, whilst
> -   the name of the symbol for the module uses '.' as a a separator.
> +   the name of the symbol for the module uses '.' as a separator.
>     The reasons for these choices are:
>     (i) To follow another leading brand in the submodule filenames;
>     (ii) Since '.' is not particularly visible in the filenames; and
> @@ -5044,7 +5044,7 @@ load_needed (pointer_info *p)
>    sym->attr.use_assoc = 1;
>
>    /* Unliked derived types, a STRUCTURE may share names with other symbols.
> -     We greedily converted the the symbol name to lowercase before we knew 
> its
> +     We greedily converted the symbol name to lowercase before we knew its
>       type, so now we must fix it. */
>    if (sym->attr.flavor == FL_STRUCT)
>      sym->name = gfc_dt_upper_string (sym->name);
> --- gcc/fortran/trans-expr.c.jj 2020-03-02 13:33:10.911495134 +0100
> +++ gcc/fortran/trans-expr.c    2020-03-16 23:36:14.245173870 +0100
> @@ -1639,7 +1639,7 @@ gfc_copy_se_loopvars (gfc_se * dest, gfc
>
>     Care must be taken when multiple se are created with the same parent.
>     The child se must be kept in sync.  The easiest way is to delay creation
> -   of a child se until after after the previous se has been translated.  */
> +   of a child se until after the previous se has been translated.  */
>
>  void
>  gfc_init_se (gfc_se * se, gfc_se * parent)
> --- gcc/tree-ssa-dse.c.jj       2020-03-12 09:33:28.981544120 +0100
> +++ gcc/tree-ssa-dse.c  2020-03-16 23:22:56.060979442 +0100
> @@ -88,7 +88,7 @@ static bitmap need_eh_cleanup;
>  /* STMT is a statement that may write into memory.  Analyze it and
>     initialize WRITE to describe how STMT affects memory.
>
> -   Return TRUE if the the statement was analyzed, FALSE otherwise.
> +   Return TRUE if the statement was analyzed, FALSE otherwise.
>
>     It is always safe to return FALSE.  But typically better optimziation
>     can be achieved by analyzing more statements.  */
> @@ -147,7 +147,7 @@ initialize_ao_ref_for_dse (gimple *stmt,
>    return false;
>  }
>
> -/* Given REF from the the alias oracle, return TRUE if it is a valid
> +/* Given REF from the alias oracle, return TRUE if it is a valid
>     memory reference for dead store elimination, false otherwise.
>
>     In particular, the reference must have a known base, known maximum
> --- gcc/tree-call-cdce.c.jj     2020-01-12 11:54:38.490382073 +0100
> +++ gcc/tree-call-cdce.c        2020-03-16 23:20:47.849874512 +0100
> @@ -832,7 +832,7 @@ shrink_wrap_one_built_in_call_with_conds
>       4. [guard m]: [guard m+1] for 0 <= m <= n-2
>       5. [join]: [guard n-1]
>
> -     We punt for the more complex case case of [join] being old and
> +     We punt for the more complex case of [join] being old and
>       simply free the dominance info.  We also punt on postdominators,
>       which aren't expected to be available at this point anyway.  */
>    bi_call_bb = gimple_bb (bi_call);
> --- gcc/dwarf2out.c.jj  2020-02-28 09:33:40.641403823 +0100
> +++ gcc/dwarf2out.c     2020-03-16 23:04:46.253086946 +0100
> @@ -32152,7 +32152,7 @@ dwarf2out_early_finish (const char *file
>       location related output removed and some LTO specific changes.
>       Some refactoring might make both smaller and easier to match up.  */
>
> -  /* Traverse the DIE's and add add sibling attributes to those DIE's
> +  /* Traverse the DIE's and add sibling attributes to those DIE's
>       that have children.  */
>    add_sibling_attributes (comp_unit_die ());
>    for (limbo_die_node *node = limbo_die_list; node; node = node->next)
> --- gcc/gimple-ssa-store-merging.c.jj   2020-03-03 19:47:57.314470589 +0100
> +++ gcc/gimple-ssa-store-merging.c      2020-03-16 23:06:37.057449396 +0100
> @@ -61,7 +61,7 @@
>     record the surrounding bit region, i.e. bits that could be stored in
>     a read-modify-write operation when storing the bit-field.  Record store
>     chains to different bases in a hash_map (m_stores) and make sure to
> -   terminate such chains when appropriate (for example when when the stored
> +   terminate such chains when appropriate (for example when the stored
>     values get used subsequently).
>     These stores can be a result of structure element initializers, array 
> stores
>     etc.  A store_immediate_info object is recorded for every such store.
> --- gcc/ira-costs.c.jj  2020-01-12 11:54:36.658409712 +0100
> +++ gcc/ira-costs.c     2020-03-16 23:13:38.714217509 +0100
> @@ -1319,7 +1319,7 @@ record_operand_costs (rtx_insn *insn, en
>           hard_reg_class = REGNO_REG_CLASS (other_regno);
>           bigger_hard_reg_class = 
> ira_pressure_class_translate[hard_reg_class];
>           /* Target code may return any cost for mode which does not
> -            fit the the hard reg class (e.g. DImode for AREG on
> +            fit the hard reg class (e.g. DImode for AREG on
>              i386).  Check this and use a bigger class to get the
>              right cost.  */
>           if (bigger_hard_reg_class != NO_REGS
> --- gcc/target.def.jj   2020-01-24 22:34:36.097644949 +0100
> +++ gcc/target.def      2020-03-16 23:37:38.791922814 +0100
> @@ -1519,7 +1519,7 @@ in its second parameter.",
>  void, (rtx_insn *insn, int x),
>  hook_void_rtx_insn_int)
>
> -/* The following member value is a a function that returns true is
> +/* The following member value is a function that returns true is
>     dispatch schedling is supported in hardware and condition passed
>     as the second parameter is true.  */
>  DEFHOOK
> @@ -1694,7 +1694,7 @@ DEFHOOK
>  "This hook should check the launch dimensions provided for an OpenACC\n\
>  compute region, or routine.  Defaulted values are represented as -1\n\
>  and non-constant values as 0.  The @var{fn_level} is negative for the\n\
> -function corresponding to the compute region.  For a routine is is the\n\
> +function corresponding to the compute region.  For a routine it is the\n\
>  outermost level at which partitioned execution may be spawned.  The hook\n\
>  should verify non-default values.  If DECL is NULL, global defaults\n\
>  are being validated and unspecified defaults should be filled in.\n\
> @@ -2675,7 +2675,7 @@ DEFHOOK
>   with @code{CC} for passing to @code{gen_ccmp_next} or 
> @code{cbranch_optab}.\n\
>   The insns to prepare the compare are saved in @var{prep_seq} and the 
> compare\n\
>   insns are saved in @var{gen_seq}.  They will be emitted when all the\n\
> - compares in the the conditional comparision are generated without error.\n\
> + compares in the conditional comparision are generated without error.\n\
>   @var{code} is the @code{rtx_code} of the compare for @var{op0} and 
> @var{op1}.",
>   rtx, (rtx_insn **prep_seq, rtx_insn **gen_seq, int code, tree op0, tree 
> op1),
>   NULL)
> --- gcc/tree-vect-loop.c.jj     2020-01-28 14:08:08.126108002 +0100
> +++ gcc/tree-vect-loop.c        2020-03-16 23:27:28.831947649 +0100
> @@ -6541,7 +6541,7 @@ vectorizable_reduction (stmt_vec_info st
>         }
>        /* The epilogue code relies on the number of elements being a multiple
>          of the group size.  The duplicate-and-interleave approach to setting
> -        up the the initial vector does too.  */
> +        up the initial vector does too.  */
>        if (!multiple_p (nunits_out, group_size))
>         {
>           if (dump_enabled_p ())
> --- gcc/doc/tm.texi.jj  2020-03-12 09:35:12.413024024 +0100
> +++ gcc/doc/tm.texi     2020-03-16 23:38:31.310145690 +0100
> @@ -6157,7 +6157,7 @@ but might be present in another OpenMP c
>  This hook should check the launch dimensions provided for an OpenACC
>  compute region, or routine.  Defaulted values are represented as -1
>  and non-constant values as 0.  The @var{fn_level} is negative for the
> -function corresponding to the compute region.  For a routine is is the
> +function corresponding to the compute region.  For a routine it is the
>  outermost level at which partitioned execution may be spawned.  The hook
>  should verify non-default values.  If DECL is NULL, global defaults
>  are being validated and unspecified defaults should be filled in.
> @@ -11858,7 +11858,7 @@ This function prepares to emit a compari
>   with @code{CC} for passing to @code{gen_ccmp_next} or @code{cbranch_optab}.
>   The insns to prepare the compare are saved in @var{prep_seq} and the compare
>   insns are saved in @var{gen_seq}.  They will be emitted when all the
> - compares in the the conditional comparision are generated without error.
> + compares in the conditional comparision are generated without error.
>   @var{code} is the @code{rtx_code} of the compare for @var{op0} and 
> @var{op1}.
>  @end deftypefn
>
> --- gcc/config/i386/x86-tune.def.jj     2020-01-31 19:18:02.396904445 +0100
> +++ gcc/config/i386/x86-tune.def        2020-03-17 09:13:58.411694557 +0100
> @@ -70,7 +70,7 @@ DEF_TUNE (X86_TUNE_SSE_PARTIAL_REG_DEPEN
>     upper part undefined.  */
>  DEF_TUNE (X86_TUNE_SSE_SPLIT_REGS, "sse_split_regs", m_ATHLON_K8)
>
> -/* X86_TUNE_PARTIAL_FLAG_REG_STALL: this flag disables use of of flags
> +/* X86_TUNE_PARTIAL_FLAG_REG_STALL: this flag disables use of flags
>     set by instructions affecting just some flags (in particular shifts).
>     This is because Core2 resolves dependencies on whole flags register
>     and such sequences introduce false dependency on previous instruction
> --- gcc/config/i386/i386.c.jj   2020-03-15 22:35:30.342490275 +0100
> +++ gcc/config/i386/i386.c      2020-03-17 09:12:10.761275054 +0100
> @@ -22928,7 +22928,7 @@ ix86_test_loading_unspec ()
>    /* Verify that the two mems are thus treated as equal.  */
>    ASSERT_TRUE (rtx_equal_p (dst, v0));
>
> -  /* Verify the the insn is recognized.  */
> +  /* Verify that the insn is recognized.  */
>    ASSERT_NE(-1, recog_memoized (insn));
>
>    /* Test of an UNSPEC_VOLATILE, which has its own enum values.  */
> --- gcc/config/i386/i386-features.c.jj  2020-02-05 15:38:06.594293102 +0100
> +++ gcc/config/i386/i386-features.c     2020-03-17 09:12:38.016874905 +0100
> @@ -2224,7 +2224,7 @@ remove_partial_avx_dependency (void)
>        loop_optimizer_init (AVOID_CFG_MODIFICATIONS);
>
>        /* Generate a vxorps at entry of the nearest dominator for basic
> -        blocks with conversions, which is in the the fake loop that
> +        blocks with conversions, which is in the fake loop that
>          contains the whole function, so that there is only a single
>          vxorps in the whole function.   */
>        bb = nearest_common_dominator_for_set (CDI_DOMINATORS,
> --- gcc/config/msp430/msp430.c.jj       2020-01-12 11:54:36.368414088 +0100
> +++ gcc/config/msp430/msp430.c  2020-03-17 09:14:48.143964304 +0100
> @@ -1916,7 +1916,7 @@ msp430_select_section (tree decl, int re
>      case SECCAT_RODATA_MERGE_CONST:
>        return default_elf_select_section (decl, reloc, align);
>
> -    /* The sections listed below are are not supported for MSP430.
> +    /* The sections listed below are not supported for MSP430.
>         They should not be generated, but in case they are, we use
>         default_select_section so they get placed in sections
>         the msp430 assembler and linker understand.  */
> --- gcc/config/gcn/gcn-run.c.jj 2020-01-12 11:54:36.306415023 +0100
> +++ gcc/config/gcn/gcn-run.c    2020-03-17 09:11:05.385234861 +0100
> @@ -575,7 +575,7 @@ found_main:;
>                 break;
>               case R_AMDGPU_REL64:
>                 /* FIXME
> -                  LLD seems to emit REL64 where the the assembler has ABS64.
> +                  LLD seems to emit REL64 where the assembler has ABS64.
>                    This is clearly wrong because it's not what the compiler
>                    is expecting.  Let's assume, for now, that it's a bug.
>                    In any case, GCN kernels are always self contained and
> --- gcc/config/aarch64/aarch64-sve.md.jj        2020-02-21 21:54:56.302353043 
> +0100
> +++ gcc/config/aarch64/aarch64-sve.md   2020-03-17 09:07:22.207511407 +0100
> @@ -2477,7 +2477,7 @@ (define_insn "@aarch64_vec_duplicate_vq<
>  )
>
>  ;; This is used for vec_duplicate<mode>s from memory, but can also
> -;; be used by combine to optimize selects of a a vec_duplicate<mode>
> +;; be used by combine to optimize selects of a vec_duplicate<mode>
>  ;; with zero.
>  (define_insn "sve_ld1r<mode>"
>    [(set (match_operand:SVE_ALL 0 "register_operand" "=w")
> --- gcc/config/aarch64/aarch64.c.jj     2020-03-13 11:33:00.736261599 +0100
> +++ gcc/config/aarch64/aarch64.c        2020-03-17 09:06:48.201010668 +0100
> @@ -21296,7 +21296,7 @@ aarch64_gen_adjusted_ldpstp (rtx *operan
>      {
>        base_off = 0x1000 - 1;
>        /* We must still make sure that the base offset is aligned with respect
> -        to the address.  But it may may not be made any bigger.  */
> +        to the address.  But it may not be made any bigger.  */
>        base_off -= (((base_off % msize) - (off_val_1 % msize)) + msize) % 
> msize;
>      }
>
> --- gcc/config/aarch64/falkor-tag-collision-avoidance.c.jj      2020-01-12 
> 11:54:36.255415792 +0100
> +++ gcc/config/aarch64/falkor-tag-collision-avoidance.c 2020-03-17 
> 09:08:57.457113016 +0100
> @@ -699,7 +699,7 @@ in_same_chain (rtx_insn *insn, rtx_insn
>
>
>  /* Callback function to traverse the tag map and drop loads that have the 
> same
> -   destination and and in the same chain of occurrence.  Routine always 
> returns
> +   destination and are in the same chain of occurrence.  Routine always 
> returns
>     true to allow traversal through all of TAG_MAP.  */
>  bool
>  single_dest_per_chain (const rtx &t ATTRIBUTE_UNUSED, insn_info_list_t *v,
> --- gcc/config/nvptx/nvptx.c.jj 2020-01-12 11:54:36.376413967 +0100
> +++ gcc/config/nvptx/nvptx.c    2020-03-17 09:17:49.513301135 +0100
> @@ -975,7 +975,7 @@ write_fn_proto_from_insn (std::stringstr
>  }
>
>  /* DECL is an external FUNCTION_DECL, make sure its in the fndecl hash
> -   table and and write a ptx prototype.  These are emitted at end of
> +   table and write a ptx prototype.  These are emitted at end of
>     compilation.  */
>
>  static void
> --- gcc/config/fr30/fr30.c.jj   2020-01-12 11:54:36.299415129 +0100
> +++ gcc/config/fr30/fr30.c      2020-03-17 09:10:32.509717517 +0100
> @@ -781,7 +781,7 @@ fr30_arg_partial_bytes (cumulative_args_
>       are sufficient argument registers available (or if no registers
>       are needed because the parameter must be passed on the stack)
>       then return zero, as this parameter does not require partial
> -     register, partial stack stack space.  */
> +     register, partial stack space.  */
>    if (*cum + fr30_num_arg_regs (arg) <= FR30_NUM_ARG_REGS)
>      return 0;
>
> --- gcc/config/rs6000/rs6000-string.c.jj        2020-01-12 11:54:36.396413665 
> +0100
> +++ gcc/config/rs6000/rs6000-string.c   2020-03-17 09:21:59.035637230 +0100
> @@ -679,7 +679,7 @@ expand_cmp_vec_sequence (unsigned HOST_W
>          bnl 6,.Lmismatch
>
>          For the P8 LE case, we use lxvd2x and compare full 16 bytes
> -        but then use use vgbbd and a shift to get two bytes with the
> +        but then use vgbbd and a shift to get two bytes with the
>          information we need in the correct order.
>
>          VEC/VSX compare sequence if TARGET_P9_VECTOR:
> --- gcc/config/rs6000/rs6000-p8swap.c.jj        2020-01-12 11:54:36.396413665 
> +0100
> +++ gcc/config/rs6000/rs6000-p8swap.c   2020-03-17 09:21:02.554466588 +0100
> @@ -1922,7 +1922,7 @@ replace_swapped_load_constant (swap_web_
>      XEXP (new_mem, 0) = base_reg;
>
>      /* Move the newly created insn ahead of the load insn.  */
> -    /* The last insn is the the insn that forced new_mem into a register.  */
> +    /* The last insn is the insn that forced new_mem into a register.  */
>      rtx_insn *force_insn = get_last_insn ();
>      /* Remove this insn from the end of the instruction sequence.  */
>      remove_insn (force_insn);
> --- gcc/config/rs6000/rs6000-c.c.jj     2020-03-11 09:28:53.956214091 +0100
> +++ gcc/config/rs6000/rs6000-c.c        2020-03-17 09:20:06.880284089 +0100
> @@ -397,7 +397,7 @@ rs6000_target_modify_macros (bool define
>         (e.g. ISA_2_1_MASKS, ISA_3_0_MASKS_SERVER) and for a list of
>         the specific flags that are associated with each of the cpu
>         choices that can be specified as the target of a -mcpu=target
> -       compile option, or as the the target of a --with-cpu=target
> +       compile option, or as the target of a --with-cpu=target
>         configure option.  Target flags that are specified in either
>         of these two ways are considered "implicit" since the flags
>         are not mentioned specifically by name.
> --- gcc/config/rs6000/rs6000.c.jj       2020-03-14 08:11:44.999452074 +0100
> +++ gcc/config/rs6000/rs6000.c  2020-03-17 09:19:23.889915341 +0100
> @@ -3956,7 +3956,7 @@ rs6000_option_override_internal (bool gl
>      }
>
>    /* Enable the default support for IEEE 128-bit floating point on Linux VSX
> -     sytems.  In GCC 7, we would enable the the IEEE 128-bit floating point
> +     sytems.  In GCC 7, we would enable the IEEE 128-bit floating point
>       infrastructure (-mfloat128-type) but not enable the actual __float128 
> type
>       unless the user used the explicit -mfloat128.  In GCC 8, we enable both
>       the keyword as well as the type.  */
> --- gcc/config/rs6000/rs6000-logue.c.jj 2020-02-07 11:12:22.370903871 +0100
> +++ gcc/config/rs6000/rs6000-logue.c    2020-03-17 09:20:39.004812386 +0100
> @@ -1547,7 +1547,7 @@ rs6000_emit_probe_stack_range_stack_clas
>
>    /* If explicitly requested,
>         or the rounded size is not the same as the original size
> -       or the the rounded size is greater than a page,
> +       or the rounded size is greater than a page,
>       then we will need a copy of the original stack pointer.  */
>    if (rounded_size != orig_size
>        || rounded_size > probe_interval
> --- gcc/config/nds32/nds32-md-auxiliary.c.jj    2020-01-12 11:54:36.370414057 
> +0100
> +++ gcc/config/nds32/nds32-md-auxiliary.c       2020-03-17 09:17:09.905882720 
> +0100
> @@ -3304,12 +3304,12 @@ nds32_split_ashiftdi3 (rtx dst, rtx src,
>        ext_start = gen_reg_rtx (SImode);
>
>        /*
> -        # In fact, we want to check shift amonut is great than or equal 32,
> -        # but in some corner case, the shift amount might be very large 
> value,
> -        # however we've defined SHIFT_COUNT_TRUNCATED, so GCC think we've
> -        # handle that correctly without any truncate.
> -        # so check the the condition of (shiftamount & 32) is most
> -        # safe way to do.
> +        # In fact, we want to check shift amount is greater than or equal to
> +        # 32, but in some corner case, the shift amount might be very large
> +        # value, however we've defined SHIFT_COUNT_TRUNCATED, so GCC thinks
> +        # we've handled that correctly without any truncate.
> +        # So checking the condition of (shiftamount & 32) is the safest
> +        # way to do it.
>          if (shiftamount & 32)
>            dst_low_part = 0
>            dst_high_part = src_low_part << shiftamount & 0x1f
>
>         Jakub
>

Reply via email to