Re: Convert macros to static inline functions
Maxim Orlov <orlovmg@gmail.com>
From: Maxim Orlov <orlovmg@gmail.com>
To: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2025-01-31T13:29:15Z
Lists: pgsql-hackers
Attachments
- v2-0001-Use-pg_attribute_always_inline-for-static-inline-.patch (application/octet-stream) patch v2-0001
On Thu, 23 Jan 2025 at 14:39, Peter Eisentraut < peter.eisentraut@enterprisedb.com> wrote: > On 27.12.24 11:16, Peter Eisentraut wrote: > > On 16.05.22 10:27, Peter Eisentraut wrote: > >> Inspired by [0], I looked to convert more macros to inline functions. > > > > This is an older thread where I left something unfinished: > > > >> Note 2: Many macros in htup_details.h operate both on HeapTupleHeader > >> and on MinimalTuple, so converting them to a function doesn't work in > >> a straightforward way. I have some in-progress work in that area, but > >> I have not included any of that here. > > > > Here is the patch set for this. > > I have committed this. > Great job! I've been working on the 64 XIDs patch for years, and I've never liked this place. On the other hand, as we know, inlining does not always work since it only suggests to the compiler to do it. After all, many of these calls are used in pretty "hot" places and every instruction is important, in my opinion. Wouldn't it be better to use pg_attribute_always_inline in this particular module? PFA patch. I don't use pg_attribute_always_inline for fastgetattr and heap_getattr because they are relatively large. I think it's worth leaving the possibility for debugging here. -- Best regards, Maxim Orlov.
Commits
-
Add some const decorations (htup.h)
- b15b8c5cf882 18.0 landed
-
Convert macros to static inline functions (htup_details.h, itup.h)
- 34694ec888d6 18.0 landed
-
Convert macros to static inline functions (rel.h)
- 3edc71ec0438 16.0 landed
-
Convert macros to static inline functions (itup.h)
- 14a8bd98274a 16.0 landed
-
Convert macros to static inline functions (tupmacs.h)
- f58d7073b775 16.0 landed
-
Convert macros to static inline functions (xlog_internal.h)
- 507ba16b28c7 16.0 landed
-
Convert macros to static inline functions (bufmgr.h)
- 9c727360bcc7 16.0 landed
-
Convert macros to static inline functions (itemptr.h)
- aeb767ca0b02 16.0 landed
-
Convert macros to static inline functions (bufpage.h)
- 2cd2569c72b8 16.0 landed
-
Convert macros to static inline functions (block.h)
- d63d957e330c 16.0 landed