Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s9iGQ-004WBN-9a for pgsql-general@arkaria.postgresql.org; Wed, 22 May 2024 09:28:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1s9iGP-00FGUx-Tl for pgsql-general@arkaria.postgresql.org; Wed, 22 May 2024 09:28:01 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s9iGP-00FGUa-03 for pgsql-general@lists.postgresql.org; Wed, 22 May 2024 09:28:01 +0000 Received: from mail-os0jpn01olkn2037.outbound.protection.outlook.com ([40.92.98.37] helo=JPN01-OS0-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s9iGI-001Qed-N5 for pgsql-general@postgresql.org; Wed, 22 May 2024 09:27:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hwaD5710hTocUCxz08rgVmY51yq7aO9fE1vI1uokgCRQ9dFHxpOMsF963bYCMvnyisltpDf+SQKJkNiww7cYrP/zHl8GmZ6HoKaMiEqS+hkAx+A3aTBYwQy4h372ACYqoEqMtokWwDiVNURaQ4U82flJWe9KnyfdwgCwT8Juzr/lsNSvFbVD1/Mrwo+4Jl2sChNgHUQ0weDKuNxGABSNhjSNfPNGjf3t8z2rFuP20cSCPULELpaeDBXfJDtleuac0G8lpGWb0TzIyenDMV4n/EeCtF9jQ6hNfVWBZrQnugWwvcqLTvTbGFHBgZdVFdrQKQWWmJiggkLO4an2X6be2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=M9LsSCv5eRmqp/YYwji+s9wp0CQUrq6y4u8QK1IXrt8=; b=FxmGZqSWriDqO3KfecmulvQwSR3QXc33gkPhNFj/86gorASkrvxHRp2ibm4ieBBmux36FUjMfnZwI+MmZC5v3FBEP+R5qlyWXQVWDq/5aA4IKoB2KZEM5F1G1+Mx/x8Bg4NeqBDRI9rZzXCrfOegC2A4fxjzNmfdnezV8oPLp0mrffR3v21WQKuxX52kLBgJXQvDmuXU1APxUwjWnkgoiwk9Lq11uZM9dfyhZk4bYKOWHyZEFu227Bro/Wr+di/2BcjUPfkrZOZFfbelTF3vpyvO83JjD/pdgZ8+E9I7bzTpD+QVvrW3XLXDyqEmDCUcn+eOcQPhthU4Fg86fN0kLg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=M9LsSCv5eRmqp/YYwji+s9wp0CQUrq6y4u8QK1IXrt8=; b=cS/Hr5mDtqqskOhze4JzRUd5tmzEWvfVJErd+B/BCvaGbRflRXFgRNZUN0Z7JoIKySBZ6ibRFEu0BaWOkr021XDctJhjO6tjHTd996qr5561tr99dmrRl4pdkh5A/l46JdOVlXRpM6NY6v3ltPoe2JvW0YqJruS8Vqt4O/v7f8P7oMYbHtMYjub77CirGNztaox0Gd04LyGrhBqnczOuG4z/gqmieoEApTn6LDpaU+5XBNmwohFPUGEJigGwtEWj5eBO4SPi+UdiocpluCS9HkKyACDkmcfsRNe7+jOyfkcQW9moi2smfK6ZWnTs7lJqntD2Qo8PkguOtZaR9dkBSw== Received: from OS0P286MB0163.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:a9::15) by TYCP286MB3819.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:448::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.36; Wed, 22 May 2024 09:27:49 +0000 Received: from OS0P286MB0163.JPNP286.PROD.OUTLOOK.COM ([fe80::be4b:2fd9:5414:c8bf]) by OS0P286MB0163.JPNP286.PROD.OUTLOOK.COM ([fe80::be4b:2fd9:5414:c8bf%3]) with mapi id 15.20.7611.016; Wed, 22 May 2024 09:27:49 +0000 Content-Type: multipart/alternative; boundary="------------w8mXMYuDd0s7lf0LOO6aA0md" Message-ID: Date: Wed, 22 May 2024 17:27:44 +0800 User-Agent: Mozilla Thunderbird Content-Language: en-US To: pgsql-general@postgresql.org From: XChy Subject: Missed compiler optimization issue in function select_rtable_names_for_explain X-TMN: [cbtFD8VI/MAs1ih0u8ufHTwkLx/HIPPk] X-ClientProxiedBy: SI2PR01CA0050.apcprd01.prod.exchangelabs.com (2603:1096:4:193::21) To OS0P286MB0163.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:a9::15) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OS0P286MB0163:EE_|TYCP286MB3819:EE_ X-MS-Office365-Filtering-Correlation-Id: 9557a589-ac99-4151-a2a1-08dc7a417254 X-Microsoft-Antispam: BCL:0;ARA:14566002|9400799015|461199019|440099019|3412199016|1602099003; X-Microsoft-Antispam-Message-Info: /M4/6MHEJ89BJBeOtLF9DETkc4YXG3UYo7pwDh0yHCnZl3olQX3l7RJql9MG8pxY3IoPNR5Xu1aRmHZF3+f2FOPP6u87EZe4Iihb9YIwq9meE0DTaR78oBHJbtc6PL5ZR9RnzgiEWyKzWOEAwhEtXoM7RyFuwFQvdPNL+1ql2KIf3CZvmIo9QY1Fa8rQgHX5+0EYCWn64d6it48CkfMXPBoAeaDCeiPri4KyhxvWflFRKeUty84gzDuo6SWK0i3JCPkDfXNj4rOFaa2j9ZCfpOEZ2DMlT7887VIrQO47HsEX7S6CRIORqN8/XR3l9cOWjvrImLH7G2Num6JtlTgE4U7JrBODa0a1kvnSnID5Vr68U3r1F0wThcjaNYuzNt95IUtz7YBHGj9YbAsJznrI3cIjNdL+KWU2zMth1YRk24b/QsL1XTn0D/pPd4EwFA+b/4Mkh87XpgMnI0cfRBt+hamY33MUaYL/jh1oeBudaFsX8h2NVEngdiq6HaWQmTMt+AhADW2epEzzHvh5ujR4d6HZ1f3qmKo5o5k3oAhP68lC2G/suygdxVvH30ilBXYmXr/m7RK1K3IF2V3MwtJKIYmDm/UfV6Z3dQMKYMriLGTJ4qIhP+CP2CKIJ9kg7JBY8Mekvf08jJK35YUbIz0Z5zBOROwvDMtjlyAiHjC5Y10U6NkSZVHl877cRUk93T+OEVz7nks/bs+CY0JC7UdeQg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VmVxMElNMW9wdWNoMFhrVGlUMFZyVW9xRFVGZEg0WkhYYjYveEhaUi9PLzZU?= =?utf-8?B?a2MxVzhDMTJXUU1uUkdNVUVSWmowS0xUQjNkaldnSGVMTzZRWUJTdi8yVUps?= =?utf-8?B?aW9nWVhuaHQxa2U2cUVxeUxuNTFrZUpIbHpmSXpTa0tDRXR3VGpJaEhWaUx3?= =?utf-8?B?RTRMWlV2WGp1bjRDb3ZnWWRUL1JkcHNtRFUwTThJMGhSQW5BZ3VrWWplSmZC?= =?utf-8?B?UmtNMnZhckNoazFEZnV4VlpIbHltSUo4eGFmS0ZacjlvaXZ3MTZraXFkd0hD?= =?utf-8?B?V01pRSsvQnRUUkJQdmhOdXYvSER6MEFOQVc1K0FXQXRxTVVjeXBWYkJocTFy?= =?utf-8?B?SDhDTUdJQnBRRnQ2Ky9uc1dFRWd6MWdOSnpsQUJyZmgrcnUyY250Q0N0dzd3?= =?utf-8?B?Z0NEeWFXR0RBWUVmUTNEVUxwOFFKcXJENUppQTM0cjNKelkwdWk2OHlHbzl4?= =?utf-8?B?Y0N4RWR2V0xZVTc3aWlEUitiaDVrZ1dadzBRSk1uSnY5TWRQbWlPVVRkLzlQ?= =?utf-8?B?RHFsVVlJcUNBRzJIb1NtckJyOUFYMGl0blk1QlFRMjFUek9MeU9zbmxVRklh?= =?utf-8?B?L3gzdmlSUUtKUHF0ZlEvczVSWnEydTNCWlB4V2tlN2gvNHFxS1d3dHJoVzcw?= =?utf-8?B?Ykl6MzFCM0pXOFFoc2JMcnVWYU4yZDJ3L0ErNkE3Tk9aUzhQc1hRZ2NrTnhH?= =?utf-8?B?dDkyR3BqOCtyMTJiajFCckt6WjRqSHl6UlhFSVBvdy9WRUUrWW5USytPQmpx?= =?utf-8?B?TDViUWJwc2dnV3dhc1FkODFsV3BZc0g3bFNQK093dW52a0M1OW0xVDRIQ2Jt?= =?utf-8?B?Rk92SUFUVXJEN0JyanBOOHd5Q3V2UFk4QVRKNThhWUVHWTM1VXdnaXBrVm9C?= =?utf-8?B?bWJHT25zRWVvKzdENm9FdWhyQ00zMElUbFEya0pjSFR2Wi81eUE0SWxTSDRW?= =?utf-8?B?K1hDM09Scmp2czJETTIyME9UTUlCeHB6UkRWSk1BS0VYYWpENm9BYnJlNytn?= =?utf-8?B?VGRPS2liWkhlQVVwcUpWTGJNRi8zZ3oxTk9ZOWMwOXFrMkxIejVpZkpXZEls?= =?utf-8?B?c29qeTRYblM2aGgwaUJIWTBmOHFlMzVFUVMxMXNtbVR4ZEpJK1BoaGpwTXpE?= =?utf-8?B?UVhIMlE1ZWQ0WW5sdy9ESGxKMkVKQmN1Q3YwT3RURmx1WVFPN3BWVXlVMEVl?= =?utf-8?B?WXpiQUxPVHRxdmRuSjExWjhNTjJKTVZFVVVQZHdVQ3ZNd0lWNFJRU1pJNlZC?= =?utf-8?B?c2tUQ1lDQktWd1NYWEZmT0pFY1dQcGUzdkY1MFB2a2lwTC9rRDF5TTZRRVdN?= =?utf-8?B?TUJaUENsNUxVRyt2VFhkTVVOWUZ4Mzh0YnpTdjhncHNCcXJmbGVTeXpTYXlM?= =?utf-8?B?eDJ5WE9PSVdkdDVJUitiYkJydlNDNlZOeFhtdXo0T1BiRWk0a3J2NCthdVht?= =?utf-8?B?QmJSNHFGRUZlc0RGaFJESGJnRkMyNHVkWTBVL1pXUVcyMWM5dUZ1cFptU3Rp?= =?utf-8?B?MW45dHNpNjlzYUc0czdaZkQwd3FxOVdLYk90bnVPLzNoZXZ2YUU5bTlUTlA1?= =?utf-8?B?ampoOGlwZE0wQnUyRDI5SmZDWXVzQzY4L3BnaldkRmJNVFcwNy9LY3hEaGEv?= =?utf-8?Q?kLkkU3dgeG+br0xKDZDhG4+Z/QRCHWGdsWmObyyT6T0w=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9557a589-ac99-4151-a2a1-08dc7a417254 X-MS-Exchange-CrossTenant-AuthSource: OS0P286MB0163.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2024 09:27:49.4314 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYCP286MB3819 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --------------w8mXMYuDd0s7lf0LOO6aA0md Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi everyone, I'm a compiler developer working on detecting missed optimization in real-world applications. Recently, we found that LLVM missed a dead store elimination optimization in the PostgreSQL code (https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/ruleutils.c#L3794) in the master branch. For the example below: ``` int dst[128]; memset(dst, 0, 128); *unrelated = some_value; dst[1] = 0; dst[2] = 0; ``` LLVM cannot eliminate the useless stores after memset since the store to "unrelated" clobbers. But if we put the stores to "dst" ahead of the store to "unrelated", we could prevent confusing the compiler. See also the compiler explorer link: https://godbolt.org/z/P9jnKod3v and the issue of LLVM: https://github.com/llvm/llvm-project/issues/88632 To improve the codegen quality, I think it's also possible to modify the source code, changing the order of initialization of the member, to get better optimization. But I don't know whether this can be considered as a bug, thus post the issue here. If anyone could confirm this problem or post a patch for it, let me know please. Thanks! Best regards. Hongyu. --------------w8mXMYuDd0s7lf0LOO6aA0md Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit

Hi everyone,

I'm a compiler developer working on detecting missed optimization in real-world applications. Recently, we found that LLVM missed a dead store elimination optimization in the PostgreSQL code (https://github.com/postgres/postgres/blob/master/src/backend/utils/adt/ruleutils.c#L3794) in the master branch.

For the example below:

```

int dst[128];

memset(dst, 0, 128);

*unrelated = some_value;

dst[1] = 0;

dst[2] = 0;

```

LLVM cannot eliminate the useless stores after memset since the store to "unrelated" clobbers. But if we put the stores to "dst" ahead of the store to "unrelated", we could prevent confusing the compiler. See also the compiler explorer link: https://godbolt.org/z/P9jnKod3v and the issue of LLVM: https://github.com/llvm/llvm-project/issues/88632

To improve the codegen quality, I think it's also possible to modify the source code, changing the order of initialization of the member, to get better optimization. But I don't know whether this can be considered as a bug, thus post the issue here.

If anyone could confirm this problem or post a patch for it, let me know please. Thanks!


Best regards. Hongyu.

--------------w8mXMYuDd0s7lf0LOO6aA0md--