Aras Pranckevicius
d973355b3a
Cleanup: reduce amount of math-related includes
...
Using ClangBuildAnalyzer on the whole Blender build, it was pointing
out that BLI_math.h is the heaviest "header hub" (i.e. non tiny file
that is included a lot).
However, there's very little (actually zero) source files in Blender
that need "all the math" (base, colors, vectors, matrices,
quaternions, intersection, interpolation, statistics, solvers and
time). A common use case is source files needing just vectors, or
just vectors & matrices, or just colors etc. Actually, 181 files
were including the whole math thing without needing it at all.
This change removes BLI_math.h completely, and instead in all the
places that need it, includes BLI_math_vector.h or BLI_math_color.h
and so on.
Change from that:
- BLI_math_color.h was included 1399 times -> now 408 (took 114.0sec
to parse -> now 36.3sec)
- BLI_simd.h 1403 -> 418 (109.7sec -> 34.9sec).
Full rebuild of Blender (Apple M1, Xcode, RelWithDebInfo) is not
affected much (342sec -> 334sec). Most of benefit would be when
someone's changing BLI_simd.h or BLI_math_color.h or similar files,
that now there's 3x fewer files result in a recompile.
Pull Request #110944
2023-08-10 14:51:40 +03:00
..
2023-08-10 14:51:40 +03:00
2023-05-31 16:19:06 +02:00
2023-08-10 14:51:40 +03:00
2023-07-31 13:02:30 +10:00
2023-05-31 16:19:06 +02:00
2023-07-27 11:32:11 +02:00
2023-05-31 16:19:06 +02:00
2023-08-09 20:24:24 +10:00
2023-08-03 09:44:28 +10:00
2023-07-10 05:01:58 -07:00
2023-08-09 11:20:59 +10:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-08-09 11:15:27 +02:00
2023-08-09 14:25:15 +02:00
2023-08-10 14:51:40 +03:00
2023-05-31 16:19:06 +02:00
2023-07-31 13:02:30 +10:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-07-07 07:10:41 -04:00
2023-06-28 17:17:31 +02:00
2023-05-31 16:19:06 +02:00
2023-07-26 13:45:04 +02:00
2023-07-31 13:02:30 +10:00
2023-05-31 16:19:06 +02:00
2023-07-31 13:02:30 +10:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-07-02 10:43:51 +02:00
2023-06-15 13:35:34 +10:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-08-10 12:57:32 +02:00
2023-07-11 10:53:15 -04:00
2023-08-10 12:41:20 +02:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:51:03 +10:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-08-09 11:15:27 +02:00
2023-07-07 17:03:02 +02:00
2023-07-07 17:03:02 +02:00
2023-08-06 16:30:12 +02:00
2023-08-06 16:30:12 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-07-02 10:43:51 +02:00
2023-06-27 14:45:00 +10:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-05-31 16:19:06 +02:00
2023-07-25 21:15:52 +02:00
2023-07-26 15:23:28 +10:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-07-27 12:21:06 +10:00
2023-08-05 02:57:52 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-08-09 20:24:24 +10:00
2023-08-09 10:06:31 +02:00
2023-05-31 16:19:06 +02:00
2023-07-03 16:34:30 +02:00
2023-07-05 14:09:33 +10:00
2023-06-27 14:45:00 +10:00
2023-07-31 13:02:30 +10:00
2023-08-01 19:03:36 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-06-27 15:38:28 +10:00
2023-05-31 16:19:06 +02:00
2023-06-16 08:14:25 -04:00
2023-05-31 16:19:06 +02:00
2023-08-06 20:30:08 +02:00
2023-05-31 16:19:06 +02:00
2023-08-09 11:15:27 +02:00
2023-08-03 16:54:39 +02:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-06-27 14:45:00 +10:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-08-03 10:51:37 -04:00
2023-05-31 16:19:06 +02:00
2023-06-27 14:45:00 +10:00
2023-05-31 16:19:06 +02:00
2023-06-14 12:20:05 +10:00
2023-06-21 11:29:00 +10:00
2023-06-08 15:42:30 +02:00
2023-08-09 20:24:24 +10:00
2023-05-31 16:19:06 +02:00
2023-08-09 20:24:24 +10:00
2023-06-26 10:09:57 +10:00
2023-05-31 16:19:06 +02:00
2023-07-27 12:37:06 +02:00
2023-06-26 13:09:06 +10:00
2023-07-03 15:15:18 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-07-19 12:12:09 +02:00
2023-07-11 22:36:10 +02:00
2023-05-31 16:19:06 +02:00
2023-05-31 16:19:06 +02:00
2023-07-21 02:18:59 +02:00
2023-08-04 23:11:22 +02:00
2023-07-07 15:37:26 +02:00
2023-07-10 11:18:22 +02:00
2023-05-31 16:19:06 +02:00