From patchwork Fri Apr 21 11:51:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Hubicka X-Patchwork-Id: 1771856 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=xxjROIuG; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Q2tDh304Sz23tk for ; Fri, 21 Apr 2023 21:52:20 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 14AF63858C83 for ; Fri, 21 Apr 2023 11:52:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 14AF63858C83 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1682077938; bh=/YkSempU646dE+YGAMC2rTqYjp2bUzdgHPbXDBvrNm8=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=xxjROIuGcw0XapY3x3CBwh/gDC9p2MEAH+lmv1tih+MJZuCTSi0CoEpWfH+HIIEIB 65S53ym08UJdUNBe3qvUa9nV1g9hlhlOJ7WfsiG13qNbplREAqU5xSCO0AqNtMBxK+ gWRkvjnJpG4b6h9gqBsRSH2AUa2Y7jpzajx6LtZE= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from nikam.ms.mff.cuni.cz (nikam.ms.mff.cuni.cz [195.113.20.16]) by sourceware.org (Postfix) with ESMTPS id D1C88385840A for ; Fri, 21 Apr 2023 11:51:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D1C88385840A Received: by nikam.ms.mff.cuni.cz (Postfix, from userid 16202) id B8C9A28A921; Fri, 21 Apr 2023 13:51:53 +0200 (CEST) Date: Fri, 21 Apr 2023 13:51:53 +0200 To: michal@jires.eu, rguenther@suse.de, gcc-patches@gcc.gnu.org Subject: Stabilize temporary variable names Message-ID: MIME-Version: 1.0 Content-Disposition: inline X-Spam-Status: No, score=-11.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FILL_THIS_FORM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Hubicka via Gcc-patches From: Jan Hubicka Reply-To: Jan Hubicka Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Hi, Michal Jires implemented quite well working prototype of cache for WPA which makes it to re-use partitions from from earlier build when package is rebulit with smaller changes. It should be useful to improve edit/compile/debug cycles when one is forced to debug with LTO enabled but hopefully also avoid duplicated work i.e. during bootstrap where libbackend is linked into multiple frontends. To make this work well, it is necessary to avoid local decisions from one function to leak into others. This patch fixes a problem he noticed in create_tmp_var_name. It has one global id appended after each name. So calling it with create_tmp_var_name ("pretmp") yields to somehting like "pretmp.1". This global counters makes one function body to depend on number of temporaries produced by another function body. In his testcase a local change to large function in switch conversion pass resulted in recompilation of most of partitions since an important inline (unrelated to the patched function) had ID in it that has changed. I think that independently on the incremental WPA project it is a good idea to stabilize temporary names, in similar manner as we stabilized symbol names of clones couple years back. I think we want 1) for local variables use local IDs (this is used by gimplifier to produce temporaries, openmp lowering, thunk generation and by some passes to make names instead of unnamed SSA names) 2) for global variables either appends function symbol name when the variable exists to lower some construct in its body. For example swtich conversion can use CSWITCH.foo. instead of CSWITCH. 3) for truly global variables have per-name IDs. This patch implement only 1 but adds extra parameter separating locals from globals. Bootstrapped/regtested x86_64-linux, OK? gcc/fortran/ChangeLog: * trans-array.cc (gfc_build_constant_array_constructor): Update call of create_tmp_var_name. (gfc_trans_auto_array_allocation): Likewise. * trans-decl.cc (gfc_add_assign_aux_vars): Likewise. (create_function_arglist): Likewise. (generate_coarray_init): Likewise. (create_main_function): Likewise. gcc/ChangeLog: * function.h (struct function): Add tmp_var_id_num. * gimple-expr.cc (create_tmp_var_name): Add parameter whether name is local or global; for local use function local ids. (create_tmp_var_raw): Udate. * gimple-expr.h (create_tmp_var_name): Udate. * gimplify.cc (internal_get_tmp_var): Udate. (gimplify_init_constructor): Udate. (gimplify_modify_expr): Udate. (gimplify_function_tree): Udate. * ipa-param-manipulation.cc (ipa_param_body_adjustments::common_initialization): Udate. * lto-streamer-in.cc (input_struct_function_base): Udate. * lto-streamer-out.cc (hash_tree): Udate. * omp-low.cc (scan_omp_parallel): Udate. (scan_omp_task): Udate. (scan_omp_single): Udate. (scan_omp_target): Udate. (scan_omp_teams): Udate. * omp-oacc-neuter-broadcast.cc (oacc_do_neutering): Udate. * symtab-thunks.cc (expand_thunk): Udate. * tree-nested.cc (get_chain_decl): Udate. * tree-parloops.cc (separate_decls_in_region): Udate. * tree-switch-conversion.cc (switch_conversion::build_one_array): Udate. gcc/testsuite/ChangeLog: * gfortran.dg/char_cast_1.f90: Update template. * gfortran.dg/vector_subscript_4.f90: Update template. diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index e1725808033..f3de515f6c9 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -2623,7 +2623,7 @@ gfc_build_constant_array_constructor (gfc_expr * expr, tree type) TREE_CONSTANT (init) = 1; TREE_STATIC (init) = 1; - tmp = build_decl (input_location, VAR_DECL, create_tmp_var_name ("A"), + tmp = build_decl (input_location, VAR_DECL, create_tmp_var_name ("A", true), tmptype); DECL_ARTIFICIAL (tmp) = 1; DECL_IGNORED_P (tmp) = 1; @@ -6699,7 +6699,7 @@ gfc_trans_auto_array_allocation (tree decl, gfc_symbol * sym, { gcc_assert (TREE_CODE (TREE_TYPE (decl)) == POINTER_TYPE); space = build_decl (gfc_get_location (&sym->declared_at), - VAR_DECL, create_tmp_var_name ("A"), + VAR_DECL, create_tmp_var_name ("A", false), TREE_TYPE (TREE_TYPE (decl))); gfc_trans_vla_type_sizes (sym, &init); } diff --git a/gcc/fortran/trans-decl.cc b/gcc/fortran/trans-decl.cc index 299764b08b2..4c59e4dc0f4 100644 --- a/gcc/fortran/trans-decl.cc +++ b/gcc/fortran/trans-decl.cc @@ -1417,10 +1417,10 @@ gfc_add_assign_aux_vars (gfc_symbol * sym) gfc_allocate_lang_decl (decl); GFC_DECL_ASSIGN (decl) = 1; length = build_decl (input_location, - VAR_DECL, create_tmp_var_name (sym->name), + VAR_DECL, create_tmp_var_name (sym->name, false), gfc_charlen_type_node); addr = build_decl (input_location, - VAR_DECL, create_tmp_var_name (sym->name), + VAR_DECL, create_tmp_var_name (sym->name, false), pvoid_type_node); gfc_finish_var_decl (length, sym); gfc_finish_var_decl (addr, sym); @@ -2835,7 +2835,7 @@ create_function_arglist (gfc_symbol * sym) : TREE_TYPE (f->sym->backend_decl); token = build_decl (input_location, PARM_DECL, - create_tmp_var_name ("caf_token"), + create_tmp_var_name ("caf_token", false), build_qualified_type (pvoid_type_node, TYPE_QUAL_RESTRICT)); if ((f->sym->ts.type != BT_CLASS @@ -2864,7 +2864,7 @@ create_function_arglist (gfc_symbol * sym) gfc_finish_decl (token); offset = build_decl (input_location, PARM_DECL, - create_tmp_var_name ("caf_offset"), + create_tmp_var_name ("caf_offset", false), gfc_array_index_type); if ((f->sym->ts.type != BT_CLASS @@ -5713,7 +5713,7 @@ generate_coarray_init (gfc_namespace * ns __attribute((unused))) tmp = build_function_type_list (void_type_node, NULL_TREE); fndecl = build_decl (input_location, FUNCTION_DECL, - create_tmp_var_name ("_caf_init"), tmp); + create_tmp_var_name ("_caf_init", true), tmp); DECL_STATIC_CONSTRUCTOR (fndecl) = 1; SET_DECL_INIT_PRIORITY (fndecl, DEFAULT_INIT_PRIORITY); @@ -6395,7 +6395,7 @@ create_main_function (tree fndecl) /* Create a static variable to hold the jump table. */ var = build_decl (input_location, VAR_DECL, - create_tmp_var_name ("options"), array_type); + create_tmp_var_name ("options", true), array_type); DECL_ARTIFICIAL (var) = 1; DECL_IGNORED_P (var) = 1; TREE_CONSTANT (var) = 1; diff --git a/gcc/function.h b/gcc/function.h index d4ce8a7c6c6..dbcfe0bc97e 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -338,6 +338,9 @@ struct GTY(()) function { flags for the actions that they have taken. */ unsigned int pending_TODOs; + /* ID used by create_tmp_var_name. */ + unsigned int tmp_var_id_num; + /* Non-null if the function does something that would prevent it from being copied; this applies to both versioning and inlining. Set to a string describing the reason for failure. */ diff --git a/gcc/gimple-expr.cc b/gcc/gimple-expr.cc index 83dc340a35d..ddbb2b48bef 100644 --- a/gcc/gimple-expr.cc +++ b/gcc/gimple-expr.cc @@ -415,7 +415,7 @@ remove_suffix (char *name, int len) static GTY(()) unsigned int tmp_var_id_num; tree -create_tmp_var_name (const char *prefix) +create_tmp_var_name (const char *prefix, bool global) { char *tmp_name; @@ -429,7 +429,9 @@ create_tmp_var_name (const char *prefix) prefix = preftmp; } - ASM_FORMAT_PRIVATE_NAME (tmp_name, prefix ? prefix : "T", tmp_var_id_num++); + /* During self-tests we create tmp variables cfun being NULL. */ + ASM_FORMAT_PRIVATE_NAME (tmp_name, prefix ? prefix : "T", + !global && cfun ? cfun->tmp_var_id_num++ : tmp_var_id_num++); return get_identifier (tmp_name); } @@ -442,7 +444,7 @@ create_tmp_var_raw (tree type, const char *prefix) tree tmp_var; tmp_var = build_decl (input_location, - VAR_DECL, prefix ? create_tmp_var_name (prefix) : NULL, + VAR_DECL, prefix ? create_tmp_var_name (prefix, false) : NULL, type); /* The variable was declared by the compiler. */ diff --git a/gcc/gimple-expr.h b/gcc/gimple-expr.h index e89f7e20fc8..0ac1fc2cfe1 100644 --- a/gcc/gimple-expr.h +++ b/gcc/gimple-expr.h @@ -28,7 +28,7 @@ extern gimple_seq gimple_body (tree); extern bool gimple_has_body_p (tree); extern const char *gimple_decl_printable_name (tree, int); extern tree copy_var_decl (tree, tree, tree); -extern tree create_tmp_var_name (const char *); +extern tree create_tmp_var_name (const char *, bool global); extern tree create_tmp_var_raw (tree, const char * = NULL); extern tree create_tmp_var (tree, const char * = NULL); extern tree create_tmp_reg (tree, const char * = NULL); diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc index 5a8340504d0..241fdc922de 100644 --- a/gcc/gimplify.cc +++ b/gcc/gimplify.cc @@ -637,7 +637,7 @@ internal_get_tmp_var (tree val, gimple_seq *pre_p, gimple_seq *post_p, { const char *name = get_name (val); if (name) - SET_SSA_NAME_VAR_OR_IDENTIFIER (t, create_tmp_var_name (name)); + SET_SSA_NAME_VAR_OR_IDENTIFIER (t, create_tmp_var_name (name, false)); } } else @@ -5250,7 +5250,7 @@ gimplify_init_constructor (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p, DECL_INITIAL (object) = ctor; TREE_STATIC (object) = 1; if (!DECL_NAME (object)) - DECL_NAME (object) = create_tmp_var_name ("C"); + DECL_NAME (object) = create_tmp_var_name ("C", true); walk_tree (&DECL_INITIAL (object), force_labels_r, NULL, NULL); /* ??? C++ doesn't automatically append a . to the @@ -6250,7 +6250,7 @@ gimplify_modify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p, { if (!DECL_NAME (*from_p) && DECL_NAME (*to_p)) DECL_NAME (*from_p) - = create_tmp_var_name (IDENTIFIER_POINTER (DECL_NAME (*to_p))); + = create_tmp_var_name (IDENTIFIER_POINTER (DECL_NAME (*to_p)), false); DECL_HAS_DEBUG_EXPR_P (*from_p) = 1; SET_DECL_DEBUG_EXPR (*from_p, *to_p); } @@ -17881,7 +17881,7 @@ gimplify_function_tree (tree fndecl) tree first_var = build_decl (DECL_SOURCE_LOCATION (current_function_decl), VAR_DECL, - create_tmp_var_name ("C"), + create_tmp_var_name ("C", true), boolean_type_node); DECL_ARTIFICIAL (first_var) = 1; DECL_IGNORED_P (first_var) = 1; diff --git a/gcc/ipa-param-manipulation.cc b/gcc/ipa-param-manipulation.cc index 42488ee09c3..314a7a5aa20 100644 --- a/gcc/ipa-param-manipulation.cc +++ b/gcc/ipa-param-manipulation.cc @@ -1378,7 +1378,7 @@ ipa_param_body_adjustments::common_initialization (tree old_fndecl, new_parm = build_decl (UNKNOWN_LOCATION, PARM_DECL, NULL_TREE, new_type); const char *prefix = ipa_param_prefixes[apm->param_prefix_index]; - DECL_NAME (new_parm) = create_tmp_var_name (prefix); + DECL_NAME (new_parm) = create_tmp_var_name (prefix, false); DECL_ARTIFICIAL (new_parm) = 1; DECL_ARG_TYPE (new_parm) = new_type; DECL_CONTEXT (new_parm) = m_fndecl; diff --git a/gcc/lto-streamer-in.cc b/gcc/lto-streamer-in.cc index 03cb41cfa16..5a0f156eb27 100644 --- a/gcc/lto-streamer-in.cc +++ b/gcc/lto-streamer-in.cc @@ -1300,6 +1300,8 @@ input_struct_function_base (struct function *fn, class data_in *data_in, /* Input the current IL state of the function. */ fn->curr_properties = streamer_read_uhwi (ib); + fn->tmp_var_id_num = streamer_read_uhwi (ib); + /* Read all the attributes for FN. */ bp = streamer_read_bitpack (ib); fn->is_thunk = bp_unpack_value (&bp, 1); diff --git a/gcc/lto-streamer-out.cc b/gcc/lto-streamer-out.cc index 0bca530313c..27f9edd3fcd 100644 --- a/gcc/lto-streamer-out.cc +++ b/gcc/lto-streamer-out.cc @@ -2260,6 +2256,8 @@ output_struct_function_base (struct output_block *ob, struct function *fn) /* Output current IL state of the function. */ streamer_write_uhwi (ob, fn->curr_properties); + streamer_write_uhwi (ob, fn->tmp_var_id_num); + /* Write all the attributes for FN. */ bp = bitpack_create (ob->main_stream); bp_pack_value (&bp, fn->is_thunk, 1); diff --git a/gcc/omp-low.cc b/gcc/omp-low.cc index dddf5b59d8f..5ae35260a28 100644 --- a/gcc/omp-low.cc +++ b/gcc/omp-low.cc @@ -2324,7 +2324,7 @@ scan_omp_parallel (gimple_stmt_iterator *gsi, omp_context *outer_ctx) ctx->is_nested = true; ctx->field_map = splay_tree_new (splay_tree_compare_pointers, 0, 0); ctx->record_type = lang_hooks.types.make_type (RECORD_TYPE); - name = create_tmp_var_name (".omp_data_s"); + name = create_tmp_var_name (".omp_data_s", false); name = build_decl (gimple_location (stmt), TYPE_DECL, name, ctx->record_type); DECL_ARTIFICIAL (name) = 1; @@ -2377,7 +2377,7 @@ scan_omp_task (gimple_stmt_iterator *gsi, omp_context *outer_ctx) ctx->is_nested = true; ctx->field_map = splay_tree_new (splay_tree_compare_pointers, 0, 0); ctx->record_type = lang_hooks.types.make_type (RECORD_TYPE); - name = create_tmp_var_name (".omp_data_s"); + name = create_tmp_var_name (".omp_data_s", false); name = build_decl (gimple_location (stmt), TYPE_DECL, name, ctx->record_type); DECL_ARTIFICIAL (name) = 1; @@ -2391,7 +2391,7 @@ scan_omp_task (gimple_stmt_iterator *gsi, omp_context *outer_ctx) if (ctx->srecord_type) { - name = create_tmp_var_name (".omp_data_a"); + name = create_tmp_var_name (".omp_data_a", false); name = build_decl (gimple_location (stmt), TYPE_DECL, name, ctx->srecord_type); DECL_ARTIFICIAL (name) = 1; @@ -3067,7 +3067,7 @@ scan_omp_single (gomp_single *stmt, omp_context *outer_ctx) ctx = new_omp_context (stmt, outer_ctx); ctx->field_map = splay_tree_new (splay_tree_compare_pointers, 0, 0); ctx->record_type = lang_hooks.types.make_type (RECORD_TYPE); - name = create_tmp_var_name (".omp_copy_s"); + name = create_tmp_var_name (".omp_copy_s", false); name = build_decl (gimple_location (stmt), TYPE_DECL, name, ctx->record_type); TYPE_NAME (ctx->record_type) = name; @@ -3094,7 +3094,7 @@ scan_omp_target (gomp_target *stmt, omp_context *outer_ctx) ctx = new_omp_context (stmt, outer_ctx); ctx->field_map = splay_tree_new (splay_tree_compare_pointers, 0, 0); ctx->record_type = lang_hooks.types.make_type (RECORD_TYPE); - name = create_tmp_var_name (".omp_data_t"); + name = create_tmp_var_name (".omp_data_t", false); name = build_decl (gimple_location (stmt), TYPE_DECL, name, ctx->record_type); DECL_ARTIFICIAL (name) = 1; @@ -3156,7 +3156,7 @@ scan_omp_teams (gomp_teams *stmt, omp_context *outer_ctx) gcc_assert (taskreg_nesting_level == 1); ctx->field_map = splay_tree_new (splay_tree_compare_pointers, 0, 0); ctx->record_type = lang_hooks.types.make_type (RECORD_TYPE); - tree name = create_tmp_var_name (".omp_data_s"); + tree name = create_tmp_var_name (".omp_data_s", false); name = build_decl (gimple_location (stmt), TYPE_DECL, name, ctx->record_type); DECL_ARTIFICIAL (name) = 1; diff --git a/gcc/omp-oacc-neuter-broadcast.cc b/gcc/omp-oacc-neuter-broadcast.cc index 6328253018e..9b94502671d 100644 --- a/gcc/omp-oacc-neuter-broadcast.cc +++ b/gcc/omp-oacc-neuter-broadcast.cc @@ -1647,7 +1647,7 @@ oacc_do_neutering (unsigned HOST_WIDE_INT bounds_lo, if (ws_prop) { tree record_type = lang_hooks.types.make_type (RECORD_TYPE); - tree name = create_tmp_var_name (".oacc_ws_data_s"); + tree name = create_tmp_var_name (".oacc_ws_data_s", false); name = build_decl (UNKNOWN_LOCATION, TYPE_DECL, name, record_type); DECL_ARTIFICIAL (name) = 1; DECL_NAMELESS (name) = 1; diff --git a/gcc/symtab-thunks.cc b/gcc/symtab-thunks.cc index 4c04235c41b..d79edb4c5d6 100644 --- a/gcc/symtab-thunks.cc +++ b/gcc/symtab-thunks.cc @@ -534,7 +534,7 @@ expand_thunk (cgraph_node *node, bool output_asm_thunks, tree p = DECL_STRUCT_FUNCTION (alias)->static_chain_decl; tree type = TREE_TYPE (p); tree decl = build_decl (DECL_SOURCE_LOCATION (thunk_fndecl), - PARM_DECL, create_tmp_var_name ("CHAIN"), + PARM_DECL, create_tmp_var_name ("CHAIN", false), type); DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; diff --git a/gcc/testsuite/gfortran.dg/char_cast_1.f90 b/gcc/testsuite/gfortran.dg/char_cast_1.f90 index 02e695d2d7b..b5e0aeb6ecb 100644 --- a/gcc/testsuite/gfortran.dg/char_cast_1.f90 +++ b/gcc/testsuite/gfortran.dg/char_cast_1.f90 @@ -27,4 +27,4 @@ end ! The sign that all is well is that [S.6][1] appears twice. ! Platform dependent variations are [S$6][1], [__S_6][1], [S___6][1] -! { dg-final { scan-tree-dump-times "6\\\]\\\[1\\\]" 2 "original" } } +! { dg-final { scan-tree-dump-times "2\\\]\\\[1\\\]" 2 "original" } } diff --git a/gcc/testsuite/gfortran.dg/vector_subscript_4.f90 b/gcc/testsuite/gfortran.dg/vector_subscript_4.f90 index d726d424ab7..382745fbb2c 100644 --- a/gcc/testsuite/gfortran.dg/vector_subscript_4.f90 +++ b/gcc/testsuite/gfortran.dg/vector_subscript_4.f90 @@ -9,4 +9,4 @@ integer :: i(-1:1) = 1, j(3) = 1, k(3) k = j((/1,1,1/)+i) end -! { dg-final { scan-tree-dump-times "A\.2\\\[3\\\]" 1 "original" } } +! { dg-final { scan-tree-dump-times "A\.1\\\[3\\\]" 1 "original" } } diff --git a/gcc/tree-nested.cc b/gcc/tree-nested.cc index 1418e1f7f56..f6ec2997e61 100644 --- a/gcc/tree-nested.cc +++ b/gcc/tree-nested.cc @@ -473,7 +473,7 @@ get_chain_decl (struct nesting_info *info) close to the truth, since the initial value does come from the caller. */ decl = build_decl (DECL_SOURCE_LOCATION (info->context), - PARM_DECL, create_tmp_var_name ("CHAIN"), type); + PARM_DECL, create_tmp_var_name ("CHAIN", false), type); DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; TREE_USED (decl) = 1; diff --git a/gcc/tree-parloops.cc b/gcc/tree-parloops.cc index dfb75c369d6..8d0ea9fb941 100644 --- a/gcc/tree-parloops.cc +++ b/gcc/tree-parloops.cc @@ -2109,7 +2109,7 @@ separate_decls_in_region (edge entry, edge exit, /* Create the type for the structure to store the ssa names to. */ type = lang_hooks.types.make_type (RECORD_TYPE); type_name = build_decl (UNKNOWN_LOCATION, - TYPE_DECL, create_tmp_var_name (".paral_data"), + TYPE_DECL, create_tmp_var_name (".paral_data", false), type); TYPE_NAME (type) = type_name; diff --git a/gcc/tree-switch-conversion.cc b/gcc/tree-switch-conversion.cc index c08c22039c9..caa1c43bc14 100644 --- a/gcc/tree-switch-conversion.cc +++ b/gcc/tree-switch-conversion.cc @@ -671,7 +671,7 @@ switch_conversion::build_one_array (int num, tree arr_index_type, TREE_STATIC (decl) = 1; DECL_INITIAL (decl) = ctor; - DECL_NAME (decl) = create_tmp_var_name ("CSWTCH"); + DECL_NAME (decl) = create_tmp_var_name ("CSWTCH", true); DECL_ARTIFICIAL (decl) = 1; DECL_IGNORED_P (decl) = 1; TREE_CONSTANT (decl) = 1;