From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from IND01-MA1-obe.outbound.protection.outlook.com (mail-ma1ind01olkn0186.outbound.protection.outlook.com [104.47.100.186]) by sourceware.org (Postfix) with ESMTPS id 0C4783858C3A for ; Sun, 23 Jan 2022 12:24:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0C4783858C3A ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SelfPRFYELBhzYRnRQlNmxTLVDe5GJtEdQLtAeW/EalFeofalMDy6EtPwz2pfrunTHkszLOORBLSZBHWxlj12xyns/baBao0BJiHCHH3MEf1+U1iM9bKDaYB0qMvaiKQ9lXCDrUPjLuAVYQiEMi6L8X+ISAShTBi7H9F/y7KPlTkgZgQYbwvWA64cHxqJIvWVuxTWT8yaWrK/GoIgtbCGVahSEXkaLD6/Jk6AaO0RS4Q25FtqtG0H810C0Jye1EXX/ihNUwY6z3+qztUeGE5J3gLhNu5epQiB7C/fTH12ayJgDXK1Wf8VUdX509rd62zKDbc7baXoeOYeUi8hLGiWw== 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=BzhYPusrrlYWbt4jaWWXbB43BqhsRBIO95MdcdoxJo0=; b=QZX18t0Nq1hak2Ec2u5CXIISzBEq9OagZB8uxEUaT3gvMIt23apgicGJ/NaQz6e/fRsRusr3+MNNYTczVTstM1nqwJl4Q3BQdhzhaaLNLR9WeIb5iCMsu28KeKRbj6BWAY85vvIAuraTqkB2m17Rg50zfA1omkTf1eB85+Ancduao81u6ucaIZ0sWSUYxuOnknO5rV6NGEZazihkOUaltrJQdrnksaSvoGtJf0Hb2RPWASgX09/hHUhPuMCnsdQ7EVPLxcZLXqkInKOcQQi5Nuc+ezwYp3UsX7PAy8BCbRdk5XqtV9W8tLcmatQRfHURr2uwNWncD7/5+ClunE5f1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from MA1PR0101MB1559.INDPRD01.PROD.OUTLOOK.COM (2603:1096:a00:2d::13) by BM1PR0101MB1361.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:25::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Sun, 23 Jan 2022 12:24:27 +0000 Received: from MA1PR0101MB1559.INDPRD01.PROD.OUTLOOK.COM ([fe80::10ef:c976:293:fbb7]) by MA1PR0101MB1559.INDPRD01.PROD.OUTLOOK.COM ([fe80::10ef:c976:293:fbb7%10]) with mapi id 15.20.4909.017; Sun, 23 Jan 2022 12:24:27 +0000 From: Vishal Subramanyam To: "gcc-help@gcc.gnu.org" Subject: Re: Pure/const function not getting executed as the first operand to logical OR ( || ) (C++) Thread-Topic: Pure/const function not getting executed as the first operand to logical OR ( || ) (C++) Thread-Index: AQHYEDFsnpbDIN0L3Em2YYRQSo5zuqxwUjGAgAALf7WAAAKqAIAACm3JgAAMugCAAAl/Ow== Date: Sun, 23 Jan 2022 12:24:27 +0000 Message-ID: References: <7107aa063c391c0c3dd9e1b9641f7e5a5df9aa31.camel@mengyan1223.wang> <4f40d38e-dc36-ada8-d116-4020b5c84cfc@hippo.saclay.inria.fr> In-Reply-To: <4f40d38e-dc36-ada8-d116-4020b5c84cfc@hippo.saclay.inria.fr> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 0b75b3df-55b0-8c4d-0402-43020d422e94 x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [I/IylTk8D8yQCAvit9RBfJX+cUh5mfzq] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a8b543bf-7763-4f23-6c08-08d9de6b4c71 x-ms-traffictypediagnostic: BM1PR0101MB1361:EE_ x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: BAoYzcAlQI01mUqPIYzSwyH5hkck+URv4AppTbUmJPVBlWxtpxZ+ghOhNmATW0Miods1aETQuHXDxolq91sxtbmTbgO7GdtbGk+A8i4rLs86KeQVki3q8VQFoaQU1lMuYOuUVhj2V0Qh2VFrIQTEvRg2AiVx5I0KO9zPzd3gW0pJW0XHfjTzV+ghsjdxOdOxfAmH00Cy6y4/pxw1a8iZ5QscOYD/eDBifet2MJ3IZUDinL/u2GOruAwNTpn7zg/EWuJfZ2PcdSBjybVH2y4W74Dd66lo0so/NxuXCNBeBq/km1QWCSeObZWj2iOcN+yHSsRp6nwRLWrtbHeTHdiQaKiw23mjv+BzPDSEMupABndJI2ZMtXfpP9F9zi7msfN5kWpICzw1MsS+B10SvOPD4vLq03ynuuNee+HRqlaQ42q+31N0lOXFCKp3TS3bBpfcfaniQRg8Nw9ICloZJiYfEVyWgCixyrD1HNaHiPNlar0VVu8Lsby1Jf65ZyiqKuaEAE/nknaYnA8wjn2Uds6S44qfxszzW0TEJ4wyEFNeh6aTPMPGbGPri1uIEXv8UXDHKSbwZjG4fEhjP7LA2h9Nkw== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: ozUjXhFJ3GO++0XAKNtzWff+L+th/+6gHDZqKCLoRcp4yolowLP62lf13k6WInVE00o3FALJ8dOkJf3kDwYMFu1bLQScd8pwQ1DCAmHLsNR1FXd7rIk/EVaKrxZfiAMsdn8OIumcyKJk0r9inA70kQ29aRN3Wf8ao63q21IvLnRfo3lVDEMnRP5lZq82TiS8pThplWWg03/0Zlw5z2jQ7cupjH1WDV7eYygCkjgVpSiSvDpcacPvZ3SIp0QX6J7gTDblBxcvhhrSHSq7FVEbCv36oHmowUckRrItzj927yFURftrWN9iaPOlKuQIOkfH396eb6GloMiRhY17m1HfveYw+4DQ3qx7rPHRU8vWNUJP2KrxPGXx7boKq9unsdU1DyqGA1kb3Pa2gjRc9Px01+dMQ34gVsnAaK/Q4QpNhSbV9CyAopBhrVCnpg4/iyCJsxUKcmIl/OaDsfDQjs9Wcj+BsbW3Zbi33olw7t1mdJ1VbAsav8zayNGMSZsqup8nCeLotI3UhZeyq909w1QLScWdW2/wignoSVEJ4vMsUEKhI+OP9lWCUQ7Dpg6d8Cm83WJ/GKRxYEkGrPjEBQZOSX7StpFx4XxwB0Nn6+yuKl54qkHB7wbLVhMDmXOHjJ1JOZ6cW6Hk2+NLC6BRhcwrFfWcfyxwZJ22NtTjopfHQn6CDd3o/JxUdrHSBeVGYzzzMkuHm8Isvp6qL7YX6CdDTYe6+0wbgqIBZADUPAlJ/DPGlRPDTn6l4u887jd/1S/ngz2IolxpOSaN7Uc0j0v7Xmf+TAhDzw7FsYUXDS7XQghhnK5ka+gTX9mKZR7tsmYBouOAoREGyqgeu7paLVrznTmt1TYoANrreJEARZTeGXUmgaXN/UyH9o2jYR6y6dOJY8Dm1jwW1oswZj6RJmtm3qSCVJSYOsd9SSk3CynZQ2M5L41iymookQ6cKQzo+orJ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MA1PR0101MB1559.INDPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: a8b543bf-7763-4f23-6c08-08d9de6b4c71 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2022 12:24:27.4067 (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: BM1PR0101MB1361 X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Jan 2022 12:24:37 -0000 One last question. Since labelling the variables as volatile has the effect= of turning off optimizations related to them,=0A= I tried using __attribute__((const)) on the function to ensure IPA, but the= function call still happened. Why couldn't the compiler=0A= optimize these calls away since anyway the function doesn't cause any exter= nal effect?=0A= ________________________________________=0A= From: Marc Glisse =0A= Sent: Sunday, January 23, 2022 11:25 AM=0A= To: Vishal Subramanyam=0A= Cc: gcc-help@gcc.gnu.org=0A= Subject: Re: Pure/const function not getting executed as the first operand = to logical OR ( || ) (C++)=0A= =0A= On Sun, 23 Jan 2022, Vishal Subramanyam via Gcc-help wrote:=0A= =0A= > is there a specific name for the type of optimization where the compiler = simply decides to drop the return value.=0A= =0A= Gcc handles this as part of dead code elimination (among others). A=0A= simpler example would be=0A= =0A= int main(){ 1/0; }=0A= =0A= which does not crash either.=0A= =0A= If you want to make your function func opaque to the optimizers, you may=0A= be interested in __attribute__((noipa)). Using volatile would also avoid=0A= some optimizations.=0A= =0A= --=0A= Marc Glisse=0A=