intel/perf: rework code generator to produce one file per generation
@mslusarz noticed that compiling the generated file took a long time. We updated the approach in IGT already to split things up and this change is about importing the same changes.
Signed-off-by: Lionel Landwerlin lionel.g.landwerlin@intel.com Closes: #4899 (closed)
before this change, including acc2d08cf908a5 ("intel/perf: use a function to do common allocations"):
djdeath@uxy:~/src/mesa-src/mesa/build$ time ninja src/intel/perf/libintel_perf.a
[6/6] Linking static target src/intel/perf/libintel_perf.a
real 0m3.959s
user 0m4.017s
sys 0m0.184s
$ du -sh src/intel/perf/libintel_perf.a
5.8M src/intel/perf/libintel_perf.a
$ du -sh src/intel/perf/intel_perf_metrics.c
12M src/intel/perf/intel_perf_metrics.c
$ wc -l src/intel/perf/intel_perf_metrics.c
248951 src/intel/perf/intel_perf_metrics.c
after this change :
$ time ninja src/intel/perf/libintel_perf.a
[82/82] Linking static target src/intel/perf/libintel_perf.a
real 0m1.974s
user 0m12.623s
sys 0m0.968s
$ du -sh src/intel/perf/libintel_perf.a
7.4M src/intel/perf/libintel_perf.a
$ wc -l src/intel/perf/intel_perf_*.[ch]
231950 total
Edited by Lionel Landwerlin