[all-commits] [llvm/llvm-project] 3acda9: [Remarks][1/2] Expand remarks hotness threshold op...

Wei Wang via All-commits all-commits at lists.llvm.org
Mon Nov 30 21:57:44 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 3acda91742b7e995af87f1afaca5e0fa78669819
      https://github.com/llvm/llvm-project/commit/3acda91742b7e995af87f1afaca5e0fa78669819
  Author: Wei Wang <apollo.mobility at gmail.com>
  Date:   2020-11-30 (Mon, 30 Nov 2020)

  Changed paths:
    M lld/ELF/Config.h
    M lld/ELF/Driver.cpp
    M lld/ELF/LTO.cpp
    M lld/ELF/Options.td
    M lld/test/ELF/lto/opt-remarks.ll
    M llvm/include/llvm/IR/LLVMContext.h
    M llvm/include/llvm/IR/LLVMRemarkStreamer.h
    M llvm/include/llvm/LTO/Config.h
    M llvm/include/llvm/LTO/LTO.h
    A llvm/include/llvm/Remarks/HotnessThresholdParser.h
    M llvm/include/llvm/Support/CommandLine.h
    M llvm/lib/IR/LLVMContext.cpp
    M llvm/lib/IR/LLVMContextImpl.h
    M llvm/lib/IR/LLVMRemarkStreamer.cpp
    M llvm/lib/LTO/LTO.cpp
    M llvm/lib/LTO/LTOBackend.cpp
    M llvm/lib/LTO/LTOCodeGenerator.cpp
    M llvm/lib/LTO/ThinLTOCodeGenerator.cpp
    M llvm/test/LTO/Resolution/X86/diagnostic-handler-remarks-with-hotness.ll
    M llvm/test/LTO/X86/diagnostic-handler-remarks-with-hotness.ll
    M llvm/test/tools/gold/X86/opt-remarks.ll
    M llvm/tools/gold/gold-plugin.cpp
    M llvm/tools/llc/llc.cpp
    M llvm/tools/llvm-lto2/llvm-lto2.cpp
    M llvm/tools/opt/opt.cpp

  Log Message:
  -----------
  [Remarks][1/2] Expand remarks hotness threshold option support in more tools

This is the #1 of 2 changes that make remarks hotness threshold option
available in more tools. The changes also allow the threshold to sync with
hotness threshold from profile summary with special value 'auto'.

This change modifies the interface of lto::setupLLVMOptimizationRemarks() to
accept remarks hotness threshold. Update all the tools that use it with remarks
hotness threshold options:

* lld: '--opt-remarks-hotness-threshold='
* llvm-lto2: '--pass-remarks-hotness-threshold='
* llvm-lto: '--lto-pass-remarks-hotness-threshold='
* gold plugin: '-plugin-opt=opt-remarks-hotness-threshold='

Differential Revision: https://reviews.llvm.org/D85809


  Commit: 93dc1b5b8cb2f85d0d347f39e49a7150accd4e70
      https://github.com/llvm/llvm-project/commit/93dc1b5b8cb2f85d0d347f39e49a7150accd4e70
  Author: Wei Wang <apollo.mobility at gmail.com>
  Date:   2020-11-30 (Mon, 30 Nov 2020)

  Changed paths:
    M clang/include/clang/Basic/CodeGenOptions.def
    M clang/include/clang/Basic/CodeGenOptions.h
    M clang/include/clang/Basic/DiagnosticDriverKinds.td
    M clang/include/clang/Driver/Options.td
    M clang/lib/Frontend/CompilerInvocation.cpp
    M clang/test/Driver/opt-record.c
    A clang/test/Frontend/Inputs/remarks-hotness.prof
    A clang/test/Frontend/remarks-hotness.cpp
    M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
    M llvm/include/llvm/IR/LLVMContext.h
    M llvm/include/llvm/IR/Module.h
    M llvm/lib/Analysis/OptimizationRemarkEmitter.cpp
    M llvm/lib/IR/LLVMContext.cpp
    M llvm/lib/IR/LLVMRemarkStreamer.cpp
    M llvm/lib/IR/Module.cpp
    A llvm/test/Other/optimization-remarks-auto.ll
    A llvm/test/Transforms/SampleProfile/Inputs/remarks-hotness.prof
    A llvm/test/Transforms/SampleProfile/remarks-hotness.ll

  Log Message:
  -----------
  [Remarks][2/2] Expand remarks hotness threshold option support in more tools

This is the #2 of 2 changes that make remarks hotness threshold option
available in more tools. The changes also allow the threshold to sync with
hotness threshold from profile summary with special value 'auto'.

This change expands remarks hotness threshold option
-fdiagnostics-hotness-threshold in clang and *-remarks-hotness-threshold in
other tools to utilize hotness threshold from profile summary.

Remarks hotness filtering relies on several driver options. Table below lists
how different options are correlated and affect final remarks outputs:

| profile | hotness | threshold | remarks printed |
|---------|---------|-----------|-----------------|
| No      | No      | No        | All             |
| No      | No      | Yes       | None            |
| No      | Yes     | No        | All             |
| No      | Yes     | Yes       | None            |
| Yes     | No      | No        | All             |
| Yes     | No      | Yes       | None            |
| Yes     | Yes     | No        | All             |
| Yes     | Yes     | Yes       | >=threshold     |

In the presence of profile summary, it is often more desirable to directly use
the hotness threshold from profile summary. The new argument value 'auto'
indicates threshold will be synced with hotness threshold from profile summary
during compilation. The "auto" threshold relies on the availability of profile
summary. In case of missing such information, no remarks will be generated.

Differential Revision: https://reviews.llvm.org/D85808


Compare: https://github.com/llvm/llvm-project/compare/bcc802fa3624...93dc1b5b8cb2


More information about the All-commits mailing list