Author: Ofek Shilon Date: 2022-08-10T13:48:43-04:00 New Revision: 73a1b162a4cd5850a474b7cf8497aef3006094e2
URL: https://github.com/llvm/llvm-project/commit/73a1b162a4cd5850a474b7cf8497aef3006094e2 DIFF: https://github.com/llvm/llvm-project/commit/73a1b162a4cd5850a474b7cf8497aef3006094e2.diff LOG: Add docs for function attributes hot/cold Following https://reviews.llvm.org/D92493, this add docs for the hot and cold function attributes. Differential Revision: https://reviews.llvm.org/D130933 Added: Modified: clang/include/clang/Basic/Attr.td clang/include/clang/Basic/AttrDocs.td Removed: ################################################################################ diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index 7a660c9005050..670af57c3def5 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -1073,7 +1073,7 @@ def CmseNSCall : TypeAttr, TargetSpecificAttr<TargetARM> { def Cold : InheritableAttr { let Spellings = [GCC<"cold">]; let Subjects = SubjectList<[Function]>; - let Documentation = [Undocumented]; + let Documentation = [ColdFunctionEntryDocs]; let SimpleHandler = 1; } @@ -1519,7 +1519,7 @@ def GNUInline : InheritableAttr { def Hot : InheritableAttr { let Spellings = [GCC<"hot">]; let Subjects = SubjectList<[Function]>; - let Documentation = [Undocumented]; + let Documentation = [HotFunctionEntryDocs]; let SimpleHandler = 1; } def : MutualExclusions<[Hot, Cold]>; diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td index 0f428a5647dfc..6afd3063524c9 100644 --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -5241,6 +5241,21 @@ aarch64/aarch64-be/riscv32/riscv64/i386/x86-64 targets. }]; } +def HotFunctionEntryDocs : Documentation { + let Category = DocCatFunction; + let Content = [{ +``__attribute__((hot))`` marks a function as hot, as a manual alternative to PGO hotness data. +If PGO data is available, the annotation ``__attribute__((hot))`` overrides the profile count based hotness (unlike ``__attribute__((cold))``). +}]; +} + +def ColdFunctionEntryDocs : Documentation { + let Category = DocCatFunction; + let Content = [{ +``__attribute__((cold))`` marks a function as cold, as a manual alternative to PGO hotness data. +If PGO data is available, the profile count based hotness overrides the ``__attribute__((cold))`` annotation (unlike ``__attribute__((hot))``). +}]; +} def TransparentUnionDocs : Documentation { let Category = DocCatDecl; let Content = [{ _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits