From: Tobias Burnus Date: Sat, 8 Mar 2014 22:13:26 +0000 (+0100) Subject: libgfortran.h (unlikely, likely): Add usage comment. X-Git-Tag: releases/gcc-4.9.0~519 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=433d6b398610cadfd7ee1e73165b72b3a6c5009d;p=thirdparty%2Fgcc.git libgfortran.h (unlikely, likely): Add usage comment. 2014-03-08 Tobias Burnus * libgfortran.h (unlikely, likely): Add usage comment. From-SVN: r208434 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 4005df089193..c82daa2564fe 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,7 @@ +2014-03-08 Tobias Burnus + + * libgfortran.h (unlikely, likely): Add usage comment. + 2014-03-08 Dominique d'Humieres PR libgfortran/60128 diff --git a/libgfortran/libgfortran.h b/libgfortran/libgfortran.h index d7e15add3caa..0d6f432a24bf 100644 --- a/libgfortran/libgfortran.h +++ b/libgfortran/libgfortran.h @@ -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)