Re: inline newNode()

Поиск
Список
Период
Сортировка
От Neil Conway
Тема Re: inline newNode()
Дата
Msg-id 87elb1plvp.fsf@mailbox.samurai.com
обсуждение исходный текст
Ответ на Re: inline newNode()  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: inline newNode()  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-patches
Tom Lane <tgl@sss.pgh.pa.us> writes:
[ snip interesting analysis ]
> A nicer approach would be to somehow make use of the datatype of the
> first argument to MemSet.  If we could determine at compile time
> that it's supposed to point at a type with at least int alignment,
> then it'd be possible for the compiler to optimize away this check
> in a reasonably safe fashion.  I'm not sure if there's a portable
> way to do this, though.  There's no "alignof()" construct in C
> :-(. Any ideas?

Well, we could make use of (yet another) GCC-ism: the __alignof__
keyword, which is described here:

    http://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Alignment.html#Alignment

I don't like making the code GCC-specific any more than anyone else
does, but given that the code-bloat is specific to the inline version
of newNode (which in the scheme I described earlier would be
GCC-only) -- so introducing a GCC-specific fix for a GCC-specific
problem isn't too bad, IMHO.

Or we could just use your other suggestion: define a variant of
MemSet() and use it when we know it's safe. Not sure which is the
better solution: any comments?

Cheers,

Neil

--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC

В списке pgsql-patches по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: Doc Updates
Следующее
От: Tom Lane
Дата:
Сообщение: Re: inline newNode()