libctf: having debugging enabled is unlikely
authorNick Alcock <nick.alcock@oracle.com>
Tue, 2 Jun 2020 20:00:35 +0000 (21:00 +0100)
committerNick Alcock <nick.alcock@oracle.com>
Wed, 22 Jul 2020 16:57:34 +0000 (17:57 +0100)
The deduplicator can emit enormous amounts of debugging output,
so much so that a later commit will introduce a new configure flag
that configures most of it out (and configures it out by default).

It became clear that when this configure flag is on, but debugging is
not enabled via the LIBCTF_DEBUG environment variable, up to 10% of
runtime can be spent on branch mispredictions checking the _libctf_debug
variable.  Mark it unlikely to be set (when it is set, performance is
likely to be the least of your concerns).

libctf/
* ctf-subr.c (ctf_dprintf): _libctf_debug is unlikely to be set.

libctf/ChangeLog
libctf/ctf-subr.c

index da285022dc136b46ebe8153a029c38178b044b9e..48798043efdf063ebd8aed50961fd9057821761a 100644 (file)
@@ -1,3 +1,7 @@
+2020-07-22  Nick Alcock  <nick.alcock@oracle.com>
+
+       * ctf-subr.c (ctf_dprintf): _libctf_debug is unlikely to be set.
+
 2020-07-22  Nick Alcock  <nick.alcock@oracle.com>
 
        * ctf-impl.h (struct ctf_archive_internal)
index 114df84321211449671543c53ffc8ac5b6d155b1..a5cde9d6f20dd629fc1d638f818667fdc87a5f5d 100644 (file)
@@ -183,7 +183,7 @@ int ctf_getdebug (void)
 _libctf_printflike_ (1, 2)
 void ctf_dprintf (const char *format, ...)
 {
-  if (_libctf_debug)
+  if (_libctf_unlikely_ (_libctf_debug))
     {
       va_list alist;