From: Junio C Hamano <gitster@pobox.com>
To: Taylor Blau <me@ttaylorr.com>
Cc: Elijah Newren via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org, Elijah Newren <newren@gmail.com>
Subject: Re: [PATCH 2/7] diffcore-rename: remove unnecessary if-clause
Date: Wed, 09 Dec 2020 18:03:39 -0800 [thread overview]
Message-ID: <xmqqtusuxvr8.fsf@gitster.c.googlers.com> (raw)
In-Reply-To: <X9FLaiuWpYely6es@nand.local> (Taylor Blau's message of "Wed, 9 Dec 2020 17:10:50 -0500")
Taylor Blau <me@ttaylorr.com> writes:
> On Sun, Dec 06, 2020 at 02:54:31AM +0000, Elijah Newren via GitGitGadget wrote:
>> From: Elijah Newren <newren@gmail.com>
>>
>> diffcore-rename had two different checks of the form
>>
>> if ((a < limit || b < limit) &&
>> a * b <= limit * limit)
>>
>> Since these are all non-negative integers, this can be simplified to
>>
>> if (a * b <= limit * limit)
>
> Makes sense.
I've always assumed that the original was for correctness (if a and
b are both larger than limit, a*b could end up being smaller than
limit*limit when the result of multiplication of the former wraps
around but not the latter) ...
>> The only advantage of the former would be in avoiding a couple
>> multiplications in the rare case that both a and b are BOTH very large.
>> I see no reason for such an optimization given that this code is not in
>> any kind of loop. Prefer code simplicity here and change to the latter
>> form.
>
> If you were really paranoid, you could perform these checks with
> unsigned_mult_overflows(), but I don't think that it's worth doing so
> here.
... and in no way as an optimization.
So, I dunno.
next prev parent reply other threads:[~2020-12-10 2:04 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-12-06 2:54 [PATCH 0/7] diffcore-rename improvements Elijah Newren via GitGitGadget
2020-12-06 2:54 ` [PATCH 1/7] diffcore-rename: avoid usage of global in too_many_rename_candidates() Elijah Newren via GitGitGadget
2020-12-09 22:06 ` Taylor Blau
2020-12-06 2:54 ` [PATCH 2/7] diffcore-rename: remove unnecessary if-clause Elijah Newren via GitGitGadget
2020-12-09 22:10 ` Taylor Blau
2020-12-10 0:32 ` Elijah Newren
2020-12-10 2:03 ` Junio C Hamano [this message]
2020-12-10 2:17 ` Elijah Newren
2020-12-10 6:56 ` Junio C Hamano
2020-12-06 2:54 ` [PATCH 3/7] diffcore-rename: rename num_create to num_targets Elijah Newren via GitGitGadget
2020-12-10 2:20 ` Junio C Hamano
2020-12-10 2:25 ` Elijah Newren
2020-12-06 2:54 ` [PATCH 4/7] diffcore-rename: change a few comments to use 'add' instead of 'create' Elijah Newren via GitGitGadget
2020-12-10 2:29 ` Junio C Hamano
2020-12-06 2:54 ` [PATCH 5/7] diffcore-rename: reduce jumpiness in progress counters Elijah Newren via GitGitGadget
2020-12-09 22:24 ` Taylor Blau
2020-12-10 2:36 ` Junio C Hamano
2020-12-06 2:54 ` [PATCH 6/7] diffcore-rename: simplify and accelerate register_rename_src() Elijah Newren via GitGitGadget
2020-12-09 22:40 ` Taylor Blau
2020-12-10 0:25 ` Elijah Newren
2020-12-10 0:41 ` Taylor Blau
2020-12-10 2:51 ` Junio C Hamano
2020-12-06 2:54 ` [PATCH 7/7] Accelerate rename_dst setup Elijah Newren via GitGitGadget
2020-12-09 23:01 ` Taylor Blau
2020-12-10 0:57 ` Elijah Newren
2020-12-10 1:43 ` Junio C Hamano
2020-12-06 3:01 ` [PATCH 0/7] diffcore-rename improvements Elijah Newren
2020-12-11 9:08 ` [PATCH v2 0/9] " Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 1/9] diffcore-rename: rename num_create to num_destinations Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 2/9] diffcore-rename: avoid usage of global in too_many_rename_candidates() Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 3/9] diffcore-rename: simplify limit check Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 4/9] diffcore-rename: reduce jumpiness in progress counters Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 5/9] t4058: add more tests and documentation for duplicate tree entry handling Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 6/9] t4058: explore duplicate tree entry handling in a bit more detail Elijah Newren via GitGitGadget
2021-04-21 12:29 ` Ævar Arnfjörð Bjarmason
2021-04-21 17:38 ` Elijah Newren
2020-12-11 9:08 ` [PATCH v2 7/9] diffcore-rename: simplify and accelerate register_rename_src() Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 8/9] diffcore-rename: accelerate rename_dst setup Elijah Newren via GitGitGadget
2020-12-11 9:08 ` [PATCH v2 9/9] diffcore-rename: remove unneccessary duplicate entry checks Elijah Newren via GitGitGadget
2020-12-29 8:31 ` Christian Couder
2020-12-29 18:09 ` Elijah Newren
2020-12-29 20:05 ` [PATCH v3 0/9] diffcore-rename improvements Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 1/9] diffcore-rename: rename num_create to num_destinations Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 2/9] diffcore-rename: avoid usage of global in too_many_rename_candidates() Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 3/9] diffcore-rename: simplify limit check Elijah Newren via GitGitGadget
2021-11-09 21:14 ` Başar Uğur
2021-11-10 20:06 ` Elijah Newren
2021-11-11 9:02 ` Başar Uğur
2021-11-11 16:19 ` Elijah Newren
2020-12-29 20:05 ` [PATCH v3 4/9] diffcore-rename: reduce jumpiness in progress counters Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 5/9] t4058: add more tests and documentation for duplicate tree entry handling Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 6/9] t4058: explore duplicate tree entry handling in a bit more detail Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 7/9] diffcore-rename: simplify and accelerate register_rename_src() Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 8/9] diffcore-rename: accelerate rename_dst setup Elijah Newren via GitGitGadget
2020-12-29 20:05 ` [PATCH v3 9/9] diffcore-rename: remove unnecessary duplicate entry checks Elijah Newren via GitGitGadget
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqtusuxvr8.fsf@gitster.c.googlers.com \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=me@ttaylorr.com \
--cc=newren@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).