Revert "[LTO] Support filtering by hotness threshold"

This reverts commit 1f3bd185c53beb6aa68446974b7e80837abd6ef0 (r326107)
because it fails
ThinLTO/X86/diagnostic-handler-remarks-with-hotness.ll.

llvm-svn: 326975
This commit is contained in:
Bob Haarman 2018-03-08 01:13:10 +00:00
parent 0e7b0fcc48
commit 6f58d8aefa
8 changed files with 11 additions and 65 deletions

View File

@ -79,10 +79,6 @@ struct Config {
/// Whether to emit optimization remarks with hotness informations.
bool RemarksWithHotness = false;
/// The minimum hotness value a diagnostic needs in order to be included in
/// optimization diagnostics.
unsigned RemarksHotnessThreshold = 0;
/// Whether to emit the pass manager debuggging informations.
bool DebugPassManager = false;

View File

@ -73,9 +73,7 @@ std::string getThinLTOOutputFile(const std::string &Path,
/// Setup optimization remarks.
Expected<std::unique_ptr<ToolOutputFile>>
setupOptimizationRemarks(LLVMContext &Context, StringRef LTORemarksFilename,
bool LTOPassRemarksWithHotness,
unsigned LTOPassRemarksHotnessThreshold,
int Count = -1);
bool LTOPassRemarksWithHotness, int Count = -1);
class LTO;
struct SymbolResolution;

View File

@ -1202,10 +1202,10 @@ Error LTO::runThinLTO(AddStreamFn AddStream, NativeObjectCache Cache) {
return BackendProc->wait();
}
Expected<std::unique_ptr<ToolOutputFile>> lto::setupOptimizationRemarks(
LLVMContext &Context, StringRef LTORemarksFilename,
bool LTOPassRemarksWithHotness, unsigned LTOPassRemarksHotnessThreshold,
int Count) {
Expected<std::unique_ptr<ToolOutputFile>>
lto::setupOptimizationRemarks(LLVMContext &Context,
StringRef LTORemarksFilename,
bool LTOPassRemarksWithHotness, int Count) {
if (LTORemarksFilename.empty())
return nullptr;
@ -1222,8 +1222,6 @@ Expected<std::unique_ptr<ToolOutputFile>> lto::setupOptimizationRemarks(
llvm::make_unique<yaml::Output>(DiagnosticFile->os()));
if (LTOPassRemarksWithHotness)
Context.setDiagnosticsHotnessRequested(true);
if (LTOPassRemarksHotnessThreshold)
Context.setDiagnosticsHotnessThreshold(LTOPassRemarksHotnessThreshold);
DiagnosticFile->keep();
return std::move(DiagnosticFile);
}

View File

@ -376,8 +376,7 @@ Error lto::backend(Config &C, AddStreamFn AddStream,
// Setup optimization remarks.
auto DiagFileOrErr = lto::setupOptimizationRemarks(
Mod->getContext(), C.RemarksFilename, C.RemarksWithHotness,
C.RemarksHotnessThreshold);
Mod->getContext(), C.RemarksFilename, C.RemarksWithHotness);
if (!DiagFileOrErr)
return DiagFileOrErr.takeError();
auto DiagnosticOutputFile = std::move(*DiagFileOrErr);

View File

@ -89,12 +89,6 @@ cl::opt<bool> LTOPassRemarksWithHotness(
"lto-pass-remarks-with-hotness",
cl::desc("With PGO, include profile count in optimization remarks"),
cl::Hidden);
cl::opt<unsigned> LTOPassRemarksHotnessThreshold(
"lto-pass-remarks-hotness-threshold",
cl::desc("Minimum profile count required for an optimization remark to be "
"output"),
cl::Hidden);
}
LTOCodeGenerator::LTOCodeGenerator(LLVMContext &Context)
@ -511,8 +505,7 @@ bool LTOCodeGenerator::optimize(bool DisableVerify, bool DisableInline,
return false;
auto DiagFileOrErr = lto::setupOptimizationRemarks(
Context, LTORemarksFilename, LTOPassRemarksWithHotness,
LTOPassRemarksHotnessThreshold);
Context, LTORemarksFilename, LTOPassRemarksWithHotness);
if (!DiagFileOrErr) {
errs() << "Error: " << toString(DiagFileOrErr.takeError()) << "\n";
report_fatal_error("Can't get an output file for the remarks");

View File

@ -63,7 +63,6 @@ namespace llvm {
extern cl::opt<bool> LTODiscardValueNames;
extern cl::opt<std::string> LTORemarksFilename;
extern cl::opt<bool> LTOPassRemarksWithHotness;
extern cl::opt<unsigned> LTOPassRemarksHotnessThreshold;
}
namespace {
@ -999,8 +998,7 @@ void ThinLTOCodeGenerator::run() {
Context.setDiscardValueNames(LTODiscardValueNames);
Context.enableDebugTypeODRUniquing();
auto DiagFileOrErr = lto::setupOptimizationRemarks(
Context, LTORemarksFilename, LTOPassRemarksWithHotness,
LTOPassRemarksHotnessThreshold, count);
Context, LTORemarksFilename, LTOPassRemarksWithHotness, count);
if (!DiagFileOrErr) {
errs() << "Error: " << toString(DiagFileOrErr.takeError()) << "\n";
report_fatal_error("ThinLTO: Can't get an output file for the "

View File

@ -8,18 +8,6 @@
; RUN: -exported-symbol _main -o %t.o %t.bc
; RUN: cat %t.yaml | FileCheck -check-prefix=YAML %s
; RUN: llvm-lto -lto-pass-remarks-output=%t.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -lto-pass-remarks-hotness-threshold=400 \
; RUN: -exported-symbol _main -o %t.o %t.bc
; RUN: cat %t.yaml | FileCheck -allow-empty -check-prefix=YAML_TH_HIGH %s
; RUN: llvm-lto -lto-pass-remarks-output=%t.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -lto-pass-remarks-hotness-threshold=200 \
; RUN: -exported-symbol _main -o %t.o %t.bc
; RUN: cat %t.yaml | FileCheck -allow-empty -check-prefix=YAML %s
; YAML: --- !Passed
; YAML-NEXT: Pass: inline
; YAML-NEXT: Name: Inlined
@ -36,9 +24,6 @@
; YAML-NEXT: - String: ')'
; YAML-NEXT: ...
; YAML_TH_HIGH-NOT: Name: Inlined
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin"

View File

@ -5,7 +5,7 @@
; with -lto-pass-remarks-with-hotness.
; RUN: llvm-lto -thinlto-action=run \
; RUN: -lto-pass-remarks-output=%t-no-th.yaml \
; RUN: -lto-pass-remarks-output=%t.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -exported-symbol _func2 \
; RUN: -exported-symbol _main %t1.bc %t2.bc 2>&1 | \
@ -13,25 +13,9 @@
; CHECK-NOT: remark:
; CHECK-NOT: llvm-lto:
; RUN: llvm-lto -thinlto-action=run \
; RUN: -lto-pass-remarks-output=%t-low-th.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -lto-pass-remarks-hotness-threshold=20 \
; RUN: -exported-symbol _func2 \
; RUN: -exported-symbol _main %t1.bc %t2.bc 2>&1 | \
; RUN: llvm-lto -thinlto-action=run \
; RUN: -lto-pass-remarks-output=%t-high-th.yaml \
; RUN: -lto-pass-remarks-with-hotness \
; RUN: -lto-pass-remarks-hotness-threshold=100 \
; RUN: -exported-symbol _func2 \
; RUN: -exported-symbol _main %t1.bc %t2.bc 2>&1 | \
; Verify that bar is imported and inlined into foo
; RUN: cat %t-no-th.yaml.thin.0.yaml | FileCheck %s -check-prefix=YAML1
; RUN: cat %t-low-th.yaml.thin.0.yaml | FileCheck %s -check-prefix=YAML1
; RUN: cat %t-high-th.yaml.thin.0.yaml | FileCheck %s -allow-empty -check-prefix=YAML1_TH_HIGH
; RUN: cat %t.yaml.thin.0.yaml | FileCheck %s -check-prefix=YAML1
; YAML1: --- !Passed
; YAML1-NEXT: Pass: inline
; YAML1-NEXT: Name: Inlined
@ -48,13 +32,9 @@
; YAML1-NEXT: - String: ')'
; YAML1-NEXT: ...
; YAML1_TH_HIGH-NOT: Name: Inlined
; Verify that bar is imported and inlined into foo
; RUN: cat %t-no-th.yaml.thin.1.yaml | FileCheck %s -check-prefix=YAML2
; RUN: cat %t-low-th.yaml.thin.1.yaml | FileCheck %s -allow-empty -check-prefix=YAML2_TH_HIGH
; RUN: cat %t-high-th.yaml.thin.1.yaml | FileCheck %s -allow-empty -check-prefix=YAML2_TH_HIGH
; RUN: cat %t.yaml.thin.1.yaml | FileCheck %s -check-prefix=YAML2
; YAML2: --- !Passed
; YAML2-NEXT: Pass: inline
; YAML2-NEXT: Name: Inlined
@ -70,7 +50,6 @@
; YAML2-NEXT: - String: ')'
; YAML2-NEXT: ...
; YAML2_TH_HIGH-NOT: Name: Inlined
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.11.0"