On Fri, Feb 7, 2020 at 11:43 PM Emre Hasegeli <e...@hasegeli.com> wrote: > > > The patch looks unduly invasive to me, but I think that it might be > > > right that we should go back to a macro-based implementation, because > > > otherwise we don't have a good way to be certain that the function > > > parameter won't get evaluated first. > > > > I'd first like to see some actual evidence of this being a problem, > > rather than just the order of the checks. > > There seem to be enough evidence of this being the problem. We are > better off going back to the macro-based implementation. I polished > Keisuke Kuroda's patch commenting about the performance issue, removed > the check_float*_val() functions completely, and added unlikely() as > Tom Lane suggested. It is attached. I confirmed with different > compilers that the macro, and unlikely() makes this noticeably faster.
Thanks for updating the patch. Should we update the same macro in contrib/btree_gist/btree_utils_num.h too? Regards, Amit