pgsql: Add pg_noinline macro to c.h.
Add pg_noinline macro to c.h.
Forcing a function not to be inlined can be useful if it's the
slow-path of a performance critical function, or should be visible in
profiles to allow for proper cost attribution.
Author: Andres Freund
Discussion: /messages/by-id/20170914061207.zxotvyopetm7lrrp@alap3.anarazel.de
Branch
------
master
Details
-------
https://git.postgresql.org/pg/commitdiff/a0247e7a11bb9f5fd55694b594a3906b7bd05881
Modified Files
--------------
src/include/c.h | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
Andres Freund <andres@anarazel.de> writes:
Add pg_noinline macro to c.h.
I think you want this to be parenthesized so that pgindent doesn't
go nuts when you use it. At least, that was the reason why
pg_attribute_noreturn() has parens. Even if the current version
of pgindent doesn't have that problem, I would argue that consistency
demands that you spell this pg_attribute_noinline().
regards, tom lane
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers
On 2017-10-13 18:32:08 -0400, Tom Lane wrote:
Andres Freund <andres@anarazel.de> writes:
Add pg_noinline macro to c.h.
I think you want this to be parenthesized so that pgindent doesn't
go nuts when you use it. At least, that was the reason why
pg_attribute_noreturn() has parens. Even if the current version
of pgindent doesn't have that problem
The current pgindent actually generates *better* layout with pg_noinline
rather than pg_noinline(). The latter forces a linebreak both in
declarations and definitions like:
static pg_noinline()
HeapTuple SearchCatCacheMiss(CatCache *cache,
static pg_noinline()
HeapTuple
SearchCatCacheMiss(CatCache *cache,
One difference to pg_attribute_noreturn() is that for function
definitions - and noinline needs to be present there IME - you can't put
it after the parameter list.
I would argue that consistency demands that you spell this pg_attribute_noinline().
Hm, I personally find inline vs pg_noinline more aesthetically pleasing.
Greetings,
Andres Freund
--
Sent via pgsql-committers mailing list (pgsql-committers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-committers