[{"id":3681731,"web_url":"http://patchwork.ozlabs.org/comment/3681731/","msgid":"<CALvbMcD6CLJ_18Jw46tXRo8a4vK4aKcoNfKeUCrnyZTTtA5rZw@mail.gmail.com>","list_archive_url":null,"date":"2026-04-24T01:49:13","subject":"Re: [PATCH v3] dse: Invalidate stale REG_EQUAL/REG_EQUIV notes after\n deleting stores [PR124894]","submitter":{"id":91428,"url":"http://patchwork.ozlabs.org/api/people/91428/","name":"Andrew Pinski","email":"andrew.pinski@oss.qualcomm.com"},"content":"On Thu, Apr 23, 2026 at 6:06 PM liuhongt <hongtao.liu@intel.com> wrote:\n>\n> > >> Fix this by not creating REG_EQUAL notes that reference non-read-only\n> > >> MEMs in add_equal_note.  Read-only MEMs (such as constant pool\n> > >> references) are safe since their contents cannot change.  REG_EQUAL\n> > >> notes are just optimization hints, so not adding them is always safe.\n> > > I don't think this is the right fix.  If DSE does something that\n> > > invalidates a note, DSE should be the one to remove the note.\n> > > There's nothing intrinsically wrong with a REG_EQUAL note that\n> > > references non-constant memory.\n> > Agreed on all points.\n> Changed in V3.\n>\n> Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}\n> Ok for main trunk?\n>\n> When DSE deletes a dead store, any REG_EQUAL/REG_EQUIV notes on insns\n> reachable from the store that reference the stored memory become\n> semantically stale: the note assumes the memory holds the stored\n> value, but after the store is removed the memory holds a different\n> (older) value.\n>\n> This becomes a correctness problem when a downstream pass propagates\n> into such a note and simplifies it.  For example, late-combine can\n> substitute a register source into the note, producing an expression\n> like (minus (mem[X]) (mem[X])) that simplify_binary_operation folds\n> to zero.  IRA then promotes REG_EQUAL(0) to REG_EQUIV(0), and reload\n> eliminates the computation entirely, producing wrong code.\n>\n> Fix this by:\n>\n> 1. During dse_step1's scan of each BB, record the insns that carry a\n>    REG_EQUAL/REG_EQUIV note whose value contains a MEM subexpression.\n>    The per-BB list is stored on dse_bb_info_type in forward program\n>    order.\n>\n> 2. When delete_dead_store_insn removes a dead store, invalidate\n>    aliasing notes in two phases:\n>    - Within the store's own BB, walk forward via NEXT_INSN starting\n>      at the store.\n>    - For every CFG-reachable successor BB, walk that BB's recorded\n>      mem_equiv_note_insns list.\n>\n> Recording during scan_insn avoids re-scanning BB insns on every\n> deletion for successor BBs; the per-deletion cost is proportional to\n> the number of candidate notes rather than the number of insns.  This\n> mirrors what store-motion already does in remove_reachable_equiv_notes\n> but reuses DSE's own per-BB scan.\n>\n> bb_table is switched from XNEWVEC to XCNEWVEC so that bb_table[i] is\n> NULL for successor blocks not yet scanned when a store is deleted in dse_step1.\n> otherwise remove_aliasing_equiv_notes would dereference uninitialized\n> pointers.\n>\n> gcc/ChangeLog:\n>\n>         PR rtl-optimization/124894\n>         * dse.cc (dse_bb_info_type::mem_equiv_note_insns): New field.\n>         (maybe_drop_aliasing_equiv_note): New function: drop an insn's\n>         REG_EQUAL/REG_EQUIV note if it aliases the deleted store.\n>         (remove_aliasing_equiv_notes): New function: walk NEXT_INSN\n>         within the store's BB; walk recorded lists in CFG successors.\n>         (delete_dead_store_insn): Invalidate stale REG_EQUAL/REG_EQUIV\n>         notes reachable from the deleted store.\n>         (dse_step0): Zero-initialize bb_table via XCNEWVEC.\n>         (scan_insn): Record insns with MEM-containing REG_EQUAL or\n>         REG_EQUIV notes.\n>         (dse_step7): Release per-BB note insn vectors.\n>\n> gcc/testsuite/ChangeLog:\n>\n>         PR rtl-optimization/124894\n>         * gcc.dg/pr124894.c: New test.\n>\n> Assisted-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>\n\nI am not even going to look at this or any LLM assisted patch until\nthere is a policy in place.\nI don't know if others will review it either. You might want to think\nabout not using LLM here because the policy being talked about at this\npoint is close to no legal significance portions can be written by\nLLMs.\n\nThanks,\nAndrea\n\n> ---\n>  gcc/dse.cc                      | 119 +++++++++++++++++++++++++++++++-\n>  gcc/testsuite/gcc.dg/pr124894.c |  36 ++++++++++\n>  2 files changed, 154 insertions(+), 1 deletion(-)\n>  create mode 100644 gcc/testsuite/gcc.dg/pr124894.c\n>\n> diff --git a/gcc/dse.cc b/gcc/dse.cc\n> index 847a8ff148a..064abd17e4c 100644\n> --- a/gcc/dse.cc\n> +++ b/gcc/dse.cc\n> @@ -484,6 +484,13 @@ struct dse_bb_info_type\n>       to assure that shift and/or add sequences that are inserted do not\n>       accidentally clobber live hard regs.  */\n>    bitmap regs_live;\n> +\n> +  /* The list of insns in this block that carry a REG_EQUAL or\n> +     REG_EQUIV note whose value contains a MEM subexpression.  These\n> +     are candidates for note invalidation when DSE deletes a dead\n> +     store that could alias one of the notes' MEMs.  The list is\n> +     populated in forward program order by scan_insn.  */\n> +  vec<rtx_insn *> mem_equiv_note_insns;\n>  };\n>\n>  typedef struct dse_bb_info_type *bb_info_t;\n> @@ -712,7 +719,7 @@ dse_step0 (void)\n>\n>    rtx_group_table = new hash_table<invariant_group_base_hasher> (11);\n>\n> -  bb_table = XNEWVEC (bb_info_t, last_basic_block_for_fn (cfun));\n> +  bb_table = XCNEWVEC (bb_info_t, last_basic_block_for_fn (cfun));\n>    rtx_group_next_id = 0;\n>\n>    stores_off_frame_dead_at_return = !cfun->stdarg;\n> @@ -894,6 +901,93 @@ check_for_inc_dec (rtx_insn *insn)\n>    return true;\n>  }\n>\n> +/* If INSN has a REG_EQUAL/REG_EQUIV note whose value references a MEM\n> +   that may alias STORE_MEM, remove that note.  Because notes are\n> +   installed via set_unique_reg_note, an insn has at most one such\n> +   note, so find_reg_equal_equiv_note suffices.  */\n> +\n> +static void\n> +maybe_drop_aliasing_equiv_note (rtx_insn *insn, rtx store_mem)\n> +{\n> +  if (!insn || !NONDEBUG_INSN_P (insn))\n> +    return;\n> +\n> +  rtx note = find_reg_equal_equiv_note (insn);\n> +  if (!note)\n> +    return;\n> +\n> +  subrtx_iterator::array_type array;\n> +  FOR_EACH_SUBRTX (iter, array, XEXP (note, 0), NONCONST)\n> +    {\n> +      const_rtx sub = *iter;\n> +      if (MEM_P (sub)\n> +         && true_dependence (store_mem, GET_MODE (store_mem), sub))\n> +       {\n> +         if (dump_file && (dump_flags & TDF_DETAILS))\n> +           fprintf (dump_file,\n> +                    \"  dropping stale REG_EQUAL note at insn %d\\n\",\n> +                    INSN_UID (insn));\n> +         remove_note (insn, note);\n> +         return;\n> +       }\n> +    }\n> +}\n> +\n> +/* When deleting a dead store to STORE_MEM at STORE_INSN, invalidate\n> +   any REG_EQUAL/REG_EQUIV notes that reference a MEM aliasing\n> +   STORE_MEM and are reachable from STORE_INSN.  Within STORE_INSN's\n> +   own BB, walk forward via NEXT_INSN starting from STORE_INSN.  For\n> +   CFG-reachable successor BBs, walk the recorded\n> +   MEM_EQUIV_NOTE_INSNS list built during scan_insn.  Such notes\n> +   become stale once the store is removed, because the memory then\n> +   holds a different (older) value than what the note assumes.  Later\n> +   passes (e.g. late-combine) may otherwise propagate into the note\n> +   and produce incorrect simplifications (e.g. (minus (mem) (mem))\n> +   -> 0).  */\n> +\n> +static void\n> +remove_aliasing_equiv_notes (rtx_insn *store_insn, rtx store_mem)\n> +{\n> +  basic_block store_bb = BLOCK_FOR_INSN (store_insn);\n> +\n> +  /* Walk forward within the store's own BB via NEXT_INSN.  */\n> +  for (rtx_insn *insn = NEXT_INSN (store_insn);\n> +       insn && insn != NEXT_INSN (BB_END (store_bb));\n> +       insn = NEXT_INSN (insn))\n> +    maybe_drop_aliasing_equiv_note (insn, store_mem);\n> +\n> +  /* For successor BBs, use the recorded list populated by scan_insn\n> +     rather than re-walking each BB's insns.  */\n> +  auto_sbitmap visited (last_basic_block_for_fn (cfun));\n> +  bitmap_clear (visited);\n> +  bitmap_set_bit (visited, store_bb->index);\n> +\n> +  auto_vec<basic_block, 16> worklist;\n> +  edge e;\n> +  edge_iterator ei;\n> +  FOR_EACH_EDGE (e, ei, store_bb->succs)\n> +    if (e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun)\n> +       && bitmap_set_bit (visited, e->dest->index))\n> +      worklist.safe_push (e->dest);\n> +\n> +  while (!worklist.is_empty ())\n> +    {\n> +      basic_block bb = worklist.pop ();\n> +      bb_info_t succ_bb_info = bb_table[bb->index];\n> +      if (succ_bb_info)\n> +       {\n> +         unsigned i;\n> +         rtx_insn *insn;\n> +         FOR_EACH_VEC_ELT (succ_bb_info->mem_equiv_note_insns, i, insn)\n> +           maybe_drop_aliasing_equiv_note (insn, store_mem);\n> +       }\n> +      FOR_EACH_EDGE (e, ei, bb->succs)\n> +       if (e->dest != EXIT_BLOCK_PTR_FOR_FN (cfun)\n> +           && bitmap_set_bit (visited, e->dest->index))\n> +         worklist.safe_push (e->dest);\n> +    }\n> +}\n> +\n>  /* Delete the insn and free all of the fields inside INSN_INFO.  */\n>\n>  static void\n> @@ -910,6 +1004,16 @@ delete_dead_store_insn (insn_info_t insn_info)\n>      fprintf (dump_file, \"Locally deleting insn %d\\n\",\n>              INSN_UID (insn_info->insn));\n>\n> +  /* Before freeing the store info, invalidate any REG_EQUAL/REG_EQUIV\n> +     notes on later insns that reference memory aliased by this store.\n> +     The notes become semantically stale once the store is gone.\n> +     A deletable insn contains exactly one mem set (plus clobbers), so\n> +     just skip the clobbers to find it.  */\n> +  store_info *si = insn_info->store_rec;\n> +  while (!si->is_set)\n> +    si = si->next;\n> +  remove_aliasing_equiv_notes (insn_info->insn, si->mem);\n> +\n>    free_store_info (insn_info);\n>    read_info = insn_info->read_rec;\n>\n> @@ -2534,6 +2638,13 @@ scan_insn (bb_info_t bb_info, rtx_insn *insn, int max_active_local_stores)\n>        return;\n>      }\n>\n> +  /* Remember insns whose REG_EQUAL/REG_EQUIV note references a MEM\n> +     subexpression.  If DSE later deletes a store that may alias such\n> +     a MEM, delete_dead_store_insn will invalidate the stale note.  */\n> +  if (rtx note = find_reg_equal_equiv_note (insn))\n> +    if (contains_mem_rtx_p (XEXP (note, 0)))\n> +      bb_info->mem_equiv_note_insns.safe_push (insn);\n> +\n>    /* Look at all of the uses in the insn.  */\n>    note_uses (&PATTERN (insn), check_mem_read_use, bb_info);\n>\n> @@ -3686,6 +3797,12 @@ dse_step6 (void)\n>  static void\n>  dse_step7 (void)\n>  {\n> +  /* Release per-BB vectors holding recorded REG_EQUAL note insns.  */\n> +  basic_block bb;\n> +  FOR_ALL_BB_FN (bb, cfun)\n> +    if (bb_table[bb->index])\n> +      bb_table[bb->index]->mem_equiv_note_insns.release ();\n> +\n>    bitmap_obstack_release (&dse_bitmap_obstack);\n>    obstack_free (&dse_obstack, NULL);\n>\n> diff --git a/gcc/testsuite/gcc.dg/pr124894.c b/gcc/testsuite/gcc.dg/pr124894.c\n> new file mode 100644\n> index 00000000000..f906169c699\n> --- /dev/null\n> +++ b/gcc/testsuite/gcc.dg/pr124894.c\n> @@ -0,0 +1,36 @@\n> +/* { dg-do run } */\n> +/* { dg-require-effective-target int128 } */\n> +/* { dg-require-effective-target lp64 } */\n> +/* { dg-options \"-O2 -fno-strict-aliasing\" } */\n> +\n> +/* PR rtl-optimization/124894 */\n> +/* DSE can delete a store after forward-substituting the stored value into\n> +   a load, leaving a stale MEM in a REG_EQUAL note.  Late-combine must not\n> +   propagate into such notes, as the resulting simplification (e.g.\n> +   (minus (mem) (mem)) -> 0) would be wrong.  */\n> +\n> +short s;\n> +__int128 z;\n> +long g;\n> +\n> +__attribute__((noipa)) long\n> +foo (short a)\n> +{\n> +  long t = 0;\n> +  char c = *(char *) __builtin_memset (&z, 2, 6);\n> +  __builtin_memset (&s, c, 2);\n> +  __builtin_memmove (&t, &g, 4);\n> +  long u = -t;\n> +  long v = *(long *) __builtin_memset (&t, a | 6, 8);\n> +  __int128 w = z % s;\n> +  long r = w + t + u + v;\n> +  return r;\n> +}\n> +\n> +int\n> +main ()\n> +{\n> +  long x = foo (0);\n> +  if (x != 0x0c0c0c0c0c0c0c0c)\n> +    __builtin_abort ();\n> +}\n> --\n> 2.34.1\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=doAVJanf;\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=iexyDOm3;\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=doAVJanf;\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=iexyDOm3","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.168.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 4g1wrY2T1fz1yDD\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 11:50:02 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 6CCB54B99F6B\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 01:50:00 +0000 (GMT)","from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com\n [205.220.168.131])\n by sourceware.org (Postfix) with ESMTPS id E52F34B99F59\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 01:49:27 +0000 (GMT)","from pps.filterd (m0279867.ppops.net [127.0.0.1])\n by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 63NJRgKL3803917\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 01:49:26 GMT","from mail-dy1-f200.google.com (mail-dy1-f200.google.com\n [74.125.82.200])\n by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dqkqftvwx-1\n (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT)\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 01:49:25 +0000 (GMT)","by mail-dy1-f200.google.com with SMTP id\n 5a478bee46e88-2bdf75bc88fso9390861eec.0\n for <gcc-patches@gcc.gnu.org>; Thu, 23 Apr 2026 18:49:25 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 6CCB54B99F6B","OpenDKIM Filter v2.11.0 sourceware.org E52F34B99F59"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org E52F34B99F59","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org E52F34B99F59","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1776995368; cv=pass;\n b=ApdmGKtmTWx46AdYmu3XUc+YJdXSElHzAOpUIM09CB4q5jiJ3eSHM929ZJYO7G1vZTXuZVyYjuhdYMC8TmAaU3HjvZF9DlWv/UmnVrGqTJXCs7wMe/EyKNIFa5ZKVS1Yi7+k8DkcGq1UyBxCIqmOehOcDMQ2dPT9fiLHS40EvMw=","i=1; a=rsa-sha256; t=1776995365; cv=none;\n d=google.com; s=arc-20240605;\n b=O6SqnSi4V9hmV09USMbUcOsKL4HDilcH3C6w5mLDE2QEuDg5AsESi9cPzngNme5piv\n +xigkKti9pVXXsQRXZmYCnxFCy94+47gbXKYKYqBKHdVNxmTKplBf+0HHsOVkQGBVZHe\n 9yr/n/Lm7QuPu7aiJHdNA1K+5lus/9+b85/741iRuGsFAYRXQEyp7r8PRfguGXkT4ohn\n GKRolJ40zSk3bKtIjPDT+LbLTLacWruduTm1JMziRP/RZppH1fAsuJfEvikJO6IPK4Kh\n mlqNFuR8NeX92WUrSkIeqQo7O6pfenmKlAtjZoIgwMrOlGnMzlmqcd0s/fD4nmQVCDYQ\n C3EQ=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776995368; c=relaxed/simple;\n bh=yBAoNLU+U/xJUI/1v329/FbLRt73Hb5E3I9vY5Y23+A=;\n h=DKIM-Signature:DKIM-Signature:MIME-Version:From:Date:Message-ID:\n Subject:To;\n b=Z4s65ux/ENO23cH8Oi9sh71v+zrynwp0Wrb8t+kaoRfpnLlPlvUURofx5lrjGrHEIymPoNiyNVNGv0q3/kWc1ONd+p+xF8IFrYDibY8Eugr5bEdWDojiT2Tk+uf2zsUUsHY0yGCsEl+8gO2cpOPKceMVD+cFP5cNWQ9GfHoO9zI=","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=FF5Qh3rBjaPDvsm/lPxgkrtieYLaeIXkP8ffQ204Jz8=;\n fh=q9/8Xr89sBZ0n42gQOzSDNiRzkuPzNcoDZs9+THxZj8=;\n b=Eyii5fkaTBR4ZHHrSi0zacsQ4HvQolibil467Bb7/iRP4Nvt4UrYUz/wjbq0W7XZVz\n 70joNGO7sURYTqFpfyCTK5XEMPVZdwGhf2nXKXaXzskPR2dvIPsbY8LYu4igpU8DGOJo\n e84bvCsdocjnOW16nW3/WI3zZw3F6/9tN5xWXOgL0oglwlx7N7E0K0AY1APjrlO1p6Cx\n NoO4J6w8SQAMk+9yYkeUOWlnAXv8tvLJ8Sy/GOBNY4HJDh87wtm8Kr7KfeeIHI7YJx3t\n dEcJw1N9R7piY6uAHFUMXHHUdmNdrJMucm6/eWL5zSfJQckeHbpj0/VVtbcLVUWA9KjI\n eQcQ==; 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 FF5Qh3rBjaPDvsm/lPxgkrtieYLaeIXkP8ffQ204Jz8=; b=doAVJanfvn28MC/s\n KWo84+3GL9j1Sw6dqF/3KuWSIf8LIoLXXa3Pp8gUhkMXl1/bBfg8RIQjJ7RXCirj\n axLXHiNNj3bp9M14WOJ6DxoQtG/64++z3GrmspW/UYZZ9nqLuoZq/PweTmRCx8uh\n XhnkUELyvi0HndPnNAiGsSesjw71fv6HsK/SPysC4kdOYGDsXN6g7c0LpcLa/i1q\n YCtk4IdWV+rdZOxpQ4yoEQ9XFlxv3EuBWMVFlDDJxpm+HF35Uk43txvYt+i5PKfD\n RQHOgFMcLFWeKSflTZzBLF9Ur5g0QyB4A3b7e/jaawrWJtqq0tHsYpZI1tfrhAZk\n jIf9wg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=oss.qualcomm.com; s=google; t=1776995365; x=1777600165; 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=FF5Qh3rBjaPDvsm/lPxgkrtieYLaeIXkP8ffQ204Jz8=;\n b=iexyDOm3DQb6P3fH6JQTEt6mm/RlfkP/PUCLS6XcqlZSWsds3+xkPEpHWtRyK2nYB4\n 4tDkhcJ7p7vIw1CfitNusBEUl88/5DcwUX9o8cKHw6b2YPfan15gZXlMgnHSBHcX5cya\n TfWXdn94at57I6ocWU+PEhPJuaPMKrhsNZ2lo86N7BbZwlurmIME/zYvaXSC+StNev3r\n Z4hAC/OCeHUwA/ANKMmdsRdvgcCW0+Vl6GJ77IyaiEKQu4FrsS4UEXXkteCPC/SI8keC\n Gi4zDeCEZW4fIxNjnCoTyZ01yelucS7qXvri58x8JcmZgftJwK2zpReuIwfIgj0fyyi+\n HSxQ=="],"X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776995365; x=1777600165;\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=FF5Qh3rBjaPDvsm/lPxgkrtieYLaeIXkP8ffQ204Jz8=;\n b=aGPDJjnDBKF8NdsaEeuW6OZ7CsNkhydSUNDGaZwrg56obKijLW3O97EfWYkF0h0EqY\n mPgVVz5D7qalLC0AiE4zkg+1n0hLtLRcsVOzKbtIdpBeis+ck+PvqZOnvnOy1p+b374/\n lkAutDg/HQcvJ/MESbDn3FoPpz3UmnZFTza5lbx9ww6cNXQHodnqr95Sr5YbJE5ZjPq7\n enU2owoVmRa5Slnh16E0OivDKTFVwYQOFZKecT7Ag5grz2jwEhfRkxhKZ79iWVjlrAHb\n c1GoPDF3AR5Ni/FIIB5JhguNf1waU65n3DxxJLqoaURxRSVjxvjj2e0QIEXRhOj7C/Qb\n Q5Sg==","X-Gm-Message-State":"AOJu0YyhYjkipbDB1/vxOU/thDaUykSH96ePk9uBzkDy7d8aKDO9VJyi\n lI+L9mLl9wI/UJbN9NmopgicGZZCAuPqzjkF9xGCKDMat059aTLMUcj6dF+efrNoPa17KSbZCet\n aByZyAq2NnESkzsNfaE5g6xoZXUXREBXTv0PWFVuKltuRaRCubqgYo4MwKiF7nqm7a17AFwT3i8\n gTiL+Kw6nmdagtOxoby2NBHgTehyQyFCrgL98=","X-Gm-Gg":"AeBDiesMsd+xCvwzU2RF7zVJduPZSp48TBrNTGpD4au5xSxcCAbKznJRM2U+iEXkCLC\n gx3EmhccssEeCdZ2krnjH9MAUTGU0jW9ApM7N+ajPH28aqnTvV2vvet2dkZJr5uJ6mNUHh2YT12\n B+cDTTQECny/mdfz0ktfLTxMC+BThbURR2yuZvfHZOEgQ03OvxH/jjYPpLTJVdq5FrN47eWx1iX\n 0eEbjphp+qB7w==","X-Received":["by 2002:a05:7300:3211:b0:2dd:db16:478e with SMTP id\n 5a478bee46e88-2e4654880bemr15153861eec.10.1776995364927;\n Thu, 23 Apr 2026 18:49:24 -0700 (PDT)","by 2002:a05:7300:3211:b0:2dd:db16:478e with SMTP id\n 5a478bee46e88-2e4654880bemr15153850eec.10.1776995364319; Thu, 23 Apr 2026\n 18:49:24 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260424010631.1327080-1-hongtao.liu@intel.com>","In-Reply-To":"<20260424010631.1327080-1-hongtao.liu@intel.com>","From":"Andrew Pinski <andrew.pinski@oss.qualcomm.com>","Date":"Thu, 23 Apr 2026 18:49:13 -0700","X-Gm-Features":"AQROBzBhRwfOdMWkFpDDN0U3twTt1Dkyv8IbbJxWJ2S2iBbiCY8Zrmocpw3UnZ0","Message-ID":"\n <CALvbMcD6CLJ_18Jw46tXRo8a4vK4aKcoNfKeUCrnyZTTtA5rZw@mail.gmail.com>","Subject":"Re: [PATCH v3] dse: Invalidate stale REG_EQUAL/REG_EQUIV notes after\n deleting stores [PR124894]","To":"87eck8of6d.fsf@googlemail.com","Cc":"gcc-patches@gcc.gnu.org, rdsandiford@googlemail.com,\n ebotcazou@libertysurf.fr, rguenther@suse.de, jeffrey.law@oss.qualcomm.com,\n \"Claude Opus 4 . 6\" <noreply@anthropic.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Content-Transfer-Encoding":"quoted-printable","X-Proofpoint-GUID":"z1pxEViXx782-n_yikuCpdI91NrXt-pi","X-Proofpoint-ORIG-GUID":"z1pxEViXx782-n_yikuCpdI91NrXt-pi","X-Proofpoint-Spam-Details-Enc":"AW1haW4tMjYwNDI0MDAxMiBTYWx0ZWRfX/2WBq7oXftV5\n UtiI+IRI7rynoouWkF2vrPGmrXKM6EQiJHtQLHc+z6BFuXdrXxw9prG5rq4L/CTqmiKoFDq8wci\n O9PIcGBUweww2mUWe+AEcFJqEyFUM5BjI/Zov0d9nuhBe47GEOOpIGQBB/DzCaaGQM1FWi+3+yY\n WRqYCOkVDsdFcSf1po8FHq6bvHtqmWu4yD3wrPDnytXUXSqGedYlv05GZSuj7hl13oBqhLwKYc5\n IbcQXwM55VZyv0q8bSOFBceSVBx4IW7xPbU6F5FB3WxV2iNJKvqSeCqKnov2Wse+bdwmjj8vFm2\n +cp9kXEfKMnNEUBxIP67/wx7AkcHsVP8ru0E4qh8lMbYPIj1rUf3pUyOcPVOd4OfIyjQua0Uqum\n 9kzt1a/wKZQXL8qQvVdf8DkWk6atSAFH9V6htBY6xjtSf8N1GeidyBMFuk0PYYJwxilE8p5HmLG\n cPa4gb7cpfzPrbqigDg==","X-Authority-Analysis":"v=2.4 cv=ablRWxot c=1 sm=1 tr=0 ts=69eacc25 cx=c_pps\n a=PfFC4Oe2JQzmKTvty2cRDw==:117 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10\n a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22\n a=eoimf2acIAo5FJnRuUoq:22 a=QyXUC8HyAAAA:8 a=6gl_cCoBAAAA:8\n a=LMJZ9inDarmzDp4OwKcA:9 a=QEXdDO2ut3YA:10 a=6Ab_bkdmUrQuMsNx7PHu:22\n a=Bor9z-CvbNo2M6AZn8_k:22","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-23_03,2026-04-21_02,2025-10-01_01","X-Proofpoint-Spam-Details":"rule=outbound_notspam policy=outbound score=0\n bulkscore=0 phishscore=0 priorityscore=1501 suspectscore=0 adultscore=0\n impostorscore=0 malwarescore=0 clxscore=1015 lowpriorityscore=0 spamscore=0\n classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0\n reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604240012","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"}}]