compiler.h revision b5fbd75f6c58558a430ce15d077eed0a5ae97d9d
1b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian/* 2b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * Copyright (C) 2007 The Android Open Source Project 3b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * 4b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * Licensed under the Apache License, Version 2.0 (the "License"); 5b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * you may not use this file except in compliance with the License. 6b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * You may obtain a copy of the License at 7b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * 8b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * http://www.apache.org/licenses/LICENSE-2.0 9b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * 10b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * Unless required by applicable law or agreed to in writing, software 11b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * distributed under the License is distributed on an "AS IS" BASIS, 12b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * See the License for the specific language governing permissions and 14b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * limitations under the License. 15b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian */ 16b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian 17b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian#ifndef ANDROID_CUTILS_COMPILER_H 18b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian#define ANDROID_CUTILS_COMPILER_H 19b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian 20b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian/* 21b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian * helps the compiler's optimizer predicting branches 22b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian */ 23b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian 24b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian#ifdef __cplusplus 25b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian# define CC_LIKELY( exp ) (__builtin_expect( !!(exp), true )) 26b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian# define CC_UNLIKELY( exp ) (__builtin_expect( !!(exp), false )) 27b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian#else 28b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian# define CC_LIKELY( exp ) (__builtin_expect( !!(exp), 1 )) 29b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian# define CC_UNLIKELY( exp ) (__builtin_expect( !!(exp), 0 )) 30b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian#endif 31b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian 32b5fbd75f6c58558a430ce15d077eed0a5ae97d9dMathias Agopian#endif // ANDROID_CUTILS_COMPILER_H 33