get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2219561/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2219561,
    "url": "http://patchwork.ozlabs.org/api/patches/2219561/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/CAMe9rOqehAHY1DjMoco_vDqoPSY4-o=q=Ty6Yro9uDHOy+2CBg@mail.gmail.com/",
    "project": {
        "id": 17,
        "url": "http://patchwork.ozlabs.org/api/projects/17/?format=api",
        "name": "GNU Compiler Collection",
        "link_name": "gcc",
        "list_id": "gcc-patches.gcc.gnu.org",
        "list_email": "gcc-patches@gcc.gnu.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<CAMe9rOqehAHY1DjMoco_vDqoPSY4-o=q=Ty6Yro9uDHOy+2CBg@mail.gmail.com>",
    "list_archive_url": null,
    "date": "2026-04-03T12:24:25",
    "name": "Correct x86: Call ix86_access_stack_p only for larger alignment",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "2d65cf41d4c1de33a73c73f2b5d6780e4706f43d",
    "submitter": {
        "id": 4387,
        "url": "http://patchwork.ozlabs.org/api/people/4387/?format=api",
        "name": "H.J. Lu",
        "email": "hjl.tools@gmail.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/CAMe9rOqehAHY1DjMoco_vDqoPSY4-o=q=Ty6Yro9uDHOy+2CBg@mail.gmail.com/mbox/",
    "series": [
        {
            "id": 498623,
            "url": "http://patchwork.ozlabs.org/api/series/498623/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=498623",
            "date": "2026-04-03T12:24:25",
            "name": "Correct x86: Call ix86_access_stack_p only for larger alignment",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/498623/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2219561/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2219561/checks/",
    "tags": {},
    "related": [],
    "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=NPsKtFxo;\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=NPsKtFxo",
            "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.216.46"
        ],
        "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 4fnHxX6Vkwz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 03 Apr 2026 23:25:35 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 58F9F4BA2E2A\n\tfor <incoming@patchwork.ozlabs.org>; Fri,  3 Apr 2026 12:25:33 +0000 (GMT)",
            "from mail-pj1-f46.google.com (mail-pj1-f46.google.com\n [209.85.216.46])\n by sourceware.org (Postfix) with ESMTPS id EFC914BA2E2A\n for <gcc-patches@gcc.gnu.org>; Fri,  3 Apr 2026 12:25:03 +0000 (GMT)",
            "by mail-pj1-f46.google.com with SMTP id\n 98e67ed59e1d1-35d94f4ee36so1084362a91.3\n for <gcc-patches@gcc.gnu.org>; Fri, 03 Apr 2026 05:25:03 -0700 (PDT)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 58F9F4BA2E2A",
            "OpenDKIM Filter v2.11.0 sourceware.org EFC914BA2E2A"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org EFC914BA2E2A",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org EFC914BA2E2A",
        "ARC-Seal": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775219104; cv=pass;\n b=wckBWG9M8n9epI5GmszhCvKvmx9NmP+pXgtp0WMgZyjKye3l807mcgCv05K/8s7oPDCO5njUnT5LMZ32a3Irt8Jx46kbAAv1fGEWQRzcF8ZB3FybwAvjVTSRhk8vjzDTKcu2FPk3yFRWhlOG3ZlyFqgbiEBdyajeu+1pVPlsRVA=",
            "i=1; a=rsa-sha256; t=1775219102; cv=none;\n d=google.com; s=arc-20240605;\n b=ACHmkVZXOUndWxglB1dGQrC4wB300FCHcZXXVlr2HzLsruwQxjRPjXjl2wPKSOeEtU\n OFk3MibMfyr8KH0AxYvApVg1jmTNG2iJayHNnkAv2mRjyiLKocKCFwVCjYTRtSACm+4j\n oCxWjgcaeNzFIZFoTnY18PDX8u0TFHGUMG9sekhlO8ZY3Nc/enRiw0anjUMC2NYRMz47\n R9OJfYfleSfLpJiG1GHCcnuBooBSxiJ11KaqJPPdq9MUuxlzF3l9LXIyPEBvJunNT3FR\n lWiSs1uFuFAvPdADCWlBWnwNJmOXbFg8ERX51xWm36mlnvZ8mMiIgnGiz1bR+IVXUHz5\n fZRA=="
        ],
        "ARC-Message-Signature": [
            "i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1775219104; c=relaxed/simple;\n bh=IHnR9cY9BFqDlVRDv6haVv7n8SdBCVZH8jJLdvecHfM=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=D0ciq+ihVcfwkb4Uu4FiMNv16/ey/C1l5oyLxh1Tljixn9CW8jkrU3J+wsSSOeugKpWmdYFBy5ItlyMdRAQnFdjR2JVlYSqb0iTmEvhq6uSTQOEma31r+TFiecngcoUrlLksBgf3XdCQoZTej1BcDdE9+ZKBbpHqBkpnuPDG1C4=",
            "i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=to:subject:message-id:date:from:mime-version:dkim-signature;\n bh=UT9O5/Sk8HnGTfBgbM5Jz0KwXprONjR042pTUaL3ZsI=;\n fh=okR1CaX4KpVgB6hlfiPM+t24kv6J9DbMhqBwAOjM2v0=;\n b=fEohkuy69rJv8oAiCf4g3trCN97wv+S70yGQUSMm/ggzwV5p4MeqcNKywG2gJKB/g+\n pAyvuSUf15B5Kbg6enG+Qca2SK3cKvoaKRehgEU4r/oTXTqWvqQV7i7fR9GabCXKGdMp\n ZuhlvZAcsDQ1y1Dgo8la3VU/GCy3YSNmBdCq/3JvLFkVS41TuFITAjQktM7gD0Y96NON\n EG674t/IxXDB6wHUlqZ7FgtNiFUBMCZb1vP7gH7pusaIdqcUGUmPxx1OwWmW+kjyrKxw\n Ayq0Wf/XXYzVExOP5Vvx6EcByv0qLjVeeUusS3lnmPpIUMg4ibc6r0MRxsDaYSR7Q1ml\n IAjQ==; 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=1775219102; x=1775823902; darn=gcc.gnu.org;\n h=to:subject:message-id:date:from:mime-version:from:to:cc:subject\n :date:message-id:reply-to;\n bh=UT9O5/Sk8HnGTfBgbM5Jz0KwXprONjR042pTUaL3ZsI=;\n b=NPsKtFxonGKXEyO++WY+8McjeK4kPu/mrb9Sh91w4CDhcRz1o71JYEta0EIp16ChIZ\n Xkqjole9GIMe7hyGKabGNic3zJYXk9SLyXg+Nd8SXQSEscABNilkP6opbwrWo4fyTg6L\n MRx8gVjBXSZqXvL5i8CnLh+eWX4jVqODNsxZ1HLy5jqAG7+SCKgfk7AOuxDyLVqD+nLm\n 7myVL/oN7f3aV6CeBQxXN4i5THJfim61LqrJffCaOxor2ORZP8CSWgd5XstE4dugSwff\n zoXl21PcraoLFOe5wX+LHq788ZcoQAilMvZ4fbajfBp27mrFT6TNdrH7gHfp4W9J/y39\n agkA==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775219102; x=1775823902;\n h=to:subject:message-id:date:from:mime-version:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=UT9O5/Sk8HnGTfBgbM5Jz0KwXprONjR042pTUaL3ZsI=;\n b=JuRVC3nk1jFXbjqwxq4wP9KunsGiT1cyFUYpuDWpfGz4faS0OAGQ/ar7n5HaJHgPg2\n DIsGhln9wNmqFvx20jxQpm3K394xkKQ6lOIKiczSlfYakC18Hnxdj6yCT05c67ws4TMZ\n Ys/ci3n/9qVVRf7/JQwCffiw1bmW2Ov6VxT+FcIOAvPFeZ/ExFR98iMfwcCHpUNm2frH\n 9vW95Thd1AtoKttMGLkowNw7HOPrIifLr3Dy9WjBPS/AmJnLKl4yJkiq5E39Anmctfss\n a1DZFiXxiLBy62f1hdye7NsqJ3DdWDLUJAcvsIxD1f6txmU3BqSx1TeukoyYlshl3/52\n wy5Q==",
        "X-Gm-Message-State": "AOJu0YxOgKVfc2MSw6Kumdt1OSkLulYkQDvOS88WQOTN2cs1066xCZsk\n KvgJ7+GCp02msfjqPVTgVW+ZgM2BINYpE0rxfoYz1zOBPBggc88AaBeNbt7M/eBhY7PM2yqdJah\n XIDDnTg96RSyEVaJKp6DOlbwRmnv2urKsiPR6UhKl+Q==",
        "X-Gm-Gg": "AeBDietLR4Ox0/8TbfWY0dUpaAplvXSjsKtcJsOaXAg/IYr1yLFOPI2l/nouoIlgbKX\n XrrzJdEjIVAnW6Foavh/MVSEDaByomSGP5bP2yoYeWjSJ7raJsqz4nJtQzTBGK19mehdFw72wPx\n 45+RVBEvzGr4rwyETLSHnZL7NIqPykD9pj9xaKqBO1zD4AXbWAZBprSS8c2nXKsDvEyy39D9O88\n GclwK3yZDSzkF2yvBFTBvoAj2Ul/gyxv/VDThcR88EYCxdUhgZ11j5I2lUDp3v90yeKvJaG73GT\n A9FetJY=",
        "X-Received": "by 2002:a17:90b:2ecc:b0:35b:a760:1a54 with SMTP id\n 98e67ed59e1d1-35de68ce861mr2574338a91.18.1775219102474; Fri, 03 Apr 2026\n 05:25:02 -0700 (PDT)",
        "MIME-Version": "1.0",
        "From": "\"H.J. Lu\" <hjl.tools@gmail.com>",
        "Date": "Fri, 3 Apr 2026 20:24:25 +0800",
        "X-Gm-Features": "AQROBzDi0_WPazzNSR_-tjivJfhAiDyXFeAu7yjqZOsdtDMbKc8zxZDB3KJv25g",
        "Message-ID": "\n <CAMe9rOqehAHY1DjMoco_vDqoPSY4-o=q=Ty6Yro9uDHOy+2CBg@mail.gmail.com>",
        "Subject": "[PATCH] Correct x86: Call ix86_access_stack_p only for larger\n alignment",
        "To": "GCC Patches <gcc-patches@gcc.gnu.org>, Richard Biener <rguenther@suse.de>,\n Uros Bizjak <ubizjak@gmail.com>, Hongtao Liu <hongtao.liu@intel.com>",
        "Content-Type": "multipart/mixed; boundary=\"00000000000000800e064e8d684b\"",
        "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"
    },
    "content": "commit f511bf93f947199a9f9099fee87b7052e5515fb9\nAuthor: H.J. Lu <hjl.tools@gmail.com>\nDate:   Sun Mar 29 14:30:28 2026 -0700\n\n    x86: Call ix86_access_stack_p only for larger alignment\n\nhas 2 issues:\n\n1. It is incorrect to use GET_MODE_ALIGNMENT as memory alignment since\nmemory alignment can be different from mode alignment as in\n\n(set (reg:OI 20 xmm0 [orig:112 s ] [112])\n     (mem/c:OI (plus:DI (reg/f:DI 7 sp)\n            (const_int -32 [0xffffffffffffffe0])) [3 s+0 S32 A128]))\n\nMEM_ALIGN should be used instead.\n\n2. It replaced:\n\n  HARD_REG_SET hard_stack_slot_access = stack_slot_access;\n  ...\n      bool symbolic_const_load_p = false;\n\n      if (!TEST_HARD_REG_BIT (hard_stack_slot_access, regno))\n...\n        symbolic_const_load_p = true;\n      ...\n\n      if (!symbolic_const_load_p\n          || ix86_access_stack_p...)\ncall ix86_update_stack_alignment.\n\nwith\n\n      if (ix86_need_alignment_p...\n          && ix86_access_stack_p...)\ncall ix86_update_stack_alignment.\n\nSince ix86_access_stack_p excludes registers on hard_stack_slot_access,\nstack alignment isn't updated for registers on hard_stack_slot_access.\nInstead, we should do\n\n      if (ix86_need_alignment_p...\n          && (TEST_HARD_REG_BIT (hard_stack_slot_access, regno)\n      || ix86_access_stack_p...))\ncall ix86_update_stack_alignment.\n\ngcc/\n\nPR target/124759\n* config/i386/i386.cc (ix86_need_alignment_p_1): Replace\nGET_MODE_ALIGNMENT with MEM_ALIGN.\n(ix86_find_max_used_stack_alignment): Restore\nhard_stack_slot_access handling.\n\ngcc/testsuite/\n\nPR target/124759\n* gcc.target/i386/pr124759.c: New test.",
    "diff": "From b0ddf3f222e0109ba9c97c36cfd800c54bb435c9 Mon Sep 17 00:00:00 2001\nFrom: \"H.J. Lu\" <hjl.tools@gmail.com>\nDate: Fri, 3 Apr 2026 15:55:17 +0800\nSubject: [PATCH] Correct x86: Call ix86_access_stack_p only for larger\n alignment\n\ncommit f511bf93f947199a9f9099fee87b7052e5515fb9\nAuthor: H.J. Lu <hjl.tools@gmail.com>\nDate:   Sun Mar 29 14:30:28 2026 -0700\n\n    x86: Call ix86_access_stack_p only for larger alignment\n\nhas 2 issues:\n\n1. It is incorrect to use GET_MODE_ALIGNMENT as memory alignment since\nmemory alignment can be different from mode alignment as in\n\n(set (reg:OI 20 xmm0 [orig:112 s ] [112])\n     (mem/c:OI (plus:DI (reg/f:DI 7 sp)\n            (const_int -32 [0xffffffffffffffe0])) [3 s+0 S32 A128]))\n\nMEM_ALIGN should be used instead.\n\n2. It replaced:\n\n  HARD_REG_SET hard_stack_slot_access = stack_slot_access;\n  ...\n      bool symbolic_const_load_p = false;\n\n      if (!TEST_HARD_REG_BIT (hard_stack_slot_access, regno))\n\t...\n        symbolic_const_load_p = true;\n      ...\n\n      if (!symbolic_const_load_p\n          || ix86_access_stack_p...)\n\tcall ix86_update_stack_alignment.\n\nwith\n\n      if (ix86_need_alignment_p...\n          && ix86_access_stack_p...)\n\tcall ix86_update_stack_alignment.\n\nSince ix86_access_stack_p excludes registers on hard_stack_slot_access,\nstack alignment isn't updated for registers on hard_stack_slot_access.\nInstead, we should do\n\n      if (ix86_need_alignment_p...\n          && (TEST_HARD_REG_BIT (hard_stack_slot_access, regno)\n\t      || ix86_access_stack_p...))\n\tcall ix86_update_stack_alignment.\n\ngcc/\n\n\tPR target/124759\n\t* config/i386/i386.cc (ix86_need_alignment_p_1): Replace\n\tGET_MODE_ALIGNMENT with MEM_ALIGN.\n\t(ix86_find_max_used_stack_alignment): Restore\n\thard_stack_slot_access handling.\n\ngcc/testsuite/\n\n\tPR target/124759\n\t* gcc.target/i386/pr124759.c: New test.\n\nSigned-off-by: H.J. Lu <hjl.tools@gmail.com>\n---\n gcc/config/i386/i386.cc                  | 17 +++++++++-----\n gcc/testsuite/gcc.target/i386/pr124759.c | 29 ++++++++++++++++++++++++\n 2 files changed, 40 insertions(+), 6 deletions(-)\n create mode 100644 gcc/testsuite/gcc.target/i386/pr124759.c\n\ndiff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc\nindex 39136ce5042..146b83f6d1e 100644\n--- a/gcc/config/i386/i386.cc\n+++ b/gcc/config/i386/i386.cc\n@@ -8789,7 +8789,7 @@ ix86_need_alignment_p_1 (rtx set, unsigned int alignment)\n   rtx dest = SET_DEST (set);\n \n   if (MEM_P (dest))\n-    return GET_MODE_ALIGNMENT (GET_MODE (dest)) > alignment;\n+    return MEM_ALIGN (dest) > alignment;\n \n   const_rtx src = SET_SRC (set);\n \n@@ -8799,7 +8799,7 @@ ix86_need_alignment_p_1 (rtx set, unsigned int alignment)\n       auto op = *iter;\n \n       if (MEM_P (op))\n-\treturn GET_MODE_ALIGNMENT (GET_MODE (op)) > alignment;\n+\treturn MEM_ALIGN (op) > alignment;\n     }\n \n   return false;\n@@ -8890,6 +8890,9 @@ ix86_find_max_used_stack_alignment (unsigned int &stack_alignment,\n       bitmap_set_bit (worklist, HARD_FRAME_POINTER_REGNUM);\n     }\n \n+  /* Registers on HARD_STACK_SLOT_ACCESS always access stack.  */\n+  HARD_REG_SET hard_stack_slot_access = stack_slot_access;\n+\n   calculate_dominance_info (CDI_DOMINATORS);\n \n   unsigned int regno;\n@@ -8926,10 +8929,12 @@ ix86_find_max_used_stack_alignment (unsigned int &stack_alignment,\n \t  /* Call ix86_access_stack_p only if INSN needs alignment >\n \t     STACK_ALIGNMENT.  */\n \t  if (ix86_need_alignment_p (insn, stack_alignment)\n-\t      && ix86_access_stack_p (regno, BLOCK_FOR_INSN (insn),\n-\t\t\t\t      set_up_by_prologue, prologue_used,\n-\t\t\t\t      reg_dominate_bbs_known,\n-\t\t\t\t      reg_dominate_bbs))\n+\t      && (TEST_HARD_REG_BIT (hard_stack_slot_access, regno)\n+\t\t  || ix86_access_stack_p (regno, BLOCK_FOR_INSN (insn),\n+\t\t\t\t\t  set_up_by_prologue,\n+\t\t\t\t\t  prologue_used,\n+\t\t\t\t\t  reg_dominate_bbs_known,\n+\t\t\t\t\t  reg_dominate_bbs)))\n \t    {\n \t      /* Update stack alignment if REGNO is used for stack\n \t\t access.  */\ndiff --git a/gcc/testsuite/gcc.target/i386/pr124759.c b/gcc/testsuite/gcc.target/i386/pr124759.c\nnew file mode 100644\nindex 00000000000..b5a86b7b9be\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/i386/pr124759.c\n@@ -0,0 +1,29 @@\n+/* { dg-do run { target avx_runtime } } */\n+/* { dg-options \"-fhardened -O3 -mavx\" } */\n+\n+struct a {\n+  unsigned long long b;\n+  unsigned long long c;\n+  int d;\n+  char e;\n+  int f;\n+} g;\n+int h = 1, i, j;\n+long long k, l, n;\n+int m[1]={};\n+short o;\n+static inline short p(short q, short r) { return q + r; }\n+int main() {\n+  for (; h < 3; h = p(h, 1))\n+    if (h) {\n+      k |= 4;\n+      struct a s = {8, 2, 2, 4, 15};\n+      for (int n = 0; n != 54; n++)\n+        if (m[l])\n+          if (i)\n+            o = 0;\n+      g = s;\n+      j &= 4073709551610LL;\n+    }\n+  return 0;\n+}\n-- \n2.53.0\n\n",
    "prefixes": []
}