Proposal: A new category for PGO

I would like to propose a new category “Profile Guided Optimizations” for focused discussion on the topic. Perhaps this can be a subcategory of “IR & Optimizations”? Answering the questions in the new category template:

  • Why should people use this category? What is it for?
    Users interested in extracting peak performance from their binaries. This category is for discussion on Profile Guided Optimizations (PGO). Questions, RFCs, usage and general discussion about technologies such as Instrumented PGO (incl Value profiling), Sample PGO, Context Sensitive PGO and Heap PGO are in scope for this category.

  • How exactly is this different than the other categories we already have?
    Focuses on how profile information can be used to enhance existing optimizations or enable new class of optimizations. The closest categories we have today are “IR & Optimizations” which is a broader and not necessarily a strict superset in some cases, e.g Heap PGO. This category is also related to the c++ runtime category which I assume refers to compiler-rt. However, that only covers a part of the implementation and is often unrelated to the overall design and motivation of PGO.

  • What should topics in this category generally contain?
    See description above.

  • Do we need this category? Can we merge with another category, or subcategory?
    It could probably be a subcategory of “IR & Optimizations” and it should subsume the category for compiler-rt.

Edit: Reading through some more posts in the runtimes category I think it covers libc++ and not compiler-rt in which case having the new proposed PGO category subsume discussion of relevant compiler-rt parts seems appropriate.