4 day week, on holiday monday
Submitted a Linaro Connect presentation.
[TCWG-1424] Investigate profile feedback for code-size Frustrating week trying to plug profile feedback into builds and benchmarks and get sensible results - First attempt was to use clang 2 stage pgo build -- New pass manager has a bug that prevents clang from linking when I enable clang instrumented profiling (local ref into discarded comdat group containing counters) -- Sample based profiling requires building create_llvm_prof from Google's autofdo repository. Does not build out of the box after it switched to using git submodules for its dependencies, managed to fix up makefile to get it built. -- Tried a sample profiling run but with perf's sampling rate and clang's running time mean that the number of samples is too small to give meaningful results. -- The version of perf on my machine doesn't support incremental profiling so I can't accumulate data from multiple runs. -- Inlining before my pass to mark functions for size optimisation accounts for majority of code size increase.
- Second attempt was integrating clang/llvm profiling into spec -- Spent way longer than I'd expected working out how to write a config file that handles sample and instrumentation based profile runs. Both forms require the profile generated from perf or an instrumented build to be post-processed before being used as an input for the next stage. The sample profiling also needs the path to the training executable which isn't obvious how to do. -- Got SpecInt running with all the various combinations that I want to run, haven't had time to do full runs to get results yet