Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2014-05-04 21:49:22 +0400
committerCampbell Barton <ideasman42@gmail.com>2014-05-04 21:49:22 +0400
commitd828d44d7a934e6e9c8fb492c8f788e91fda16ff (patch)
treed9ae1cf32ab6d26d2d663ca1611ac7036485bb98 /intern/cycles/util/util_transform.cpp
parentdc13969e484ed9fa6834b1aba85ba00f65bf8a11 (diff)
Cycles: use LIKELY/UNLIKELY macros
Gives overall ~3% speedup in own tests for BMW scene.
Diffstat (limited to 'intern/cycles/util/util_transform.cpp')
-rw-r--r--intern/cycles/util/util_transform.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/intern/cycles/util/util_transform.cpp b/intern/cycles/util/util_transform.cpp
index 12c2270a8d4..14613558501 100644
--- a/intern/cycles/util/util_transform.cpp
+++ b/intern/cycles/util/util_transform.cpp
@@ -75,7 +75,7 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4])
}
}
- if(pivotsize == 0)
+ if(UNLIKELY(pivotsize == 0.0f))
return false;
if(pivot != i) {
@@ -106,7 +106,7 @@ static bool transform_matrix4_gj_inverse(float R[][4], float M[][4])
for(int i = 3; i >= 0; --i) {
float f;
- if((f = M[i][i]) == 0)
+ if(UNLIKELY((f = M[i][i]) == 0.0f))
return false;
for(int j = 0; j < 4; j++) {
@@ -135,15 +135,16 @@ Transform transform_inverse(const Transform& tfm)
memcpy(R, &tfmR, sizeof(R));
memcpy(M, &tfm, sizeof(M));
- if(!transform_matrix4_gj_inverse(R, M)) {
+ if(UNLIKELY(!transform_matrix4_gj_inverse(R, M))) {
/* matrix is degenerate (e.g. 0 scale on some axis), ideally we should
* never be in this situation, but try to invert it anyway with tweak */
M[0][0] += 1e-8f;
M[1][1] += 1e-8f;
M[2][2] += 1e-8f;
- if(!transform_matrix4_gj_inverse(R, M))
+ if(UNLIKELY(!transform_matrix4_gj_inverse(R, M))) {
return transform_identity();
+ }
}
memcpy(&tfmR, R, sizeof(R));