From patchwork Sat Sep 17 09:59:35 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: 37976 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp125225pzh; Sat, 17 Sep 2022 03:00:00 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7jvM3n7Oxll7/uhgR+2qhlJXKvXvRhEhDfTM2D8lIRhW7kMX2q06NvmH4cQHJMztl2X+hj X-Received: by 2002:a17:907:9804:b0:77f:364f:b797 with SMTP id ji4-20020a170907980400b0077f364fb797mr6252754ejc.88.1663408800237; Sat, 17 Sep 2022 03:00:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663408800; cv=none; d=google.com; s=arc-20160816; b=oBKK4/2FV+qHw2t9jBX6Qw+bOJcp/ZLxsyVh95Scd9hxlHDvSszH77z/WU49L19lcS RfDCiwJzcT4+tKgV/mK9qH0fo090obxDeLJa3kTlM3+c5wcC3+8FCPYCrFCQEJ1FpCcx tYJpgPMB3xaempLWlmyXyWW+FjMEo9fvT4JEgLm3LeD0xx/n9KMKTieKxb9uYo1RJLcU 75BP54xmYQn821rdOwWvHw9Q0Uiv+gzY6WRnKy2CHqH0O+mCEsX82x/cPLyRwshTtGre AYmP8PEwAMa5VtYvoSAq/TioaqKDB9an4aZw+E9QO/MSeBq6lqbgt6cE72VJkHalvrOc hHpg== 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=LejgkwKtObVjpUOV13H5go/Xps4nfGJpZ+S1QdUgqws=; b=EAgB+75msihivlXyPqthGDlwH9yPLhWRfVUvHh8vXu2tz5lVAruwZBDW8FBXwGahG4 02Enqs4HwtBdFGV4Dnbbi0jUphXyufESwtS58GfoMReezy58tbgbwz0hEsLIYY0xsmVX 25QpMyipYOICmDCSBf2+esNMr+GmhhxHHlRD2mrQt0a9G+mFwHufJYBlzXoz1MPcFUX4 Yajkv9kLfuMGRXw4dWSwlGAFNiTnhUXws2nm9mIkbTr1/reBgrhBEJ8V+DlQD4U5KyXZ in3G11ZtgMaUYC5HwtJn2CER+6DHTUb6GjhsKHE2NWFMEERMr3Jrxomnr6bSvP+Bfy2O 9NMA== 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 j9-20020a1709064b4900b007707f83375bsi16391445ejv.945.2022.09.17.02.59.58; Sat, 17 Sep 2022 03:00:00 -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 1FD5168BBD2; Sat, 17 Sep 2022 12:59:46 +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 AE7FB68B9B0 for ; Sat, 17 Sep 2022 12:59:37 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 034D6C0003 for ; Sat, 17 Sep 2022 12:59:36 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Sep 2022 12:59:35 +0300 Message-Id: <20220917095936.39330-1-remi@remlab.net> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 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: 0LOyADcj2LQA 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. --- libavcodec/vorbisdec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index 38a5367be3..9728997370 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1581,7 +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; + ptrdiff_t i; for (i = 0; i < blocksize; i++) { if (mag[i] > 0.0) { if (ang[i] > 0.0) { From patchwork Sat Sep 17 09:59:36 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: 37975 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp125169pzh; Sat, 17 Sep 2022 02:59:49 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5I8I0VIb/Ghfu7p1UiLNwve+Z6zhJso7iVZeGxTgQuLnB7aNZQKfrJPra2AIMkCCV5vmKs X-Received: by 2002:a05:6402:f07:b0:450:bf95:59e9 with SMTP id i7-20020a0564020f0700b00450bf9559e9mr7348453eda.46.1663408789795; Sat, 17 Sep 2022 02:59:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663408789; cv=none; d=google.com; s=arc-20160816; b=tez/QeQDqYfbmzu3zbEO9/yLQsfpCdbYfBQoZiJh/sxDtlbVmV1hTM+kg8G3Svt6Ui I8sOkEW/SpPtpC0p3wTDSASsJYni5OE1Mn2I0iGnuFPwjIuo7vrs0fVDXobkadU00r4I 6hfbJgggLBRSNfHHmyxYG31rqFvOc1JoLQashuUMPKH0NKfVkCUxL2thFpb+ldJZyYsc a+Bu+lcEsbdSf4CVx7g9O2atFbSNonvFXBooja/AB6/j7ue7r7xUz2+Kd6PPE7cfffZr Yt+JAtaDOr50EEjdz11bNUD6dYLJ1fxzrWTuevgBr+Nbd2t0S8P8n+mj7aa8lL55Rsa3 WB/w== 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=EjXFLGuAOKbDWdHIr2R+nW74RUbcH4/jiwctdw7M5F0=; b=Lw2XX468nFM0rlBRbogEAt1qlKPOsmZ9e9ig6wSb8ZNFAFCWDVxkQlamdZOSyn+3rz 3DDnMXic6bjpeymEpKJsHDZ+y6VkjZp62YTo4wW15PBWtzN9K0vlW0TWaOvLSqjjDfyw ru/ZJrFsccVuneFfWKj5PGGWfHznLeT3SlnBTwV4vI+6MWq1Oo5y3KpoGKzH93W8NcMx /Ni2VefM3nUFSwiamiGDEA1ib64QQ+Nm7dWKFU+pG9akSsZ9cy68bSjGHJDUypdt4X6e WZFgWN8DWvJhH6z6HgXnqAJFMqdjT/Q2b8GOKkYhP6oENWRM4u6JqKTD1JkIFwubRPf5 83mQ== 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 v15-20020a056402348f00b0043d9ec0eb4fsi4648220edc.16.2022.09.17.02.59.48; Sat, 17 Sep 2022 02:59:49 -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 EF71568BB9B; Sat, 17 Sep 2022 12:59:44 +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 AC1AE68B9A6 for ; Sat, 17 Sep 2022 12:59:37 +0300 (EEST) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 3152EC0029 for ; Sat, 17 Sep 2022 12:59:37 +0300 (EEST) From: remi@remlab.net To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Sep 2022 12:59:36 +0300 Message-Id: <20220917095936.39330-2-remi@remlab.net> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 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: 4/C51b694ZMh 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 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/libavcodec/vorbisdec.c b/libavcodec/vorbisdec.c index 9728997370..74e71936ab 100644 --- a/libavcodec/vorbisdec.c +++ b/libavcodec/vorbisdec.c @@ -1583,21 +1583,21 @@ void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize) { ptrdiff_t i; for (i = 0; i < blocksize; i++) { - if (mag[i] > 0.0) { - if (ang[i] > 0.0) { - ang[i] = mag[i] - ang[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; } } }