On Sat, Sep 19, 2020 at 1:46 PM Mark Dilger
<mark.dil...@enterprisedb.com> wrote:

> 0002 and 0003 look good to me.  I like the way you cleaned up a bit with the 
> unicode_norm_props struct, which makes the code a bit more tidy, and on my 
> compiler under -O2 it does not generate any extra runtime dereferences, as 
> the compiler can see through the struct just fine.  My only concern would be 
> if some other compilers might not see through the struct, resulting in a 
> runtime performance cost?  I wouldn't even ask, except that qc_hash_lookup is 
> called in a fairly tight loop.

(I assume you mean unicode_norm_info) Yeah, that usage was copied from
the keyword list code. I believe it was done for the convenience of
the callers. That is worth something, and so is consistency. That
said, I'd be curious if there is a measurable impact for some
platforms.

>  In your commit message for 0001 you mentioned testing on a multiplicity of 
> compilers.  Did you do that for 0002 and 0003 as well?

For that, I was simply using godbolt.org to test compiling the
multiplications down to shift-and-adds. Very widespread, I only
remember MSVC as not doing it. I'm not sure a few extra cycles would
have been noticeable here, but it can't hurt to have that guarantee.

-- 
John Naylor                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Reply via email to