80c663882a
Summary: First draft. Unit tests pass. Test Plan: unit tests attached Reviewers: heyongqiang Reviewed By: heyongqiang Differential Revision: https://reviews.facebook.net/D3969
40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
/*
|
|
* Copyright 2012 Facebook, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
* Compiler hints to indicate the fast path of an "if" branch: whether
|
|
* the if condition is likely to be true or false.
|
|
*
|
|
* @author Tudor Bosman (tudorb@fb.com)
|
|
*/
|
|
|
|
#ifndef FOLLY_BASE_LIKELY_H_
|
|
#define FOLLY_BASE_LIKELY_H_
|
|
|
|
#undef LIKELY
|
|
#undef UNLIKELY
|
|
|
|
#if defined(__GNUC__) && __GNUC__ >= 4
|
|
#define LIKELY(x) (__builtin_expect((x), 1))
|
|
#define UNLIKELY(x) (__builtin_expect((x), 0))
|
|
#else
|
|
#define LIKELY(x) (x)
|
|
#define UNLIKELY(x) (x)
|
|
#endif
|
|
|
|
#endif /* FOLLY_BASE_LIKELY_H_ */
|
|
|