[{"id":3676409,"web_url":"http://patchwork.ozlabs.org/comment/3676409/","msgid":"<CALvbMcCinFZ+sAJaUhOpQr8LSCxW5JuKi4p=61o+dAycg_7TYQ@mail.gmail.com>","list_archive_url":null,"date":"2026-04-13T01:57:48","subject":"Re: [PATCH v3] ipa: honor memory clobbers in ipa-reference [PR124218]","submitter":{"id":91428,"url":"http://patchwork.ozlabs.org/api/people/91428/","name":"Andrew Pinski","email":"andrew.pinski@oss.qualcomm.com"},"content":"On Sun, Apr 12, 2026 at 6:55 PM Chris Copeland <chris@chrisnc.net> wrote:\n>\n> Changes from v2: remove memory clobber from pr55665.C. This memory\n> clobber was being ignored in ipa without these changes, and leaving it\n> in now triggers a DWARF bug which is tracked by\n> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124864. This bug can be\n> reproduced without the changes in this patch.\n>\n> ---\n>\n> Record the presence of asm memory clobbers in ipa_fn_summary and use it\n> in ipa-reference's analyze_function to mark all module statics as read\n> and written.  Move pass_ipa_reference before pass_ipa_free_fn_summary so\n> the summary is still available when needed.\n>\n> gcc/ChangeLog:\n>\n>         PR ipa/124218\n>         * ipa-fnsummary.h (ipa_fn_summary): Add asm_memory_clobber field.\n>         * ipa-fnsummary.cc (analyze_function_body): Set asm_memory_clobber\n>         when a GIMPLE_ASM with a memory clobber is found.\n>         (ipa_merge_fn_summary_after_inlining): Merge asm_memory_clobber.\n>         (inline_read_section): Stream in asm_memory_clobber.\n>         (ipa_fn_summary_write): Stream out asm_memory_clobber.\n>         * ipa-reference.cc (analyze_function): Use asm_memory_clobber from\n>         fn summary to mark all module statics as read and written.\n>         * passes.def: Move pass_ipa_reference before pass_ipa_free_fn_summary.\n>\n> gcc/testsuite/ChangeLog:\n>\n>         PR ipa/124218\n>         * gcc.dg/ipa/pr124218.c: New test.\n>         * g++.dg/guality/pr55665.C: Remove memory clobber. This memory clobber\n>         was being ignored before, and leaving it in now triggers PR124864,\n>         breaking the test. Correct PR number in first comment.\n> ---\n>  gcc/ChangeLog                          | 13 +++++++++++\n>  gcc/ipa-fnsummary.cc                   |  9 ++++++++\n>  gcc/ipa-fnsummary.h                    |  6 +++++-\n>  gcc/ipa-reference.cc                   | 13 +++++++++++\n>  gcc/passes.def                         |  2 +-\n>  gcc/testsuite/ChangeLog                |  8 +++++++\n>  gcc/testsuite/g++.dg/guality/pr55665.C |  4 ++--\n>  gcc/testsuite/gcc.dg/ipa/pr124218.c    | 30 ++++++++++++++++++++++++++\n>  8 files changed, 81 insertions(+), 4 deletions(-)\n>  create mode 100644 gcc/testsuite/gcc.dg/ipa/pr124218.c\n>\n> diff --git a/gcc/ChangeLog b/gcc/ChangeLog\n> index 51f9c66b071..730423fb1f4 100644\n> --- a/gcc/ChangeLog\n> +++ b/gcc/ChangeLog\n> @@ -1,3 +1,16 @@\n> +2026-04-12  Chris Copeland  <chris@chrisnc.net>\n> +\n> +       PR ipa/124218\n> +       * ipa-fnsummary.h (ipa_fn_summary): Add asm_memory_clobber field.\n> +       * ipa-fnsummary.cc (analyze_function_body): Set asm_memory_clobber\n> +       when a GIMPLE_ASM with a memory clobber is found.\n> +       (ipa_merge_fn_summary_after_inlining): Merge asm_memory_clobber.\n> +       (inline_read_section): Stream in asm_memory_clobber.\n> +       (ipa_fn_summary_write): Stream out asm_memory_clobber.\n> +       * ipa-reference.cc (analyze_function): Use asm_memory_clobber from\n> +       fn summary to mark all module statics as read and written.\n> +       * passes.def: Move pass_ipa_reference before pass_ipa_free_fn_summary.\n> +\n\nDon't add the change to the changelog as part of the patch/commit.\nChangelogs are auto generated from the commit message now.\n\nThanks,\nAndrea\n\n>  2026-04-11  Christopher Albert  <albert@tugraz.at>\n>\n>         PR fortran/93554\n> diff --git a/gcc/ipa-fnsummary.cc b/gcc/ipa-fnsummary.cc\n> index e187231dfb6..2e1387ec746 100644\n> --- a/gcc/ipa-fnsummary.cc\n> +++ b/gcc/ipa-fnsummary.cc\n> @@ -3200,6 +3200,11 @@ analyze_function_body (struct cgraph_node *node, bool early)\n>                 }\n>             }\n>\n> +         if (!info->asm_memory_clobber\n> +             && gimple_code (stmt) == GIMPLE_ASM\n> +             && gimple_asm_clobbers_memory_p (as_a <gasm *> (stmt)))\n> +           info->asm_memory_clobber = true;\n> +\n>           /* For target specific information, we want to scan all statements\n>              rather than those statements with non-zero weights, to avoid\n>              missing to scan something interesting for target information,\n> @@ -4492,6 +4497,7 @@ ipa_merge_fn_summary_after_inlining (struct cgraph_edge *edge)\n>      toplev_predicate = true;\n>\n>    info->fp_expressions |= callee_info->fp_expressions;\n> +  info->asm_memory_clobber |= callee_info->asm_memory_clobber;\n>    info->target_info |= callee_info->target_info;\n>\n>    if (callee_info->conds)\n> @@ -4838,11 +4844,13 @@ inline_read_section (struct lto_file_decl_data *file_data, const char *data,\n>         {\n>           info->inlinable = bp_unpack_value (&bp, 1);\n>           info->fp_expressions = bp_unpack_value (&bp, 1);\n> +         info->asm_memory_clobber = bp_unpack_value (&bp, 1);\n>           if (!lto_stream_offload_p)\n>             info->target_info = streamer_read_uhwi (&ib);\n>         }\n>        else\n>         {\n> +         bp_unpack_value (&bp, 1);\n>           bp_unpack_value (&bp, 1);\n>           bp_unpack_value (&bp, 1);\n>           if (!lto_stream_offload_p)\n> @@ -5084,6 +5092,7 @@ ipa_fn_summary_write (void)\n>           bp = bitpack_create (ob->main_stream);\n>           bp_pack_value (&bp, info->inlinable, 1);\n>           bp_pack_value (&bp, info->fp_expressions, 1);\n> +         bp_pack_value (&bp, info->asm_memory_clobber, 1);\n>           streamer_write_bitpack (&bp);\n>           if (!lto_stream_offload_p)\n>             streamer_write_uhwi (ob, info->target_info);\n> diff --git a/gcc/ipa-fnsummary.h b/gcc/ipa-fnsummary.h\n> index de7b7f61cb1..896cb6c1725 100644\n> --- a/gcc/ipa-fnsummary.h\n> +++ b/gcc/ipa-fnsummary.h\n> @@ -126,7 +126,8 @@ public:\n>    ipa_fn_summary ()\n>      : min_size (0),\n>        inlinable (false), single_caller (false),\n> -      fp_expressions (false), safe_to_inline_to_always_inline (0),\n> +      fp_expressions (false), asm_memory_clobber (false),\n> +      safe_to_inline_to_always_inline (0),\n>        target_info (0), estimated_stack_size (false),\n>        time (0), conds (NULL),\n>        size_time_table (), call_size_time_table (vNULL),\n> @@ -141,6 +142,7 @@ public:\n>      : min_size (s.min_size),\n>      inlinable (s.inlinable), single_caller (s.single_caller),\n>      fp_expressions (s.fp_expressions),\n> +    asm_memory_clobber (s.asm_memory_clobber),\n>      target_info (s.target_info),\n>      estimated_stack_size (s.estimated_stack_size),\n>      time (s.time), conds (s.conds), size_time_table (),\n> @@ -165,6 +167,8 @@ public:\n>    unsigned int single_caller : 1;\n>    /* True if function contains any floating point expressions.  */\n>    unsigned int fp_expressions : 1;\n> +  /* True if function contains an asm statement that clobbers memory.  */\n> +  unsigned int asm_memory_clobber : 1;\n>    /* Cache for analysis of can_early_inline_edge_p.  */\n>    unsigned int safe_to_inline_to_always_inline : 2;\n>    /* Like fp_expressions field above, but it's to hold some target specific\n> diff --git a/gcc/ipa-reference.cc b/gcc/ipa-reference.cc\n> index c5699312c8f..12b593b0f50 100644\n> --- a/gcc/ipa-reference.cc\n> +++ b/gcc/ipa-reference.cc\n> @@ -50,6 +50,11 @@ along with GCC; see the file COPYING3.  If not see\n>  #include \"ipa-reference.h\"\n>  #include \"alloc-pool.h\"\n>  #include \"symbol-summary.h\"\n> +#include \"tree-vrp.h\"\n> +#include \"sreal.h\"\n> +#include \"ipa-cp.h\"\n> +#include \"ipa-prop.h\"\n> +#include \"ipa-fnsummary.h\"\n>\n>  /* The static variables defined within the compilation unit that are\n>     loaded or stored directly by function that owns this structure.  */\n> @@ -507,6 +512,7 @@ analyze_function (struct cgraph_node *fn)\n>  {\n>    ipa_reference_local_vars_info_t local;\n>    struct ipa_ref *ref = NULL;\n> +  ipa_fn_summary *sum;\n>    int i;\n>    tree var;\n>\n> @@ -548,6 +554,13 @@ analyze_function (struct cgraph_node *fn)\n>         }\n>      }\n>\n> +  sum = ipa_fn_summaries->get (fn);\n> +  if (sum && sum->asm_memory_clobber)\n> +    {\n> +      local->statics_read = all_module_statics;\n> +      local->statics_written = all_module_statics;\n> +    }\n> +\n>    if (fn->cannot_return_p ())\n>      bitmap_clear (local->statics_written);\n>  }\n> diff --git a/gcc/passes.def b/gcc/passes.def\n> index cdddb87302f..8344ea1a584 100644\n> --- a/gcc/passes.def\n> +++ b/gcc/passes.def\n> @@ -176,8 +176,8 @@ along with GCC; see the file COPYING3.  If not see\n>    NEXT_PASS (pass_ipa_locality_cloning);\n>    NEXT_PASS (pass_ipa_pure_const);\n>    NEXT_PASS (pass_ipa_modref);\n> -  NEXT_PASS (pass_ipa_free_fn_summary, false /* small_p */);\n>    NEXT_PASS (pass_ipa_reference);\n> +  NEXT_PASS (pass_ipa_free_fn_summary, false /* small_p */);\n>    /* This pass needs to be scheduled after any IP code duplication.   */\n>    NEXT_PASS (pass_ipa_single_use);\n>    /* Comdat privatization come last, as direct references to comdat local\n> diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog\n> index 14820bfe8fb..31243de6eb2 100644\n> --- a/gcc/testsuite/ChangeLog\n> +++ b/gcc/testsuite/ChangeLog\n> @@ -1,3 +1,11 @@\n> +2026-04-12  Chris Copeland  <chris@chrisnc.net>\n> +\n> +       PR ipa/124218\n> +       * gcc.dg/ipa/pr124218.c: New test.\n> +       * g++.dg/guality/pr55665.C: Remove memory clobber. This memory clobber\n> +       was being ignored before, and leaving it in now triggers PR124864,\n> +       breaking the test. Correct PR number in first comment.\n> +\n>  2026-04-11  Christopher Albert  <albert@tugraz.at>\n>\n>         PR fortran/93554\n> diff --git a/gcc/testsuite/g++.dg/guality/pr55665.C b/gcc/testsuite/g++.dg/guality/pr55665.C\n> index 16c6d281661..d100d0abc29 100644\n> --- a/gcc/testsuite/g++.dg/guality/pr55665.C\n> +++ b/gcc/testsuite/g++.dg/guality/pr55665.C\n> @@ -1,4 +1,4 @@\n> -// PR debug/55655\n> +// PR debug/55665\n>  // { dg-do run }\n>  // { dg-options \"-g\" }\n>\n> @@ -14,7 +14,7 @@ bar (void)\n>  __attribute__((noinline, noclone)) void\n>  foo (int x)\n>  {\n> -  __asm volatile (\"\" : : \"r\" (x) : \"memory\");\n> +  __asm volatile (\"\" : : \"r\" (x));\n>  }\n>\n>  A::A (int x)\n> diff --git a/gcc/testsuite/gcc.dg/ipa/pr124218.c b/gcc/testsuite/gcc.dg/ipa/pr124218.c\n> new file mode 100644\n> index 00000000000..67e95914d6b\n> --- /dev/null\n> +++ b/gcc/testsuite/gcc.dg/ipa/pr124218.c\n> @@ -0,0 +1,30 @@\n> +/* { dg-do run { target arm*-*-eabi* } } */\n> +/* { dg-options \"-O1 -fwhole-program\" } */\n> +\n> +/* PR ipa/124218: ipa-reference must honor memory clobbers in inline asm.  */\n> +\n> +int flag;\n> +\n> +__attribute__ ((used))\n> +void\n> +asm_set (void)\n> +{\n> +  flag = 1;\n> +}\n> +\n> +__attribute__ ((noinline))\n> +static void\n> +clobber_and_set (void)\n> +{\n> +  __asm__ volatile (\"bl asm_set\" ::: \"r0\", \"r1\", \"r2\", \"r3\",\n> +                   \"ip\", \"lr\", \"memory\", \"cc\");\n> +}\n> +\n> +int main (void)\n> +{\n> +  flag = 0;\n> +  clobber_and_set ();\n> +  if (!flag)\n> +    __builtin_abort ();\n> +  return 0;\n> +}\n> --\n> 2.53.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=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=Hg4a/aTO;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=aaIo/wVf;\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=qualcomm.com header.i=@qualcomm.com header.a=rsa-sha256\n header.s=qcppdkim1 header.b=Hg4a/aTO;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com\n header.a=rsa-sha256 header.s=google header.b=aaIo/wVf","sourceware.org; dmarc=none (p=none dis=none)\n header.from=oss.qualcomm.com","sourceware.org;\n spf=pass smtp.mailfrom=oss.qualcomm.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=205.220.180.131"],"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 4fv9YR3Srqz1yDF\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 11:58:35 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 7E20F4BA2E09\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 13 Apr 2026 01:58:32 +0000 (GMT)","from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com\n [205.220.180.131])\n by sourceware.org (Postfix) with ESMTPS id A562B4BA2E09\n for <gcc-patches@gcc.gnu.org>; Mon, 13 Apr 2026 01:58:02 +0000 (GMT)","from pps.filterd (m0279871.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63CLYEMS025269\n for <gcc-patches@gcc.gnu.org>; Mon, 13 Apr 2026 01:58:02 GMT","from mail-dy1-f199.google.com (mail-dy1-f199.google.com\n [74.125.82.199])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dfewku9xt-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Mon, 13 Apr 2026 01:58:01 +0000 (GMT)","by mail-dy1-f199.google.com with SMTP id\n 5a478bee46e88-2d8a677cdfaso701720eec.1\n for <gcc-patches@gcc.gnu.org>; Sun, 12 Apr 2026 18:58:01 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 7E20F4BA2E09","OpenDKIM Filter v2.11.0 sourceware.org A562B4BA2E09"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org A562B4BA2E09","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org A562B4BA2E09","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776045482; cv=pass;\n b=n25KQFDdou63lO+Rs/gVGRQ1B4WXs31wcAUZBJdr8rYt3OQ71dGel4RAduugfdxoGug9Pi9AKftIWo/wuVCWLvSc+T1SLQH5d9ls1gQWCGbpDHA3IsAkpkglFVXlHj3/n7lwpCoOuuYHzb9fv9lJg1vIewx1301EJlGM2cUXI3M=","i=1; a=rsa-sha256; t=1776045481; cv=none;\n d=google.com; s=arc-20240605;\n b=kOnBrt93NkS+O+8uDhEoXJVoxaMOsqmwSxVOvUTFqMx7AWVJ3p/k8/jtLKkzIYxxy6\n ZC3Tsu9WKPOePd8lpC53BoCmgzFdfaQv1arUwGleYE4NouynrcjuzEtrmRahKEkRbsoP\n HbHJyMO0vm6gy4ZOirtHpbzzJNQyJKHn4LDWPtnVZMdmrwPggfyKVDXM9hQTwtjJHxT+\n xG64t6b0uLJlbJ6CIzGMDbYHPHqyQXSFriY/D2+uTV/CrBfGujjiZC+abdXAU9RlFvaX\n CvSqj3rprvOFqItoSo9BGyJXJuhnuxVF0qIeo0Vp8QhoRBJuxll9s2keDmbJuwANqO14\n kQFg=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776045482; c=relaxed/simple;\n bh=O11M/lQ86ix1VzGvY1t7XKAGyN6i8QdoVF5WXkbD/2U=;\n h=DKIM-Signature:DKIM-Signature:MIME-Version:From:Date:Message-ID:\n Subject:To;\n b=PDXlhyvvcpZzTcFe5gfr0H/7foytArHMXTXZmJmrIJOQ+xlUjg4oEJaZXrfDKvjrPX8F5+XtF945TysVNQRNKnT6ZIgjoLO4i3k+UIYd4aeFdMn2Y1QQkTpYjPTLwh7d2n0q6k2A+/6ZprTBCO/PX2BuJyyg8+t8MIJ/NeO9hwQ=","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=eDXiV6mq4f8ZcPBIB2wQCMfNTjCeDYS4KkUqWUAObB0=;\n fh=CY/x5fy3F/TZ2B/cRnwX5GGHp0CSUknjKyiovjRiM6M=;\n b=b+85PWV9AEyxGtvwucksdzWvMKdoPIHk+PliXwUfS2YR2OQOhuxUbcffm7EuuypYh1\n vpSNQqR4tLwDfCeVFcrFqGnfs0DXpRi4RJ7PE+R7VDvylLEoOmtAVdXhvgbZizMrUtyA\n i0kY0RUYb0nr9DtqACNO6jEi4ZKjPvuu+6jj9bH4OCBIstkFSIJz/tieMhv5bA0jOB2G\n iWM6Iy9iJDgHKudNQ8xnPbb/3LtzuLjXc2OmsEhAWVCmpVGxwhoqMTU6Xqqy+fv7dTKk\n GuUDhT1zVnrZpU9GgzMQQ5TmC5XCTWx6ms2xwME/7GDxL+VRGedeDS/nc9h5M/Hg7WIV\n JrBg==; 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; d=qualcomm.com; h=\n cc:content-transfer-encoding:content-type:date:from:in-reply-to\n :message-id:mime-version:references:subject:to; s=qcppdkim1; bh=\n eDXiV6mq4f8ZcPBIB2wQCMfNTjCeDYS4KkUqWUAObB0=; b=Hg4a/aTORDuu21He\n ZJMbvDJ1Oc0KYmxe6WcJ+enWRRah529fTT67uQfD2gpG+X0Zv3HVDVZIbXmSVswI\n Y1feFXmf2RZkvRWkkocevVhuvcSI6/OjU4t3r+s64j/FSUzzRM9uT57AC7QMY2h1\n KYt7t4ExdKAVCq7XXtmeT4eGLtwk7517ajXaWH9zgfP9TuL4+SKB4YAVbFLqdt9Y\n Bm9nEIfSwR68ZCXLLubAwd78Iow2VEwTNs8MwtM7S9RPl5mj4PFFuLA8Ss1CUkjl\n zcmEiq3D6+Y516u+ZicA9MAWyzIe9yLHvtzB37Zeo4xmT+137uhaKHdoVL1reh1h\n mQf0qg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1776045481; x=1776650281; 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=eDXiV6mq4f8ZcPBIB2wQCMfNTjCeDYS4KkUqWUAObB0=;\n b=aaIo/wVfBuuMPxqPiQ+GnzwTeHu1+8C+UIHclDyYwlSh8j/JCDLiBc/NkrwaHYKf3y\n FJDu0DinEOGyyCtqnhskN2Lb5fZWeEPAw2sQKjjQaeg9IkIID5kO6m9cIclGhVYO865s\n opWAbDEUmC2xDVTphsf9PDYSyfASlU2T/jllgWIHffc8CgAd7vsvuXBcDDViwk+fXfOn\n 6rluxkmim4QdJRsIzhf7thciSgrmgWrV8tO7wgRUl0+hSUMjBK+p9KZm8/8+Ta1LEIrG\n kc3kOLP0jEccFtzwQ0GwnjND3XwmCEPuk2pQ+5O9+CvPAB8EUVke7OEzMvl9EpyFRxmr\n JNYQ=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776045481; x=1776650281;\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=eDXiV6mq4f8ZcPBIB2wQCMfNTjCeDYS4KkUqWUAObB0=;\n b=UALbs+MLpJ7i6Ipf6XQgFqw6XSOEVjYsd2rVAdOJC5sjC7mML4FUWzSG8NqqfrnQKx\n HioJWy/4uKympT/fTfNZ+m/DFekftaeF5Rb5P98wUB6S7kIFLBeLqPmwW1vwxRnlOWx5\n TC4VPguybITWNxRtW5g39HAyobtZPwWLxJAPQxayvZQYuHJRK4exrPmPCV/nFbGHF8Ew\n EEIfDjoaA/KTA5IUgUVCvMDFpAK4Bexm9VqFW0iJ8eqiZiuslPm2WzPAzeT44QF1fl7E\n V0qQaqq9AqE1uNYBUnfBCQXDnvWg9bp5A6zK/leLu746SFjxgjIFNtt4/Ad89a+i/2fX\n vGGw==","X-Gm-Message-State":"AOJu0YxpVEcTybC+5+r2aXI5HOmy2Goy+vNxYySFucrrSEDwllO9RqPx\n v74dpqCm+25nCvEmNf2PAsJSe72ce8Hkkvz8yo2JI5M+VhIJlGh13CAnd46EBvKaJrnVLXUdgHq\n x4UpLCNnmq4R1OM6p6Vg94sNc3LZwezthehdFVnx07QlUaiGj7/4svUxSCt5dUEfjumypcRf/A7\n LFhmhlPWmirPv2hSzlKlzQlJy64/e+m6yRkS4KDTfIhb4=","X-Gm-Gg":"AeBDievg/e1z0ESanRv18gyiAcjIQmWrkkEFwxHVx+y7IqbsKd0xC9xIikeNHe3TUUb\n isWGtSFrShSdFJ6pF/Oul04XhQ7Oxpjk8dYUmZ4zXxu1QVDZczpJE1wLieQk1oLiWf4ovp/K3ay\n VolNrUHdpZUl0cUPi19o5KCHotlDg9NZpD9DxZ/UQgX/v81axjp+c0L5IVYH+nKSR5A18/q6Jhd\n EuK","X-Received":["by 2002:a05:7301:1003:b0:2c3:d51b:91c4 with SMTP id\n 5a478bee46e88-2d5876a4991mr5959418eec.7.1776045480458;\n Sun, 12 Apr 2026 18:58:00 -0700 (PDT)","by 2002:a05:7301:1003:b0:2c3:d51b:91c4 with SMTP id\n 5a478bee46e88-2d5876a4991mr5959409eec.7.1776045479835; Sun, 12 Apr 2026\n 18:57:59 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260413014751.62631-2-chris@chrisnc.net>","In-Reply-To":"<20260413014751.62631-2-chris@chrisnc.net>","From":"Andrew Pinski <andrew.pinski@oss.qualcomm.com>","Date":"Sun, 12 Apr 2026 18:57:48 -0700","X-Gm-Features":"AQROBzA5Q_7BkmzSZwIr1fUHA4JQ3mdO993kE8QX5AADgiMD47oWHjPThPGMW_s","Message-ID":"\n <CALvbMcCinFZ+sAJaUhOpQr8LSCxW5JuKi4p=61o+dAycg_7TYQ@mail.gmail.com>","Subject":"Re: [PATCH v3] ipa: honor memory clobbers in ipa-reference [PR124218]","To":"Chris Copeland <chris@chrisnc.net>","Cc":"gcc-patches@gcc.gnu.org","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-Authority-Analysis":"v=2.4 cv=bcFbluPB c=1 sm=1 tr=0 ts=69dc4da9 cx=c_pps\n a=cFYjgdjTJScbgFmBucgdfQ==:117 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10\n a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n a=3WHJM1ZQz_JShphwDgj5:22 a=mDV3o1hIAAAA:8 a=EJHnG6ylAAAA:8\n a=quF2lIyIWhL-RXBCw5kA:9 a=QEXdDO2ut3YA:10 a=O8hF6Hzn-FEA:10\n a=scEy_gLbYbu1JhEsrz4S:22 a=3Es6Gil5AuxR-dLjfNE0:22","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDEzMDAxNiBTYWx0ZWRfX6QU6bLZ3OIZk\n UPwik/gq6Fs/lFW7DmPobzhlJoAv/5DntZ7Qiq27rhE+S0kLc9JHfpWEsBI3S3dY5i/j7Y0ZkJz\n u/rEiaCTri8/CyUxUwvrntyLYbJ+jbtnWjll/vBK4KRpy9VWYQmH4huD8Cxjm+nDxjdaFFRSANC\n GaBm+uaGfGgfxfOcB0lmFKlmY+IHcVSHf72fT0bnWGcgH3xOzuIRhO5c1SdR7quovkBghgnoOkO\n Z2xQ485g/S6LAQIlw5NcuNfYlC3bXjD/xM+C9hkcYWZJpxv+OlFCALUWwwHiLHWhX3KJzqTGqa4\n ZVYsafoHCNGYxUzuF9riSdZv3U7q8B+lBi7jqE0waz1IarGIKbyS8w1CBjQcc5yeXtjHCqHG+N3\n ivRhCmq3rjp/jTzBFo8rA0rjTmqESdu+bNajGVEPmeGNuhQ0/MY4XNLzi20i/Zvo5Af+f3a2Gz7\n NEf+HixgVgB9lAiAtKg==","X-Proofpoint-ORIG-GUID":"9-9Y1gHgYGdPUDr9YzSsBAzBGKrqKh2-","X-Proofpoint-GUID":"9-9Y1gHgYGdPUDr9YzSsBAzBGKrqKh2-","X-Proofpoint-Virus-Version":"vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-04-13_01,2026-04-09_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n lowpriorityscore=0 clxscore=1015 impostorscore=0 malwarescore=0\n suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 priorityscore=1501\n spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound\n adjust=0 reason=mlx scancount=1 engine=8.22.0-2604010000\n definitions=main-2604130016","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"}}]