Simplify newNode() by removing special cases
Heikki Linnakangas <heikki.linnakangas@iki.fi>
Simplify newNode() by removing special cases - Remove MemoryContextAllocZeroAligned(). It was supposed to be a faster version of MemoryContextAllocZero(), but modern compilers turn the MemSetLoop() into a call to memset() anyway, making it more or less identical to MemoryContextAllocZero(). That was the only user of MemSetTest, MemSetLoop, so remove those too, as well as palloc0fast(). - Convert newNode() to a static inline function. When this was originally originally written, it was written as a macro because testing showed that gcc didn't inline the size check as we intended. Modern compiler versions do, and now that it just calls palloc0() there is no size-check to inline anyway. One nice effect is that the palloc0() takes one less argument than MemoryContextAllocZeroAligned(), which saves a few instructions in the callers of newNode(). Reviewed-by: Peter Eisentraut, Tom Lane, John Naylor, Thomas Munro Discussion: https://www.postgresql.org/message-id/b51f1fa7-7e6a-4ecc-936d-90a8a1659e7c@iki.fi
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/nodes/Makefile | modified | +0 −1 |
| src/backend/nodes/meson.build | modified | +0 −1 |
| src/backend/nodes/nodes.c | deleted | +0 −31 |
| src/backend/utils/mmgr/mcxt.c | modified | +0 −38 |
| src/include/c.h | modified | +0 −24 |
| src/include/nodes/nodes.h | modified | +9 −30 |
| src/include/utils/palloc.h | modified | +0 −14 |
Discussion
- Simplify newNode() 10 messages · 2023-12-14 → 2023-12-19