Re: WIP: Faster Expression Processing v4
От | Andres Freund |
---|---|
Тема | Re: WIP: Faster Expression Processing v4 |
Дата | |
Msg-id | 20170327151750.dnpxtkjjade7kiv6@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: WIP: Faster Expression Processing v4 (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On 2017-03-27 09:33:43 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > Checking for this isn't entirely pretty - see my attached attempt at > > doing so. I considered hiding > > __attribute__((optimize("no-crossjumping"))) in execInterpExpr.c behind > > a macro (like PG_DISABLE_CROSSJUMPING), but I don't really think that > > makes things better. > > I think it would, primarily because if we find out that some other compiler > spells this differently, we could handle it totally within configure. I'm unconvinced that we could sensibly map different compiler's options on the same option name - I'd be surprised if they would have a similar enough effect. > Isn't our practice to put __attribute__ at the end of a function > declaration or definition, not in the middle someplace? We could move it to the declaration - which doesn't seem like an improvement here, given that it's about optimization not API changes - but in definitions you can't move it after the function name: static Datum ExecInterpExpr(ExprState *state, ExprContext *econtext, bool *isnull) #ifdef HAVE_FUNCATTR_NO_CROSSJUMPING __attribute__((optimize("no-crossjumping"))) #endif : /home/andres/src/postgresql/src/backend/executor/execExprInterp.c:279:1: error: attributes should be specified before thedeclarator in a function definition Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: