Merge pull request #14760 from hpvb/add-several-unlikely-macros

Add several unlikely() macros
This commit is contained in:
Rémi Verschelde 2017-12-17 14:28:15 +01:00 committed by GitHub
commit ad3393743c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 12 deletions

View File

@ -313,7 +313,7 @@ public:
_FORCE_INLINE_ TData *getptr(const TKey &p_key) { _FORCE_INLINE_ TData *getptr(const TKey &p_key) {
if (!hash_table) if (unlikely(!hash_table))
return NULL; return NULL;
Element *e = const_cast<Element *>(get_element(p_key)); Element *e = const_cast<Element *>(get_element(p_key));
@ -326,7 +326,7 @@ public:
_FORCE_INLINE_ const TData *getptr(const TKey &p_key) const { _FORCE_INLINE_ const TData *getptr(const TKey &p_key) const {
if (!hash_table) if (unlikely(!hash_table))
return NULL; return NULL;
const Element *e = const_cast<Element *>(get_element(p_key)); const Element *e = const_cast<Element *>(get_element(p_key));
@ -345,7 +345,7 @@ public:
template <class C> template <class C>
_FORCE_INLINE_ TData *custom_getptr(C p_custom_key, uint32_t p_custom_hash) { _FORCE_INLINE_ TData *custom_getptr(C p_custom_key, uint32_t p_custom_hash) {
if (!hash_table) if (unlikely(!hash_table))
return NULL; return NULL;
uint32_t hash = p_custom_hash; uint32_t hash = p_custom_hash;
@ -371,7 +371,7 @@ public:
template <class C> template <class C>
_FORCE_INLINE_ const TData *custom_getptr(C p_custom_key, uint32_t p_custom_hash) const { _FORCE_INLINE_ const TData *custom_getptr(C p_custom_key, uint32_t p_custom_hash) const {
if (!hash_table) if (unlikely(!hash_table))
return NULL; return NULL;
uint32_t hash = p_custom_hash; uint32_t hash = p_custom_hash;
@ -400,7 +400,7 @@ public:
bool erase(const TKey &p_key) { bool erase(const TKey &p_key) {
if (!hash_table) if (unlikely(!hash_table))
return false; return false;
uint32_t hash = Hasher::hash(p_key); uint32_t hash = Hasher::hash(p_key);
@ -478,7 +478,8 @@ public:
*/ */
const TKey *next(const TKey *p_key) const { const TKey *next(const TKey *p_key) const {
if (!hash_table) return NULL; if (unlikely(!hash_table))
return NULL;
if (!p_key) { /* get the first key */ if (!p_key) { /* get the first key */
@ -559,7 +560,7 @@ public:
} }
void get_key_value_ptr_array(const Pair **p_pairs) const { void get_key_value_ptr_array(const Pair **p_pairs) const {
if (!hash_table) if (unlikely(!hash_table))
return; return;
for (int i = 0; i < (1 << hash_table_power); i++) { for (int i = 0; i < (1 << hash_table_power); i++) {
@ -573,7 +574,7 @@ public:
} }
void get_key_list(List<TKey> *p_keys) const { void get_key_list(List<TKey> *p_keys) const {
if (!hash_table) if (unlikely(!hash_table))
return; return;
for (int i = 0; i < (1 << hash_table_power); i++) { for (int i = 0; i < (1 << hash_table_power); i++) {

View File

@ -1704,7 +1704,7 @@ Vector3 VoxelLightBaker::_compute_ray_trace_at_pos(const Vector3 &p_pos, const V
} }
cell = bc->childs[child]; cell = bc->childs[child];
if (cell == CHILD_EMPTY) if (unlikely(cell == CHILD_EMPTY))
break; break;
half >>= 1; half >>= 1;
@ -1713,12 +1713,12 @@ Vector3 VoxelLightBaker::_compute_ray_trace_at_pos(const Vector3 &p_pos, const V
pos += advance; pos += advance;
} }
if (cell != CHILD_EMPTY) { if (unlikely(cell != CHILD_EMPTY)) {
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
//anisotropic read light //anisotropic read light
float amount = direction.dot(aniso_normal[i]); float amount = direction.dot(aniso_normal[i]);
if (amount < 0) if (amount <= 0)
amount = 0; continue;
accum.x += light[cell].accum[i][0] * amount; accum.x += light[cell].accum[i][0] * amount;
accum.y += light[cell].accum[i][1] * amount; accum.y += light[cell].accum[i][1] * amount;
accum.z += light[cell].accum[i][2] * amount; accum.z += light[cell].accum[i][2] * amount;