Outside compilation 'symbols_with_pos_enabled' is always false, so ask
the compiler to organize the most likely execution path in a sequential
fashion in order to favor run-time performance.
(cherry picked from commit
b0ba0d42b0fdf70a20cd7a070128db8abe4a0826)
INLINE bool
EQ (Lisp_Object x, Lisp_Object y)
{
- return BASE_EQ ((symbols_with_pos_enabled && SYMBOL_WITH_POS_P (x)
- ? XSYMBOL_WITH_POS_SYM (x) : x),
- (symbols_with_pos_enabled && SYMBOL_WITH_POS_P (y)
- ? XSYMBOL_WITH_POS_SYM (y) : y));
+ return BASE_EQ ((__builtin_expect (symbols_with_pos_enabled, false)
+ && SYMBOL_WITH_POS_P (x) ? XSYMBOL_WITH_POS_SYM (x) : x),
+ (__builtin_expect (symbols_with_pos_enabled, false)
+ && SYMBOL_WITH_POS_P (y) ? XSYMBOL_WITH_POS_SYM (y) : y));
}
INLINE intmax_t