Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp901699ybl; Wed, 28 Aug 2019 07:00:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqx3aco3WRjZ39dIxUIfWIssrrXA/k4osILEERlrzaEQ+kvu+9zJAiXNrfk1/y+wChJasnU8 X-Received: by 2002:a17:90a:ad94:: with SMTP id s20mr4532881pjq.42.1567000845628; Wed, 28 Aug 2019 07:00:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567000845; cv=none; d=google.com; s=arc-20160816; b=lc5yjvjuz6fIeIR3/7UwZXxX14ycV+sL+8VnBO3tFKP+sdUqmB59kyqBPziNQbYBAY yKrYLDdzdOouhZWOgcEVk+HXqV9zsBpkQXznsxkwbm5Wivq+6T9e1VAnd4uiKFDu4bqr 0/3ier1gyVuslAspCWw8DSCrMX+t0hSfaF93YS+TOLrnew3OSoLl4sfq1ggHkQvHHTOV +seVc2iib8IRqhPbbdOmhfpzfM1kBzVwAODzyljJpTHCW2mI+kKjVdtSCBDP4BACWZ75 c/GlpbiFD7Kco5kxnO531hz6BkYy+jzbLMeNws8eiQn3YVot5XVBgkT0cIIVPTQF9/xs +0yg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:autocrypt:openpgp:references:reply-to:cc:to:from:subject; bh=he4TtrW27YD6pDJB/52RJvnJBDA9kNVv7Q0Mqgq6gxg=; b=qOU2j/UvggTg0lyc7gcQ1yVPDte4FbZEjgwjice3V3ZleSEwbi884dpHH8sBNEz1ly iSSkk71I7Zv0yCwSH3ARCY2paXS3cTxnyl+UHn10WHu5tUZBxvgXF5MkQ01y5mxfBuZh tO3DuVV7cAdP+LN/5p595G7iOj+ulfFAxdXAeaf/LHDNZoJoKhuCSm7TBqsSKWQlMf8H hflumLba10CHiX9yzv4HfIDyIAj5YHU1N2nlajZAEjPxAggD6Jxjdp7FntHKDersTR9v wsFW5D4GS3EkNsnbNyWj0WlbBliSred41dFUgnoFHurF3dZHICEOV7MRBCok9R/M41Au +elQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j19si1956212pll.145.2019.08.28.07.00.29; Wed, 28 Aug 2019 07:00:45 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727222AbfH1N67 (ORCPT + 99 others); Wed, 28 Aug 2019 09:58:59 -0400 Received: from mail-ed1-f50.google.com ([209.85.208.50]:33334 "EHLO mail-ed1-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726603AbfH1N5a (ORCPT ); Wed, 28 Aug 2019 09:57:30 -0400 Received: by mail-ed1-f50.google.com with SMTP id s15so184376edx.0 for ; Wed, 28 Aug 2019 06:57:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:reply-to:references:openpgp :autocrypt:message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=he4TtrW27YD6pDJB/52RJvnJBDA9kNVv7Q0Mqgq6gxg=; b=k6fVS7ypCw64BN3B725r1WbzFcuArf0olTJQkwQCOssnO0VWL9hCy1w8b0mTQ1DypT MDySXqi5MebKLpPQHfJFPEkM2IsumIirIXrYqy75wLmX6PJnGkq0z01hwZ5RcyuR6Iu2 fgJpAJ/yY6QB3NhfPlfBcHUcok/XUa//fEDbcEInoTcidBwpkT9SvJh6GxY2EHNCOOhy OVOB92oU7uKm4XkJnWMlBh547ronYtwkvk96TG1A8PvCbhXTjtsGm9q/2/F3a+HuxKi+ 1iM7H/xwnbGBA6aORCJ7/zDYjusUDq+VHhcGn60rAY+OiSJssmaVPJTKQ8Law1C5roUr NXqQ== X-Gm-Message-State: APjAAAWNzqrfeSvaa0+6EtzuycgqObiolBwPNrwuyR28mF2q+PR934O7 boxvj+YopDX2RE0jkQ3FKwg= X-Received: by 2002:a50:b3cb:: with SMTP id t11mr4154537edd.203.1567000648301; Wed, 28 Aug 2019 06:57:28 -0700 (PDT) Received: from [10.10.2.174] (bran.ispras.ru. [83.149.199.196]) by smtp.gmail.com with ESMTPSA id v15sm403067ejh.15.2019.08.28.06.57.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 28 Aug 2019 06:57:27 -0700 (PDT) Subject: Re: [PATCH] scripts: coccinelle: check for !(un)?likely usage From: Denis Efremov To: Julia Lawall Cc: Joe Perches , cocci@systeme.lip6.fr, linux-kernel@vger.kernel.org, Gilles Muller , Nicolas Palix , Michal Marek , Rasmus Villemoes Reply-To: efremov@linux.com, efremov@linux.com References: <20190825130536.14683-1-efremov@linux.com> <88f6e48e-1230-9488-a973-397f4e6dfbb5@linux.com> <4E9DDF9E-C883-44F0-A3F4-CD49284DB60D@lip6.fr> <496b3d09-47a2-3836-2899-d964267993d3@linux.com> Openpgp: preference=signencrypt Autocrypt: addr=efremov@linux.com; keydata= mQINBFsJUXwBEADDnzbOGE/X5ZdHqpK/kNmR7AY39b/rR+2Wm/VbQHV+jpGk8ZL07iOWnVe1 ZInSp3Ze+scB4ZK+y48z0YDvKUU3L85Nb31UASB2bgWIV+8tmW4kV8a2PosqIc4wp4/Qa2A/ Ip6q+bWurxOOjyJkfzt51p6Th4FTUsuoxINKRMjHrs/0y5oEc7Wt/1qk2ljmnSocg3fMxo8+ y6IxmXt5tYvt+FfBqx/1XwXuOSd0WOku+/jscYmBPwyrLdk/pMSnnld6a2Fp1zxWIKz+4VJm QEIlCTe5SO3h5sozpXeWS916VwwCuf8oov6706yC4MlmAqsQpBdoihQEA7zgh+pk10sCvviX FYM4gIcoMkKRex/NSqmeh3VmvQunEv6P+hNMKnIlZ2eJGQpz/ezwqNtV/przO95FSMOQxvQY 11TbyNxudW4FBx6K3fzKjw5dY2PrAUGfHbpI3wtVUNxSjcE6iaJHWUA+8R6FLnTXyEObRzTS fAjfiqcta+iLPdGGkYtmW1muy/v0juldH9uLfD9OfYODsWia2Ve79RB9cHSgRv4nZcGhQmP2 wFpLqskh+qlibhAAqT3RQLRsGabiTjzUkdzO1gaNlwufwqMXjZNkLYu1KpTNUegx3MNEi2p9 CmmDxWMBSMFofgrcy8PJ0jUnn9vWmtn3gz10FgTgqC7B3UvARQARAQABtCFEZW5pcyBFZnJl bW92IDxlZnJlbW92QGxpbnV4LmNvbT6JAlcEEwEIAEECGwMFCQPCZwAFCwkIBwIGFQoJCAsC BBYCAwECHgECF4AWIQR2VAM2ApQN8ZIP5AO1IpWwM1AwHwUCW3qdrQIZAQAKCRC1IpWwM1Aw HwF5D/sHp+jswevGj304qvG4vNnbZDr1H8VYlsDUt+Eygwdg9eAVSVZ8yr9CAu9xONr4Ilr1 I1vZRCutdGl5sneXr3JBOJRoyH145ExDzQtHDjqJdoRHyI/QTY2l2YPqH/QY1hsLJr/GKuRi oqUJQoHhdvz/NitR4DciKl5HTQPbDYOpVfl46i0CNvDUsWX7GjMwFwLD77E+wfSeOyXpFc2b tlC9sVUKtkug1nAONEnP41BKZwJ/2D6z5bdVeLfykOAmHoqWitCiXgRPUg4Vzc/ysgK+uKQ8 /S1RuUA83KnXp7z2JNJ6FEcivsbTZd7Ix6XZb9CwnuwiKDzNjffv5dmiM+m5RaUmLVVNgVCW wKQYeTVAspfdwJ5j2gICY+UshALCfRVBWlnGH7iZOfmiErnwcDL0hLEDlajvrnzWPM9953i6 fF3+nr7Lol/behhdY8QdLLErckZBzh+tr0RMl5XKNoB/kEQZPUHK25b140NTSeuYGVxAZg3g 4hobxbOGkzOtnA9gZVjEWxteLNuQ6rmxrvrQDTcLTLEjlTQvQ0uVK4ZeDxWxpECaU7T67khA ja2B8VusTTbvxlNYbLpGxYQmMFIUF5WBfc76ipedPYKJ+itCfZGeNWxjOzEld4/v2BTS0o02 0iMx7FeQdG0fSzgoIVUFj6durkgch+N5P1G9oU+H37kCDQRbCVF8ARAA3ITFo8OvvzQJT2cY nPR718Npm+UL6uckm0Jr0IAFdstRZ3ZLW/R9e24nfF3A8Qga3VxJdhdEOzZKBbl1nadZ9kKU nq87te0eBJu+EbcuMv6+njT4CBdwCzJnBZ7ApFpvM8CxIUyFAvaz4EZZxkfEpxaPAivR1Sa2 2x7OMWH/78laB6KsPgwxV7fir45VjQEyJZ5ac5ydG9xndFmb76upD7HhV7fnygwf/uIPOzNZ YVElGVnqTBqisFRWg9w3Bqvqb/W6prJsoh7F0/THzCzp6PwbAnXDedN388RIuHtXJ+wTsPA0 oL0H4jQ+4XuAWvghD/+RXJI5wcsAHx7QkDcbTddrhhGdGcd06qbXe2hNVgdCtaoAgpCEetW8 /a8H+lEBBD4/iD2La39sfE+dt100cKgUP9MukDvOF2fT6GimdQ8TeEd1+RjYyG9SEJpVIxj6 H3CyGjFwtIwodfediU/ygmYfKXJIDmVpVQi598apSoWYT/ltv+NXTALjyNIVvh5cLRz8YxoF sFI2VpZ5PMrr1qo+DB1AbH00b0l2W7HGetSH8gcgpc7q3kCObmDSa3aTGTkawNHzbceEJrL6 mRD6GbjU4GPD06/dTRIhQatKgE4ekv5wnxBK6v9CVKViqpn7vIxiTI9/VtTKndzdnKE6C72+ jTwSYVa1vMxJABtOSg8AEQEAAYkCPAQYAQgAJhYhBHZUAzYClA3xkg/kA7UilbAzUDAfBQJb CVF8AhsMBQkDwmcAAAoJELUilbAzUDAfB8cQALnqSjpnPtFiWGfxPeq4nkfCN8QEAjb0Rg+a 3fy1LiquAn003DyC92qphcGkCLN75YcaGlp33M/HrjrK1cttr7biJelb5FncRSUZqbbm0Ymj U4AKyfNrYaPz7vHJuijRNUZR2mntwiKotgLV95yL0dPyZxvOPPnbjF0cCtHfdKhXIt7Syzjb M8k2fmSF0FM+89/hP11aRrs6+qMHSd/s3N3j0hR2Uxsski8q6x+LxU1aHS0FFkSl0m8SiazA Gd1zy4pXC2HhCHstF24Nu5iVLPRwlxFS/+o3nB1ZWTwu8I6s2ZF5TAgBfEONV5MIYH3fOb5+ r/HYPye7puSmQ2LCXy7X5IIsnAoxSrcFYq9nGfHNcXhm5x6WjYC0Kz8l4lfwWo8PIpZ8x57v gTH1PI5R4WdRQijLxLCW/AaiuoEYuOLAoW481XtZb0GRRe+Tm9z/fCbkEveyPiDK7oZahBM7 QdWEEV8mqJoOZ3xxqMlJrxKM9SDF+auB4zWGz5jGzCDAx/0qMUrVn2+v8i4oEKW6IUdV7axW Nk9a+EF5JSTbfv0JBYeSHK3WRklSYLdsMRhaCKhSbwo8Xgn/m6a92fKd3NnObvRe76iIEMSw 60iagNE6AFFzuF/GvoIHb2oDUIX4z+/D0TBWH9ADNptmuE+LZnlPUAAEzRgUFtlN5LtJP8ph Message-ID: Date: Wed, 28 Aug 2019 16:57:26 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <496b3d09-47a2-3836-2899-d964267993d3@linux.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 8/28/19 3:41 PM, Denis Efremov wrote: > >> >> As a human I am confused. Is !likely(x) equivalent to x or !x? >> >> Julia >> > > As far as I could understand it: > > # define likely(x) __builtin_expect(!!(x), 1) > !likely(x) > !__builtin_expect(!!(x), 1) > !((!!(x)) == 1) > (!!(x)) != 1, since !! could result in 0 or 1 > (!!(x)) == 0 > !(!!(x)) > !!!(x) > !(x) > Thanks Rasmus for the explanation, this should be: !likely(x) !__builtin_expect(!!(x), 1) !(!!(x)) !!!(x) !(x) Denis