[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45840] trunk/blender/source/blender/ blenkernel/intern/CCGSubSurf.c: small speedup to VertDataMulN(av, n), when passed expressions to 'n' they were calculated 3 times, cuts 78 instructions from resulting assembly (gcc -O2).

Campbell Barton ideasman42 at gmail.com
Sun Apr 22 05:25:53 CEST 2012


Revision: 45840
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45840
Author:   campbellbarton
Date:     2012-04-22 03:25:48 +0000 (Sun, 22 Apr 2012)
Log Message:
-----------
small speedup to VertDataMulN(av, n), when passed expressions to 'n' they were calculated 3 times, cuts 78 instructions from resulting assembly (gcc -O2).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c

Modified: trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2012-04-22 03:07:21 UTC (rev 45839)
+++ trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2012-04-22 03:25:48 UTC (rev 45840)
@@ -282,7 +282,7 @@
 #define VertDataCopy(av, bv) { float *_a = (float *)av, *_b = (float *) bv; _a[0]  = _b[0]; _a[1]  = _b[1]; _a[2]  = _b[2]; }
 #define VertDataAdd(av, bv)  { float *_a = (float *)av, *_b = (float *) bv; _a[0] += _b[0]; _a[1] += _b[1]; _a[2] += _b[2]; }
 #define VertDataSub(av, bv)  { float *_a = (float *)av, *_b = (float *) bv; _a[0] -= _b[0]; _a[1] -= _b[1]; _a[2] -= _b[2]; }
-#define VertDataMulN(av, n)  { float *_a = (float *)av; _a[0] *= n; _a[1] *= n; _a[2] *= n; }
+#define VertDataMulN(av, n)  { float *_a = (float *)av; float _n = n; _a[0] *= _n; _a[1] *= _n; _a[2] *= _n; }
 #define VertDataAvg4(tv, av, bv, cv, dv) \
 	{ \
 		float *_t = (float *) tv, *_a = (float *) av, *_b = (float *) bv, *_c = (float *) cv, *_d = (float *) dv; \




More information about the Bf-blender-cvs mailing list