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 >