# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: kinkie@squid-cache.org-20101013160855-lmi2vbrokh7e64yl # target_branch: file:///home/kinkie/squid/workspace/squid-trunk-co/ # testament_sha1: 4c48469579bcf0502e4769dd550e3fea76e1e29a # timestamp: 2010-10-13 18:09:02 +0200 # base_revision_id: amosjeffries@squid-cache.org-20101006130311-\ # xnwwkgwnuhy5oj0r # # Begin patch === modified file 'acinclude/os-deps.m4' --- acinclude/os-deps.m4 2010-08-29 14:07:18 +0000 +++ acinclude/os-deps.m4 2010-10-13 16:08:55 +0000 @@ -814,3 +814,17 @@ squid_cv_resuid_works="no" ],[:]) ) ]) + + +dnl check compiler support for gcc-style conditional branch hinting +dnl set squid_cv_branch_hints to either "no" or "yes" +AC_DEFUN([SQUID_CHECK_GCC_COMPILER_BRANCH_HINTS],[ + AC_CACHE_CHECK(if the compiler supports branch hints, squid_cv_branch_hints, + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[[ + int foo=1; + if (__builtin_expect(!!(foo==1), 1)) { + foo=2; + } + ]])],[squid_cv_branch_hints=yes],[squid_cv_branch_hints=no]) + ) +]) === modified file 'configure.in' --- configure.in 2010-10-06 13:03:11 +0000 +++ configure.in 2010-10-13 16:08:55 +0000 @@ -79,6 +79,10 @@ AC_USE_SYSTEM_EXTENSIONS fi +SQUID_CHECK_GCC_COMPILER_BRANCH_HINTS +SQUID_DEFINE_BOOL(HAVE_GCC_BRANCH_HINTS,$squid_cv_branch_hints, + [Defined if the compiler supports gcc-style conditional branch hinting]) + AC_ARG_ENABLE(strict-error-checking, AS_HELP_STRING([--disable-strict-error-checking],[By default squid is compiled with all possible static compiler error-checks enabled. === added file 'include/branch-hints.h' --- include/branch-hints.h 1970-01-01 00:00:00 +0000 +++ include/branch-hints.h 2010-10-13 16:08:55 +0000 @@ -0,0 +1,45 @@ +/* + * branch-hints.h (C) 2009 Francesco Chemolli + * + * SQUID Web Proxy Cache http://www.squid-cache.org/ + * ---------------------------------------------------------- + * + * Squid is the result of efforts by numerous individuals from + * the Internet community; see the CONTRIBUTORS file for full + * details. Many organizations have provided support for Squid's + * development; see the SPONSORS file for full details. Squid is + * Copyrighted (C) 2001 by the Regents of the University of + * California; see the COPYRIGHT file for full details. Squid + * incorporates software developed and/or copyrighted by other + * sources; see the CREDITS file for full details. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. + * + */ + +#ifndef BRANCHHINTS_H_ +#define BRANCHHINTS_H_ + +#include "config.h" + +#if HAVE_GCC_BRANCH_HINTS +#define likely(x) __builtin_expect(!!(x), 1) +#define unlikely(x) __builtin_expect(!!(x), 0) +#else +#define likely(x) (x) +#define unlikely(x) (x) +#endif /* __GNUC__ */ + +#endif /* BRANCHHINTS_H_ */ === modified file 'src/cache_manager.cc' --- src/cache_manager.cc 2010-08-16 11:35:40 +0000 +++ src/cache_manager.cc 2010-10-12 15:42:26 +0000 @@ -33,6 +33,7 @@ * */ +#include "branch-hints.h" #include "CacheManager.h" #include "errorpage.h" #include "HttpReply.h" @@ -478,7 +479,7 @@ CacheManager* CacheManager::GetInstance() { - if (instance == 0) { + if (unlikely(instance == 0)) { debugs(16, 6, "CacheManager::GetInstance: starting cachemanager up"); instance = new CacheManager; } # Begin bundle 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