diff options
author | Thomas Munro | 2024-07-30 10:12:42 +0000 |
---|---|---|
committer | Thomas Munro | 2024-07-30 10:59:30 +0000 |
commit | a011dc399cc82be07326c89c926bd5880160b1ba (patch) | |
tree | 0f6704d08dd5d86c95a132715553728a8f1881e8 /src/include/port/atomics | |
parent | 81385261362962deb9861b39b509aeffe213721d (diff) |
Require compiler barrier support.
Previously we had a fallback implementation of pg_compiler_barrier()
that called an empty function across a translation unit boundary so the
compiler couldn't see what it did. That shouldn't be needed on any
current systems, and might not even work with a link time optimizer.
Since we now require compiler-specific knowledge of how to implement
atomics, we should also know how to implement compiler barriers on a
hypothetical new system.
Reviewed-by: Heikki Linnakangas <[email protected]>
Suggested-by: Andres Freund <[email protected]>
Discussion: https://postgr.es/m/721bf39a-ed8a-44b0-8b8e-be3bd81db748%40technowledgy.de
Discussion: https://postgr.es/m/3351991.1697728588%40sss.pgh.pa.us
Diffstat (limited to 'src/include/port/atomics')
-rw-r--r-- | src/include/port/atomics/fallback.h | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/src/include/port/atomics/fallback.h b/src/include/port/atomics/fallback.h index 8ffd1a8fd32..9f83827d83f 100644 --- a/src/include/port/atomics/fallback.h +++ b/src/include/port/atomics/fallback.h @@ -33,21 +33,6 @@ extern void pg_spinlock_barrier(void); #define pg_memory_barrier_impl pg_spinlock_barrier #endif -#ifndef pg_compiler_barrier_impl -/* - * If the compiler/arch combination does not provide compiler barriers, - * provide a fallback. The fallback simply consists of a function call into - * an externally defined function. That should guarantee compiler barrier - * semantics except for compilers that do inter translation unit/global - * optimization - those better provide an actual compiler barrier. - * - * A native compiler barrier for sure is a lot faster than this... - */ -#define PG_HAVE_COMPILER_BARRIER_EMULATION -extern void pg_extern_compiler_barrier(void); -#define pg_compiler_barrier_impl pg_extern_compiler_barrier -#endif - #if !defined(PG_HAVE_ATOMIC_U64_SUPPORT) |