Experiment with cost centre strategy which inserts cost centres after the optimiser
It is well known that adding cost centres ruins optimisation as the optimiser won't rearrange code around cost centres.
The idea is to add cost centres after optimisation by using information from -g
to approximate the source location of pieces of code.
This should be a nice compromise between the high-level cost centre profiles and low-level ticky/perf profiling.
A mostly untested implementation - https://github.com/mpickering/core-prof-plugin