libgfortran.h (unlikely, likely): Add usage comment.
authorTobias Burnus <burnus@net-b.de>
Sat, 8 Mar 2014 22:13:26 +0000 (23:13 +0100)
committerTobias Burnus <burnus@gcc.gnu.org>
Sat, 8 Mar 2014 22:13:26 +0000 (23:13 +0100)
2014-03-08  Tobias Burnus  <burnus@net-b.de>

        * libgfortran.h (unlikely, likely): Add usage comment.

From-SVN: r208434

libgfortran/ChangeLog
libgfortran/libgfortran.h

index 4005df089193cbcc3efaf9a1af932ad303f5896b..c82daa2564fe5e7289ea636e17b49f6da3d51af7 100644 (file)
@@ -1,3 +1,7 @@
+2014-03-08  Tobias Burnus  <burnus@net-b.de>
+
+       * libgfortran.h (unlikely, likely): Add usage comment.
+
 2014-03-08  Dominique d'Humieres  <dominiq@lps.ens.fr>
 
        PR libgfortran/60128
index d7e15add3caa665b212b78a8b6af42e425759e1d..0d6f432a24bf1350fd3efa86b8de198e38667ed2 100644 (file)
@@ -97,6 +97,16 @@ typedef off_t gfc_offset;
 #define NULL (void *) 0
 #endif
 
+
+/* The following macros can be used to annotate conditions which are likely or
+   unlikely to be true.  Avoid using them when a condition is only slightly
+   more likely/less unlikely than average to avoid the performance penalties of
+   branch misprediction. In addition, as __builtin_expect overrides the compiler
+   heuristic, do not use in conditions where one of the branches ends with a
+   call to a function with __attribute__((noreturn)): the compiler internal
+   heuristic will mark this branch as much less likely as unlikely() would
+   do.  */
+
 #ifndef __GNUC__
 #define __attribute__(x)
 #define likely(x)       (x)