mirror of
https://github.com/postgres/postgres.git
synced 2025-05-06 19:59:18 +03:00
Define pg_attribute_cold and pg_attribute_hot macros
For compilers supporting __has_attribute and __has_attribute (hot/cold). __has_attribute is supported on gcc >= 5, clang >= 2.9 and icc >= 17. A followup commit will implement some usages of these macros. Author: David Rowley Reviewed-by: Andres Freund, Peter Eisentraut Discussion: https://postgr.es/m/CAApHDvrVpasrEzLL2er7p9iwZFZ%3DJj6WisePcFeunwfrV0js_A%40mail.gmail.com
This commit is contained in:
parent
3b9b01f75d
commit
697e1d02f5
@ -191,6 +191,22 @@
|
|||||||
#define pg_noinline
|
#define pg_noinline
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Marking certain functions as "hot" or "cold" can be useful to assist the
|
||||||
|
* compiler in arranging the assembly code in a more efficient way.
|
||||||
|
*/
|
||||||
|
#if defined(__has_attribute) && __has_attribute (cold)
|
||||||
|
#define pg_attribute_cold __attribute__((cold))
|
||||||
|
#else
|
||||||
|
#define pg_attribute_cold
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__has_attribute) && __has_attribute (hot)
|
||||||
|
#define pg_attribute_hot __attribute__((hot))
|
||||||
|
#else
|
||||||
|
#define pg_attribute_hot
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mark a point as unreachable in a portable fashion. This should preferably
|
* Mark a point as unreachable in a portable fashion. This should preferably
|
||||||
* be something that the compiler understands, to aid code generation.
|
* be something that the compiler understands, to aid code generation.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user