D68041 placed __profc_, __profd_ and (if exists) __profvp_ in different comdat groups.
There are some issues:
- Cost: one or two additional section headers (.group section(s)): 64 or 128 bytes on ELF64.
- __profc_, __profd_ and (if exists) __profvp_ should be retained or discarded. Placing them into separate comdat groups is conceptually inferior.
- If the prevailing group does not include __profvp_ (value profiling not used) but a non-prevailing group from another translation unit has __profvp_ (the function is inlined into another and triggers value profiling), there will be a stray __profvp_ if --gc-sections is not enabled.
We are currently investigating a mysterious PGO timeout. When things get
stabalized, we can do D84723, which can optimize more than D68041 but avoid the issues.