Re: Unimpressed with pg_attribute_always_inline

Peter Eisentraut <peter.eisentraut@2ndquadrant.com>

From: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Peter Geoghegan <pg@bowt.ie>
Cc: Andres Freund <andres@anarazel.de>, Thomas Munro <thomas.munro@enterprisedb.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2018-01-09T01:09:27Z
Lists: pgsql-hackers
On 1/8/18 19:56, Tom Lane wrote:
> Peter Geoghegan <pg@bowt.ie> writes:
>> Anyway, ISTM that it should be possible to make
>> pg_attribute_always_inline have no effect in typical debug builds.
>> Wouldn't that make everyone happy?
> 
> That would improve matters, but do we have access to the -O switch
> level as an #if condition?

See __OPTIMIZE__ and __NO_INLINE__ here:
https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html

However, at <https://gcc.gnu.org/onlinedocs/gcc/Inline.html> it says,
"GCC does not inline any functions when not optimizing unless you
specify the ‘always_inline’ attribute for the function".  So,
apparently, if the goal is to turn off inlining when not optimizing,
then we should just use the normal inline attribute.

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Improve implementation of pg_attribute_always_inline.

  2. Add pg_attribute_always_inline.