mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-22 10:12:10 +01:00
Use G_LIKELY. (#69022)
* glib/gmessages.h (g_return_if_fail): (g_return_val_if_fail): Use G_LIKELY. (#69022) * glib/gmacros.h (G_LIKELY): (G_UNLIKELY): New macros for hinting the compiler about the expected result of expressions. For gcc 3.x, define these using __builtin_expect. (#69022) * glib/tmpl/macros_misc.sgml: Document G_LIKELY, G_UNLIKELY. * glib/glib-sections.txt: Add G_LIKELY, G_UNLIKELY.
This commit is contained in:
parent
17cff0324d
commit
dc645ce354
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/gmessages.h (g_return_if_fail):
|
||||||
|
(g_return_val_if_fail): Use G_LIKELY. (#69022)
|
||||||
|
|
||||||
|
* glib/gmacros.h (G_LIKELY):
|
||||||
|
(G_UNLIKELY): New macros for hinting the compiler about the
|
||||||
|
expected result of expressions. For gcc 3.x, define these
|
||||||
|
using __builtin_expect. (#69022)
|
||||||
|
|
||||||
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/gmessages.h (g_return_if_fail):
|
||||||
|
(g_return_val_if_fail): Use G_LIKELY. (#69022)
|
||||||
|
|
||||||
|
* glib/gmacros.h (G_LIKELY):
|
||||||
|
(G_UNLIKELY): New macros for hinting the compiler about the
|
||||||
|
expected result of expressions. For gcc 3.x, define these
|
||||||
|
using __builtin_expect. (#69022)
|
||||||
|
|
||||||
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/gmessages.h (g_return_if_fail):
|
||||||
|
(g_return_val_if_fail): Use G_LIKELY. (#69022)
|
||||||
|
|
||||||
|
* glib/gmacros.h (G_LIKELY):
|
||||||
|
(G_UNLIKELY): New macros for hinting the compiler about the
|
||||||
|
expected result of expressions. For gcc 3.x, define these
|
||||||
|
using __builtin_expect. (#69022)
|
||||||
|
|
||||||
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/gmessages.h (g_return_if_fail):
|
||||||
|
(g_return_val_if_fail): Use G_LIKELY. (#69022)
|
||||||
|
|
||||||
|
* glib/gmacros.h (G_LIKELY):
|
||||||
|
(G_UNLIKELY): New macros for hinting the compiler about the
|
||||||
|
expected result of expressions. For gcc 3.x, define these
|
||||||
|
using __builtin_expect. (#69022)
|
||||||
|
|
||||||
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/gmessages.h (g_return_if_fail):
|
||||||
|
(g_return_val_if_fail): Use G_LIKELY. (#69022)
|
||||||
|
|
||||||
|
* glib/gmacros.h (G_LIKELY):
|
||||||
|
(G_UNLIKELY): New macros for hinting the compiler about the
|
||||||
|
expected result of expressions. For gcc 3.x, define these
|
||||||
|
using __builtin_expect. (#69022)
|
||||||
|
|
||||||
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/gmessages.h (g_return_if_fail):
|
||||||
|
(g_return_val_if_fail): Use G_LIKELY. (#69022)
|
||||||
|
|
||||||
|
* glib/gmacros.h (G_LIKELY):
|
||||||
|
(G_UNLIKELY): New macros for hinting the compiler about the
|
||||||
|
expected result of expressions. For gcc 3.x, define these
|
||||||
|
using __builtin_expect. (#69022)
|
||||||
|
|
||||||
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/gmessages.h (g_return_if_fail):
|
||||||
|
(g_return_val_if_fail): Use G_LIKELY. (#69022)
|
||||||
|
|
||||||
|
* glib/gmacros.h (G_LIKELY):
|
||||||
|
(G_UNLIKELY): New macros for hinting the compiler about the
|
||||||
|
expected result of expressions. For gcc 3.x, define these
|
||||||
|
using __builtin_expect. (#69022)
|
||||||
|
|
||||||
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
Tue Nov 19 14:38:18 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
* glib/gstrfuncs.c (g_ascii_strtoull): Fix
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2002-11-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* glib/tmpl/macros_misc.sgml: Document G_LIKELY, G_UNLIKELY.
|
||||||
|
|
||||||
|
* glib/glib-sections.txt: Add G_LIKELY, G_UNLIKELY.
|
||||||
|
|
||||||
2002-10-20 Matthias Clasen <maclas@gmx.de>
|
2002-10-20 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
* gobject/Makefile.am (SCANOBJ_FILES):
|
* gobject/Makefile.am (SCANOBJ_FILES):
|
||||||
|
@ -296,6 +296,10 @@ G_GNUC_FUNCTION
|
|||||||
G_GNUC_PRETTY_FUNCTION
|
G_GNUC_PRETTY_FUNCTION
|
||||||
G_GNUC_NO_INSTRUMENT
|
G_GNUC_NO_INSTRUMENT
|
||||||
|
|
||||||
|
<SUBSECTION>
|
||||||
|
G_LIKELY
|
||||||
|
G_UNLIKELY
|
||||||
|
|
||||||
<SUBSECTION>
|
<SUBSECTION>
|
||||||
G_STRLOC
|
G_STRLOC
|
||||||
|
|
||||||
|
@ -237,6 +237,32 @@ See the GNU C documentation for details.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### MACRO G_LIKELY ##### -->
|
||||||
|
<para>
|
||||||
|
Hints the compiler that the expression is likely to evaluate to a true
|
||||||
|
value. The compiler may use this information for optimizations.
|
||||||
|
</para>
|
||||||
|
<informalexample><programlisting>
|
||||||
|
if (G_LIKELY (random () != 1))
|
||||||
|
g_print ("not one");
|
||||||
|
</programlisting></informalexample>
|
||||||
|
|
||||||
|
@expr: the expression
|
||||||
|
|
||||||
|
|
||||||
|
<!-- ##### MACRO G_UNLIKELY ##### -->
|
||||||
|
<para>
|
||||||
|
Hints the compiler that the expression is unlikely to evaluate to a true
|
||||||
|
value. The compiler may use this information for optimizations.
|
||||||
|
</para>
|
||||||
|
<informalexample><programlisting>
|
||||||
|
if (G_UNLIKELY (random () == 1))
|
||||||
|
g_print ("a random one");
|
||||||
|
</programlisting></informalexample>
|
||||||
|
|
||||||
|
@expr: the expression
|
||||||
|
|
||||||
|
|
||||||
<!-- ##### MACRO G_STRLOC ##### -->
|
<!-- ##### MACRO G_STRLOC ##### -->
|
||||||
<para>
|
<para>
|
||||||
Expands to a string identifying the current code position.
|
Expands to a string identifying the current code position.
|
||||||
|
@ -197,4 +197,19 @@
|
|||||||
#define G_CONST_RETURN const
|
#define G_CONST_RETURN const
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The G_LIKELY and G_UNLIKELY macros let the programmer give hints to
|
||||||
|
* the compiler about the expected result of an expression. Some compilers
|
||||||
|
* can use this information for optimizations.
|
||||||
|
*/
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ > 2)
|
||||||
|
#define G_LIKELY(expr) __builtin_expect (!!(expr), 1)
|
||||||
|
#define G_UNLIKELY(expr) __builtin_expect (!!(expr), 0)
|
||||||
|
#else
|
||||||
|
#define G_LIKELY(expr) expr
|
||||||
|
#define G_UNLIKELY(expr) expr
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* __G_MACROS_H__ */
|
#endif /* __G_MACROS_H__ */
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <glib/gtypes.h>
|
#include <glib/gtypes.h>
|
||||||
|
#include <glib/gmacros.h>
|
||||||
|
|
||||||
/* Suppress warnings when GCC is in -pedantic mode and not -std=c99
|
/* Suppress warnings when GCC is in -pedantic mode and not -std=c99
|
||||||
*/
|
*/
|
||||||
@ -252,7 +253,7 @@ GPrintFunc g_set_printerr_handler (GPrintFunc func);
|
|||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
|
|
||||||
#define g_return_if_fail(expr) G_STMT_START{ \
|
#define g_return_if_fail(expr) G_STMT_START{ \
|
||||||
if (expr) { } else \
|
if (G_LIKELY (expr)) { } else \
|
||||||
{ \
|
{ \
|
||||||
g_log (G_LOG_DOMAIN, \
|
g_log (G_LOG_DOMAIN, \
|
||||||
G_LOG_LEVEL_CRITICAL, \
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
@ -265,7 +266,7 @@ GPrintFunc g_set_printerr_handler (GPrintFunc func);
|
|||||||
}; }G_STMT_END
|
}; }G_STMT_END
|
||||||
|
|
||||||
#define g_return_val_if_fail(expr,val) G_STMT_START{ \
|
#define g_return_val_if_fail(expr,val) G_STMT_START{ \
|
||||||
if (expr) { } else \
|
if (G_LIKELY (expr)) { } else \
|
||||||
{ \
|
{ \
|
||||||
g_log (G_LOG_DOMAIN, \
|
g_log (G_LOG_DOMAIN, \
|
||||||
G_LOG_LEVEL_CRITICAL, \
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
@ -298,7 +299,7 @@ GPrintFunc g_set_printerr_handler (GPrintFunc func);
|
|||||||
#else /* !__GNUC__ */
|
#else /* !__GNUC__ */
|
||||||
|
|
||||||
#define g_return_if_fail(expr) G_STMT_START{ \
|
#define g_return_if_fail(expr) G_STMT_START{ \
|
||||||
if (expr) { } else \
|
if (G_LIKELY (expr)) { } else \
|
||||||
{ \
|
{ \
|
||||||
g_log (G_LOG_DOMAIN, \
|
g_log (G_LOG_DOMAIN, \
|
||||||
G_LOG_LEVEL_CRITICAL, \
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
@ -310,7 +311,7 @@ GPrintFunc g_set_printerr_handler (GPrintFunc func);
|
|||||||
}; }G_STMT_END
|
}; }G_STMT_END
|
||||||
|
|
||||||
#define g_return_val_if_fail(expr, val) G_STMT_START{ \
|
#define g_return_val_if_fail(expr, val) G_STMT_START{ \
|
||||||
if (expr) { } else \
|
if (G_LIKELY (expr)) { } else \
|
||||||
{ \
|
{ \
|
||||||
g_log (G_LOG_DOMAIN, \
|
g_log (G_LOG_DOMAIN, \
|
||||||
G_LOG_LEVEL_CRITICAL, \
|
G_LOG_LEVEL_CRITICAL, \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user