[{"id":3678303,"web_url":"http://patchwork.ozlabs.org/comment/3678303/","msgid":"<CAFiYyc2NF_kbPARS30w3zdjvqUFeDc2k8wDGtfQGb=m_aH-BYQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-16T18:08:49","subject":"Re: [GCC17-PATCH] cfghooks: Pass data to callback function of\n make_forwarder_block","submitter":{"id":1765,"url":"http://patchwork.ozlabs.org/api/people/1765/","name":"Richard Biener","email":"richard.guenther@gmail.com"},"content":"On Thu, Apr 16, 2026 at 4:39 AM Andrew Pinski\n<andrew.pinski@oss.qualcomm.com> wrote:\n>\n> This makes a cleanup that is way overdue and should have been done\n> years ago. Instead of setting some global/static variables for the\n> callback function to check here, we pass down the data to the callback\n> function.  This reduces the number of global variables (which should help\n> with Parallel GCC project). Plus since mfb_keep_just was exported outside\n> of cfgloopmanip.cc (it was used in tree-ssa-threadupdate.cc), it reduces\n> is shared between files.\n>\n> I found this useful when working on PR 123113 as I needed a new callback\n> function.\n>\n> Bootstrapped and tested on x86_64-linux-gnu.\n\nOK for stage1.\n\nRichard.\n\n> gcc/ChangeLog:\n>\n>         * cfghooks.cc (make_forwarder_block): New data argument,\n>         pass it down to redirect_edge_p.\n>         * cfghooks.h (make_forwarder_block): Add void* argument.\n>         * cfgloop.cc (mfb_reis_set): Remove.\n>         (mfb_redirect_edges_in_set): Add new data argument.\n>         Use it instead of mfb_reis_set.\n>         (form_subloop): Create a local variable instead of\n>         mfb_areis_set. Update call to make_forwarder_block.\n>         (merge_latch_edges): Likewise.\n>         * cfgloopmanip.cc (mfb_kj_edge): Remove.\n>         (mfb_keep_just):  Add new data argument.\n>         Use it instead of mfb_kj_edge.\n>         (create_preheader): Use local variable instead of\n>         mfb_kj_edge. Update call to make_forwarder_block.\n>         * cfgloopmanip.h (mfb_keep_just): Add void* argument.\n>         * tree-cfgcleanup.cc (mfb_keep_latches): Add unused void* arugment.\n>         (cleanup_tree_cfg_noloop): Update call to make_forwarder_block.\n>         * tree-ssa-threadupdate.cc\n>         (fwd_jt_path_registry::thread_through_loop_header): Use local\n>         variable instead of mfb_kj_edge. Update call to make_forwarder_block.\n>\n> Signed-off-by: Andrew Pinski <andrew.pinski@oss.qualcomm.com>\n> ---\n>  gcc/cfghooks.cc              |  7 ++++---\n>  gcc/cfghooks.h               |  2 +-\n>  gcc/cfgloop.cc               | 24 ++++++++++++------------\n>  gcc/cfgloopmanip.cc          | 15 ++++++++-------\n>  gcc/cfgloopmanip.h           |  4 +---\n>  gcc/tree-cfgcleanup.cc       |  7 +++++--\n>  gcc/tree-ssa-threadupdate.cc |  7 ++++---\n>  7 files changed, 35 insertions(+), 31 deletions(-)\n>\n> diff --git a/gcc/cfghooks.cc b/gcc/cfghooks.cc\n> index 063639fe1c9..6415d0fdec2 100644\n> --- a/gcc/cfghooks.cc\n> +++ b/gcc/cfghooks.cc\n> @@ -923,10 +923,11 @@ merge_blocks (basic_block a, basic_block b)\n>\n>  /* Split BB into entry part and the rest (the rest is the newly created block).\n>     Redirect those edges for that REDIRECT_EDGE_P returns true to the entry\n> -   part.  Returns the edge connecting the entry part to the rest.  */\n> +   part.  Returns the edge connecting the entry part to the rest.\n> +   DATA gets passed on to REDIRECT_EDGE_P.  */\n>\n>  edge\n> -make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge))\n> +make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge, void*), void *data)\n>  {\n>    edge e, fallthru;\n>    edge_iterator ei;\n> @@ -947,7 +948,7 @@ make_forwarder_block (basic_block bb, bool (*redirect_edge_p) (edge))\n>      {\n>        basic_block e_src;\n>\n> -      if (redirect_edge_p (e))\n> +      if (redirect_edge_p (e, data))\n>         {\n>           dummy->count += e->count ();\n>           ei_next (&ei);\n> diff --git a/gcc/cfghooks.h b/gcc/cfghooks.h\n> index 6cc1b66baef..bc7956be2a8 100644\n> --- a/gcc/cfghooks.h\n> +++ b/gcc/cfghooks.h\n> @@ -245,7 +245,7 @@ extern basic_block create_basic_block (gimple_seq, basic_block);\n>  extern basic_block create_empty_bb (basic_block);\n>  extern bool can_merge_blocks_p (basic_block, basic_block);\n>  extern void merge_blocks (basic_block, basic_block);\n> -extern edge make_forwarder_block (basic_block, bool (*)(edge));\n> +extern edge make_forwarder_block (basic_block, bool (*)(edge, void*), void*);\n>  extern basic_block force_nonfallthru (edge);\n>  extern void tidy_fallthru_edge (edge);\n>  extern void tidy_fallthru_edges (void);\n> diff --git a/gcc/cfgloop.cc b/gcc/cfgloop.cc\n> index fc4d635d8b6..70f2996a416 100644\n> --- a/gcc/cfgloop.cc\n> +++ b/gcc/cfgloop.cc\n> @@ -709,13 +709,13 @@ find_subloop_latch_edge (class loop *loop)\n>  }\n>\n>  /* Callback for make_forwarder_block.  Returns true if the edge E is marked\n> -   in the set MFB_REIS_SET.  */\n> +   in the set SET(DATA).  */\n>\n> -static hash_set<edge> *mfb_reis_set;\n>  static bool\n> -mfb_redirect_edges_in_set (edge e)\n> +mfb_redirect_edges_in_set (edge e, void *data)\n>  {\n> -  return mfb_reis_set->contains (e);\n> +  hash_set<edge> *set = (hash_set<edge> *)data;\n> +  return set->contains (e);\n>  }\n>\n>  /* Creates a subloop of LOOP with latch edge LATCH.  */\n> @@ -727,14 +727,14 @@ form_subloop (class loop *loop, edge latch)\n>    edge e, new_entry;\n>    class loop *new_loop;\n>\n> -  mfb_reis_set = new hash_set<edge>;\n> +  hash_set<edge> *reis_set = new hash_set<edge>;\n>    FOR_EACH_EDGE (e, ei, loop->header->preds)\n>      {\n>        if (e != latch)\n> -       mfb_reis_set->add (e);\n> +       reis_set->add (e);\n>      }\n> -  new_entry = make_forwarder_block (loop->header, mfb_redirect_edges_in_set);\n> -  delete mfb_reis_set;\n> +  new_entry = make_forwarder_block (loop->header, mfb_redirect_edges_in_set, reis_set);\n> +  delete reis_set;\n>\n>    loop->header = new_entry->src;\n>\n> @@ -765,11 +765,11 @@ merge_latch_edges (class loop *loop)\n>        if (dump_file)\n>         fprintf (dump_file, \"Merged latch edges of loop %d\\n\", loop->num);\n>\n> -      mfb_reis_set = new hash_set<edge>;\n> +      hash_set<edge> *reis_set = new hash_set<edge>;\n>        FOR_EACH_VEC_ELT (latches, i, e)\n> -       mfb_reis_set->add (e);\n> -      latch = make_forwarder_block (loop->header, mfb_redirect_edges_in_set);\n> -      delete mfb_reis_set;\n> +       reis_set->add (e);\n> +      latch = make_forwarder_block (loop->header, mfb_redirect_edges_in_set, reis_set);\n> +      delete reis_set;\n>\n>        loop->header = latch->dest;\n>        loop->latch = latch->src;\n> diff --git a/gcc/cfgloopmanip.cc b/gcc/cfgloopmanip.cc\n> index c953bc95b40..dd5ae82f73e 100644\n> --- a/gcc/cfgloopmanip.cc\n> +++ b/gcc/cfgloopmanip.cc\n> @@ -1640,14 +1640,14 @@ duplicate_loop_body_to_header_edge (class loop *loop, edge e,\n>  }\n>\n>  /* A callback for make_forwarder block, to redirect all edges except for\n> -   MFB_KJ_EDGE to the entry part.  E is the edge for that we should decide\n> +   OTHER(DATA) to the entry part.  E is the edge for that we should decide\n>     whether to redirect it.  */\n>\n> -edge mfb_kj_edge;\n>  bool\n> -mfb_keep_just (edge e)\n> +mfb_keep_just (edge e, void *data)\n>  {\n> -  return e != mfb_kj_edge;\n> +  edge other = (edge)data;\n> +  return e != other;\n>  }\n>\n>  /* True when a candidate preheader BLOCK has predecessors from LOOP.  */\n> @@ -1729,15 +1729,16 @@ create_preheader (class loop *loop, int flags)\n>         return NULL;\n>      }\n>\n> -  mfb_kj_edge = loop_latch_edge (loop);\n> -  latch_edge_was_fallthru = (mfb_kj_edge->flags & EDGE_FALLTHRU) != 0;\n> +  edge latch;\n> +  latch = loop_latch_edge (loop);\n> +  latch_edge_was_fallthru = (latch->flags & EDGE_FALLTHRU) != 0;\n>    if (nentry == 1\n>        && ((flags & CP_FALLTHRU_PREHEADERS) == 0\n>           || (single_entry->flags & EDGE_CROSSING) == 0))\n>      dummy = split_edge (single_entry);\n>    else\n>      {\n> -      edge fallthru = make_forwarder_block (loop->header, mfb_keep_just);\n> +      edge fallthru = make_forwarder_block (loop->header, mfb_keep_just, latch);\n>        dummy = fallthru->src;\n>        loop->header = fallthru->dest;\n>      }\n> diff --git a/gcc/cfgloopmanip.h b/gcc/cfgloopmanip.h\n> index 396e6d69e8c..106cc7d005a 100644\n> --- a/gcc/cfgloopmanip.h\n> +++ b/gcc/cfgloopmanip.h\n> @@ -38,8 +38,6 @@ enum\n>                                                       discriminators to\n>                                                       distinguish loop\n>                                                       iterations.  */\n> -extern edge mfb_kj_edge;\n> -\n>  extern bool remove_path (edge, bool * = NULL, bitmap = NULL);\n>  extern void place_new_loop (struct function *, class loop *);\n>  extern void add_loop (class loop *, class loop *);\n> @@ -62,7 +60,7 @@ extern bool can_duplicate_loop_p (const class loop *loop);\n>  extern bool\n>  duplicate_loop_body_to_header_edge (class loop *, edge, unsigned, sbitmap, edge,\n>                                     vec<edge> *, int);\n> -extern bool mfb_keep_just (edge);\n> +extern bool mfb_keep_just (edge, void *);\n>  basic_block create_preheader (class loop *, int);\n>  extern void create_preheaders (int);\n>  extern void force_single_succ_latches (void);\n> diff --git a/gcc/tree-cfgcleanup.cc b/gcc/tree-cfgcleanup.cc\n> index ab3c8c30893..234b45a219f 100644\n> --- a/gcc/tree-cfgcleanup.cc\n> +++ b/gcc/tree-cfgcleanup.cc\n> @@ -1103,8 +1103,11 @@ cleanup_control_flow_pre ()\n>    return retval;\n>  }\n>\n> +/* Callback function for make_forwarder_block which returns\n> +   true when E is not a latch.  */\n> +\n>  static bool\n> -mfb_keep_latches (edge e)\n> +mfb_keep_latches (edge e, void*)\n>  {\n>    return !((dom_info_available_p (CDI_DOMINATORS)\n>             && dominated_by_p (CDI_DOMINATORS, e->src, e->dest))\n> @@ -1164,7 +1167,7 @@ cleanup_tree_cfg_noloop (unsigned ssa_update_flags)\n>                create a forwarder.  */\n>             if (found_latch && ! any_abnormal && n > 1)\n>               {\n> -               edge fallthru = make_forwarder_block (bb, mfb_keep_latches);\n> +               edge fallthru = make_forwarder_block (bb, mfb_keep_latches, NULL);\n>                 loop->header = fallthru->dest;\n>                 if (! loops_state_satisfies_p (LOOPS_NEED_FIXUP))\n>                   {\n> diff --git a/gcc/tree-ssa-threadupdate.cc b/gcc/tree-ssa-threadupdate.cc\n> index 0e437b14551..db3520b42fc 100644\n> --- a/gcc/tree-ssa-threadupdate.cc\n> +++ b/gcc/tree-ssa-threadupdate.cc\n> @@ -1867,9 +1867,10 @@ fwd_jt_path_registry::thread_through_loop_header (class loop *loop,\n>       must have only a single successor, but the original header had at\n>       least two successors.  */\n>    loop->latch = NULL;\n> -  mfb_kj_edge = single_succ_edge (new_preheader);\n> -  loop->header = mfb_kj_edge->dest;\n> -  latch = make_forwarder_block (tgt_bb, mfb_keep_just);\n> +  edge keep_edge;\n> +  keep_edge = single_succ_edge (new_preheader);\n> +  loop->header = keep_edge->dest;\n> +  latch = make_forwarder_block (tgt_bb, mfb_keep_just, keep_edge);\n>    loop->header = latch->dest;\n>    loop->latch = latch->src;\n>    return true;\n> --\n> 2.43.0\n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=njFhnvRn;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=njFhnvRn","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","sourceware.org; spf=pass smtp.mailfrom=gmail.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=209.85.208.43"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fxQyS1gSZz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 17 Apr 2026 04:09:35 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 31DD54BB58C6\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 16 Apr 2026 18:09:33 +0000 (GMT)","from mail-ed1-f43.google.com (mail-ed1-f43.google.com\n [209.85.208.43])\n by sourceware.org (Postfix) with ESMTPS id 826C24BB3BA8\n for <gcc-patches@gcc.gnu.org>; Thu, 16 Apr 2026 18:09:03 +0000 (GMT)","by mail-ed1-f43.google.com with SMTP id\n 4fb4d7f45d1cf-671c4d08dc2so3474243a12.3\n for <gcc-patches@gcc.gnu.org>; Thu, 16 Apr 2026 11:09:03 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 31DD54BB58C6","OpenDKIM Filter v2.11.0 sourceware.org 826C24BB3BA8"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 826C24BB3BA8","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 826C24BB3BA8","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776362943; cv=pass;\n b=RZM/oioYxG/TS1bC3zKCFUt8kUd3tB3+/+8ODYx9yXLNEkZ7mwoey7vHDna6MpnxfR4uh+rb+DJnfqvYO5XllRYLZDtwcZc1sAE7C5gsdoKDQ1wOOTuXtbDsN/cTJhlNIxkxdA7Lz89QsgY/XqYJOB3ODPcOFGsIXEjqJdF4qLA=","i=1; a=rsa-sha256; t=1776362942; cv=none;\n d=google.com; s=arc-20240605;\n b=ZA4hlww3LViqaGwCwWEQTmeMOqKNq8BUubNZDwumhO1F3JMoSIVtFztjhNBnuqbZ7i\n 3Df6Sm5g3DTn0aBH5XA6bkjznHAcjGBwFZ5L5vQFhkpK2REBFROjHd4vWZTla+uQuFB1\n coJR/psTks0zO+6Q0T8HffaQZPlgHn3+6DhkEQvzsT7C0tAEuZNVCYdaV0WJBaVvwjvr\n Q17VBCF2bGYdLoVnrnmNXgoulHyYnf9rUXTXZ8pxC3uTGf7CRvGWBUEds3Dy0iqpqUY0\n chbPXHaYqGoxBpKqIr1crUUY3hj60OqJqvXQBaXNV9SYcvrGlOK4Mv0SlDVGKe1ZsVNQ\n yXmw=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776362943; c=relaxed/simple;\n bh=ZDbR1NqdLDNCLUhu6R732Ln5TNpZSFK3GUxUsBRfFOA=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=R/JqNQcXHD6ubx9Xp4GHBIrMYybWn7XbDksoNoGiG94guI7pgr98Qu2OnxHmDSMCGvmtdKrHERwwwTxOTXxLZxlXXzuHq38XK0kMDqiNa8TiPY2KhhOUxUhwIuh4O5SRoXaGExHUmysjITkH9FoHLL6yKDxPZqXI5wc6ThE+hFo=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:dkim-signature;\n bh=zBb07SPtgEwOHtscCjLEsXzWJen7ih4LMXtobbBSji0=;\n fh=+uEDwx55CzEWtNA/tzpV1shOHaMh+Xh7AN17D33930Y=;\n b=coOalthvQTEEhL3WLChAE4B0X8bgEIKhT+2Aj21OPsRSd9i+wzse/IxSbSilyE9TJA\n cU3kWQJFKvrhiBEBSOZUYfviOJ6wj9rLhpCI9vwTMWKCoxn05hVxLCmlNzdCVI+QgAh/\n IiTkmBq/BFnlGyYJbL+dD3UHd8pwTAFTu15jNA6cp1RlEIg7KYjYX/oQcCNo7hYxthip\n YN1mBtZYR9wGDyz9e51f4hPXgOv7psb3dd4XeJSl/ZPlH78ojq9qlyrq0iZwFDcQPEht\n EQbIvguqrKSRCFJsuqgryrgWTzV6H6ko3bXu+vPvvLqpCehz6Gqj8Nto7yA8HJT9yHef\n ADQA==; darn=gcc.gnu.org"],"ARC-Authentication-Results":["i=2; server2.sourceware.org","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1776362942; x=1776967742; darn=gcc.gnu.org;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:from:to:cc:subject:date\n :message-id:reply-to;\n bh=zBb07SPtgEwOHtscCjLEsXzWJen7ih4LMXtobbBSji0=;\n b=njFhnvRnN2Y8LbYrgiPxHXC2U/BaRiaqCqfU2aFo5vtZNt2ILOWPmRwund7oxiNVIe\n krqGxQzZlrCIHIoSTOp6fp0aE6KI2pIWrUCX6jMvDUVWwWbA/7i7mIkpAKqp7MuCl1yP\n CWr8sjrI71hpXRXeAggqpA9g4T54J4EeinUpmeMhUciQds4f6eKXbEy3FX2VKoFicpD6\n 2MJy+zzbiejXnVNlXihMlzPcOHBlGCSBcElnIQGSC0VQsHf36YmomlZ9t/sbAf70H0CZ\n /myrOPOWr4B0gxsqr3EhAmuZ7qcIqNuePRD8VQV+LSutqVVkLrtdALP/v5er8r8Wsl7n\n 2JRA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776362942; x=1776967742;\n h=content-transfer-encoding:cc:to:subject:message-id:date:from\n :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=zBb07SPtgEwOHtscCjLEsXzWJen7ih4LMXtobbBSji0=;\n b=oopFMpLgS6BuC3cUEgl+Uqbf4/CER3bFuEYSZX0pFG6Sa1sIsU2DI2R0VfqocMfh5d\n DDxQUcOcrWZJxuIhCK7VsHLiF4FQRjXcNBckZPCHV58olUj4vn1RM8Hcnar8VpfjxUIN\n Ljtv8oh7Ssaw4JKjWoUjOW2gnI5zfcDfPTglCfLR3MClM5zvHjRkWxlhO/6gL/VoeMJY\n y0hvTGngKw3myx3YVI+zftVlcITCxhPf574oy8s/e0ZpqH/e0CYnpoXTpa7wcX1v8lqM\n INeZcrL7xdaAHiBKz5nAfmPHUMDtLbbtrQE8gx4vDokD3RWFc+UZJeC7f/KEVGY7D9kH\n dmaw==","X-Gm-Message-State":"AOJu0YzvVpw36NfaoWKcl31LWkRGui3kWjrhVY7JyQQxm4HL+mBePkeE\n laRJfOJ/+Hy6bUEXmUKFVTkObrT//B5v/Siq+w864HHfCxQ6y0vpw85rd3/K4G2RL4q1K4mrLHG\n c3EKhdtMQLY16ezh02t3zWDXrM8k0npQ=","X-Gm-Gg":"AeBDiesHXNgpx7pe9h2gCCDKo5UfTOXVUfpRs2j1tAED6sBfcWtxzojdP4fDQ/L8H1w\n JYXViKNnKNNcCUnnVfTdwRCjChY5WG4oLiUoMAL8YIFygD6E+/x5pk1jdRJ5Bo/WkZjGPUoybF2\n +FLfnVRdf+zXLZloa9fsFniOSxyuHRKjbatVTPkmBBHm8w2pJWxRgjUepnqYYFzecwj0+QkLQFe\n q0Io3qEK2u1hYB8tWRmWlkcwC0RESlZDfvq29Zcnqq2PWnMm9k8ydQzm6J/xMCQrXzH24A/B/6k\n kXAsGUiCiMHuhSo/YA==","X-Received":"by 2002:a05:6402:e09:b0:66e:5622:a2e with SMTP id\n 4fb4d7f45d1cf-672bd726fd4mr69395a12.22.1776362941765; Thu, 16 Apr 2026\n 11:09:01 -0700 (PDT)","MIME-Version":"1.0","References":"<20260416023829.940969-1-andrew.pinski@oss.qualcomm.com>","In-Reply-To":"<20260416023829.940969-1-andrew.pinski@oss.qualcomm.com>","From":"Richard Biener <richard.guenther@gmail.com>","Date":"Thu, 16 Apr 2026 20:08:49 +0200","X-Gm-Features":"AQROBzBLtzmMVYYEG6or7DoShDum7quUl0TxVtuXL0y3l3yRRgR5cY760q9_iy8","Message-ID":"\n <CAFiYyc2NF_kbPARS30w3zdjvqUFeDc2k8wDGtfQGb=m_aH-BYQ@mail.gmail.com>","Subject":"Re: [GCC17-PATCH] cfghooks: Pass data to callback function of\n make_forwarder_block","To":"Andrew Pinski <andrew.pinski@oss.qualcomm.com>","Cc":"gcc-patches@gcc.gnu.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]