From d4042feb2d3d06b92f378b31e791dd7fdf70832d Mon Sep 17 00:00:00 2001 From: Ben Barsdell <bbarsdell@nvidia.com> Date: Mon, 1 Jun 2020 16:38:55 +1000 Subject: [PATCH] Re-enable __builtin_expect when building with NVCC - NVCC supports this construct as of CUDA 9.0 --- tensorflow/core/platform/macros.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/tensorflow/core/platform/macros.h b/tensorflow/core/platform/macros.h index 62e5e01b3cc..57773c54e3e 100644 --- a/tensorflow/core/platform/macros.h +++ b/tensorflow/core/platform/macros.h @@ -79,11 +79,7 @@ limitations under the License. // analysis. Giving it this information can help it optimize for the // common case in the absence of better information (ie. // -fprofile-arcs). -// -// We need to disable this for GPU builds, though, since nvcc8 and older -// don't recognize `__builtin_expect` as a builtin, and fail compilation. -#if (!defined(__NVCC__)) && \ - (TF_HAS_BUILTIN(__builtin_expect) || (defined(__GNUC__) && __GNUC__ >= 3)) +#if TF_HAS_BUILTIN(__builtin_expect) || (defined(__GNUC__) && __GNUC__ >= 3) #define TF_PREDICT_FALSE(x) (__builtin_expect(x, 0)) #define TF_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1)) #else