Rather than allocating counter statically at compile time, it's the
responsiblity of the profile runtime to allocate them at run time
by mmapping the profile and updating all the pointers. This allows
writing counters on-the-fly rather than at exit.
See discussion on "D68351: [profile] Add a mode to continuously sync
counter updates to a file" for more details.