From patchwork Mon Sep 19 15:35:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 38051 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1315302pzh; Mon, 19 Sep 2022 08:36:09 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6HfonCjd/afB6fpKBvXY11WuMY0vygWDJo+//pol9an3gkET19UF4LyW+K3DXlrqLnaNTi X-Received: by 2002:a05:6402:84c:b0:451:a99b:f74a with SMTP id b12-20020a056402084c00b00451a99bf74amr16447874edz.100.1663601769693; Mon, 19 Sep 2022 08:36:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663601769; cv=none; d=google.com; s=arc-20160816; b=rqATOA6XtHneFzTxrE/5obwHstR/jFehjLSUbxkTOSTTGOUwKo6yhFRJwvIz98cVcv I/v+5EFcCHqgiH0PRRAveSAcJ98zCmMnVxmoShThqUTg/gbPHueGd4esWsQCmacqKYsX sTYlpu1V8avKIcvhcJ94ykXpe/NiGsP+VT7ut+uNyhG7KDOVqL5lEAtHdCnukyAd3emU vrek8bzkfAeJclXgd0jOiGCHCDubbVHekfC9JqPuRMQkS33X/qWho5qTZyUk62PFs0PZ QekVx8GCktG5OuuoOHcJG5/JEi0uwyU/Q9ilR1bmwvINkxTFx+MLJuikyuTO90XxTksB IEaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=yWp98LNnY0QeRv10ToJh5m7fu3be+sFIYw82v+5LSCQ=; b=PriFId1wiD4MQKibWwjKk4smWbv/rRal/2VDVnIWcVCB6S5lKZpJPx0JxjcXmvnDtP mI7EomcgSZ3B8DuQ672CLETttxMaJxVWt3Oy0HZR8o4b5ibEeXmvgmr2ir3Kwau1Lovz IiMxpkr97DJmbUQEyAdjvI7Opwksd0z5aI3XZOy0lzvVNBJztiM/oqWNKxh5UOXzXF5y TZ+uZvjGJO+mWDnOvIjEIsDyPM63cpU13kkWY0VCxAMlfP7CCcjvRMIPDcSALtIyRqXO KZ21R/BF7URGYTmdnCka0rPoj3czRzfJQlVMqA/W7QZZXsCci/uP7AUsMnYNIq2Dubcy lyZg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n10-20020a05640205ca00b00450eaf29e9asi11747483edx.606.2022.09.19.08.36.09; Mon, 19 Sep 2022 08:36:09 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 25F5968BCAF; Mon, 19 Sep 2022 18:35:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 20A8268BB04 for ; Mon, 19 Sep 2022 18:35:52 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 6ABFBC0088 for ; Mon, 19 Sep 2022 18:35:51 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Sep 2022 18:35:50 +0300 Message-Id: <20220919153551.11377-1-remi@remlab.net> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCHv2 1/2] lavc/vorbisdec: use ptrdiff_t to iterate over intptr_t X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hBltjYUuul3r From: Rémi Denis-Courmont While this probably never overflows, we are better safe than sorry. The callback prototype should probably also use ptrdiff_t or size_t, but I diggress (this would affect the DSP callback prototype). --- libavcodec/vorbisdec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index 38a5367be3..bfc4be6fc6 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1581,8 +1581,7 @@ static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize) { - int i; - for (i = 0; i < blocksize; i++) { + for (ptrdiff_t i = 0; i < blocksize; i++) { if (mag[i] > 0.0) { if (ang[i] > 0.0) { ang[i] = mag[i] - ang[i]; From patchwork Mon Sep 19 15:35:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 38050 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1315216pzh; Mon, 19 Sep 2022 08:36:02 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4RgGZuyz7alEYCJJZvgp2rS48gfcGyRUr65i9kScQ41Zs8KZo4v28GVX6so/nABGSxRtDM X-Received: by 2002:a17:906:fe0a:b0:76f:e373:d84b with SMTP id wy10-20020a170906fe0a00b0076fe373d84bmr13152902ejb.297.1663601761847; Mon, 19 Sep 2022 08:36:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663601761; cv=none; d=google.com; s=arc-20160816; b=q+zl4MBOgY6fhX5KHT0enjQfadSgcOPpjR2vQFGpy8sCH2RF+3WwTfdt18ACS2YvK8 z+ueTq3F7PlEn0s+PeLTkMzOeh7ku1kK/iu9A/OlLGIC7u0YamgEV/onU0O0jN9OfW3B vJEEtwzoc98NexZaZeW/ASx+ABCSDv3EbmEpdzZfjJunQ/oasZ2MJryI3382EIi8tB/4 QLubhKm28AvHyqPFJKe8hqz6b7ss3Gk9/nLNjbcgag0ycqxo2vFCdh2URa9zINM6kGpQ cgy6MpRE4BJ20Gn0gkJ/OwbcuDiNW1oMNf5Unme2MBhcJ2mk13gZbQ30RI3+otYv3dHn mzxg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=tXhlXy93O3O/miLIDByzGG46B1LWbe4kqfMFknvQrwI=; b=iNqDg1FWKxdpN5VoCmoamIM9sbYeRgPjgKEf077aaGMPOPGaVSq2lUBHcFY+YdiFb4 tvPsA9rNTcMtxm9gMAlXEP6tMn/gtgE9PFPvzpX2qzCP4Z6R7BzLhg8hD3wACr0772z2 Z7PnUhlBsLTwh5FV1DAByQNWja2UTOlBoEprwvU0XIf8yU/vsyaHuGTVku5nUjGPjp/z Gr8r24dkJRCQq/oBnu7/Md72yxyJCLIztqw1Sp4OoyNm8is8h+v73D7XIziBJ4Q2mGgA yGPGB8LvORoRBL0qocOzc094dh+fq196zq9MnL+SwRJmZoOEKcxbLc5tVKmXnTstDja3 WuTA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cb3-20020a0564020b6300b0043e5ca9a0e2si8475888edb.628.2022.09.19.08.36.01; Mon, 19 Sep 2022 08:36:01 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4482868BCA4; Mon, 19 Sep 2022 18:35:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2376968BC97 for ; Mon, 19 Sep 2022 18:35:52 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 97AB9C0098 for ; Mon, 19 Sep 2022 18:35:51 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Mon, 19 Sep 2022 18:35:51 +0300 Message-Id: <20220919153551.11377-2-remi@remlab.net> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCHv2 2/2] lavc/vorbisdec: use intermediate variables X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: FGtsMhv5ECaB From: Rémi Denis-Courmont The compiler cannot infer that the two float vectors do not alias, causing unnecessary extra loads and serialisation. This patch caches the two input values in local variables so that compiler can optimise individual loop iterations. --- libavcodec/vorbisdec.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index bfc4be6fc6..e59d6e40f0 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1581,22 +1581,22 @@ static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize) { - for (ptrdiff_t i = 0; i < blocksize; i++) { - if (mag[i] > 0.0) { - if (ang[i] > 0.0) { - ang[i] = mag[i] - ang[i]; + for (ptrdiff_t i = 0; i < blocksize; i++) { + float angi = ang[i], magi = mag[i]; + + if (magi > 0.f) { + if (angi > 0.f) { + ang[i] = magi - angi; } else { - float temp = ang[i]; - ang[i] = mag[i]; - mag[i] += temp; + ang[i] = magi; + mag[i] = magi + angi; } } else { - if (ang[i] > 0.0) { - ang[i] += mag[i]; + if (angi > 0.f) { + ang[i] = magi + angi; } else { - float temp = ang[i]; - ang[i] = mag[i]; - mag[i] -= temp; + ang[i] = magi; + mag[i] = magi - angi; } } }