Subject: Re: [PATCH] Move clause_sides_match_join() into pathnode.h

From: David Rowley <[email-masked]>
Date: Thu, 10 Oct 2024 13:26:33 +1300

On Thu, 10 Oct 2024 at 08:38, James Hunter <[email-masked]> wrote:
> We had two almost-identical copies of the utility function
> clause_sides_match_join() -- one in joinpath.c, and one in
> analyzejoins.c. Both copies were marked "inline," so we might as well
> just move the (inline) function definition into a common header file.
> I chose pathnode.h, because it is already #included by both of the .c
> files.

I'm in favour of the deduplication.  pathnode.h seems like a strange
choice. restrictinfo.h seems more suited.

(I really wonder how much the inlining is giving us given that the
function itself calls other non-inlineable functions)

David

---

From: James Hunter <[email-masked]>
Date: Thu, 10 Oct 2024 08:25:12 -0700

> choice. restrictinfo.h seems more suited.

Moved into restrictinfo.h, instead, in next revision. (The only reason
I initially chose pathnode.h is because it was already #included by
the two .c files; I agree, after glancing over restrictinfo.h, that it
seems like a better fit.)
> function itself calls other non-inlineable functions)

I wondered the same! But, at least the branch can be inlined?

Thanks for looking over the patch,
James

---

From: David Rowley <[email-masked]>
Date: Tue, 15 Oct 2024 21:20:48 +1300

On Fri, 11 Oct 2024 at 04:25, James Hunter <[email-masked]> wrote:
> Moved into restrictinfo.h, instead, in next revision.

Thanks. Pushed.

> I wondered the same! But, at least the branch can be inlined?

Do you mean function call?  As far as I see it, that's the only
advantage. There are no branches that can be eliminated from
constant-folding.

I imagine the original version was only inlined to help coax the
compiler into inlining, which I imagine it would have done anyway if
there was just a single usage of the static function. Probably the
analyzejoins.c version just copied the original joinpath.c version. I
didn't check the history to know if that's actually true.

David