From d4298b95a4d6b833731f9f9e8e369fbef1f0dd42 Mon Sep 17 00:00:00 2001 From: Francis Visoiu Mistrih Date: Tue, 12 Mar 2019 20:54:18 +0000 Subject: Revert "[Remarks] Add -foptimization-record-passes to filter remark emission" This reverts commit 20fff32b7d1f1a1bd417b22aa9f26ededd97a3e5. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@355976 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Basic/CodeGenOptions.h | 4 ---- include/clang/Driver/CC1Options.td | 2 -- include/clang/Driver/Options.td | 4 ---- lib/CodeGen/BackendUtil.cpp | 1 - lib/CodeGen/CodeGenAction.cpp | 7 ------- lib/Driver/ToolChains/Clang.cpp | 8 -------- lib/Driver/ToolChains/Darwin.cpp | 8 -------- lib/Frontend/CompilerInvocation.cpp | 5 ----- test/CodeGen/opt-record-MIR.c | 11 +++-------- test/CodeGen/opt-record.c | 5 +---- test/Driver/darwin-ld.c | 4 ---- test/Driver/opt-record.c | 9 --------- 12 files changed, 4 insertions(+), 64 deletions(-) diff --git a/include/clang/Basic/CodeGenOptions.h b/include/clang/Basic/CodeGenOptions.h index 200706fda7..fc284f8c67 100644 --- a/include/clang/Basic/CodeGenOptions.h +++ b/include/clang/Basic/CodeGenOptions.h @@ -238,10 +238,6 @@ public: /// records. std::string OptRecordFile; - /// The regex that filters the passes that should be saved to the optimization - /// records. - std::string OptRecordPasses; - /// Regular expression to select optimizations for which we should enable /// optimization remarks. Transformation passes whose name matches this /// expression (and support this feature), will emit a diagnostic diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Options.td index 2825a92779..f4f8fae39e 100644 --- a/include/clang/Driver/CC1Options.td +++ b/include/clang/Driver/CC1Options.td @@ -603,8 +603,6 @@ def arcmt_migrate : Flag<["-"], "arcmt-migrate">, def opt_record_file : Separate<["-"], "opt-record-file">, HelpText<"File name to use for YAML optimization record output">; -def opt_record_passes : Separate<["-"], "opt-record-passes">, - HelpText<"Only record remark information for passes whose names match the given regular expression">; def print_stats : Flag<["-"], "print-stats">, HelpText<"Print performance metrics and statistics">; diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 0f05effe27..81e4ce75b0 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -1715,10 +1715,6 @@ def fno_save_optimization_record : Flag<["-"], "fno-save-optimization-record">, def foptimization_record_file_EQ : Joined<["-"], "foptimization-record-file=">, Group, HelpText<"Specify the file name of any generated YAML optimization record">; -def foptimization_record_passes_EQ : Joined<["-"], "foptimization-record-passes=">, - Group, - HelpText<"Only include passes which match a specified regular expression in the generated optimization record (by default, include all passes)">; - def ftest_coverage : Flag<["-"], "ftest-coverage">, Group; def fvectorize : Flag<["-"], "fvectorize">, Group, diff --git a/lib/CodeGen/BackendUtil.cpp b/lib/CodeGen/BackendUtil.cpp index 34705ad8ff..30a3dc830f 100644 --- a/lib/CodeGen/BackendUtil.cpp +++ b/lib/CodeGen/BackendUtil.cpp @@ -1340,7 +1340,6 @@ static void runThinLTOBackend(ModuleSummaryIndex *CombinedIndex, Module *M, Conf.DebugPassManager = CGOpts.DebugPassManager; Conf.RemarksWithHotness = CGOpts.DiagnosticsWithHotness; Conf.RemarksFilename = CGOpts.OptRecordFile; - Conf.RemarksPasses = CGOpts.OptRecordPasses; Conf.DwoPath = CGOpts.SplitDwarfFile; switch (Action) { case Backend_EmitNothing: diff --git a/lib/CodeGen/CodeGenAction.cpp b/lib/CodeGen/CodeGenAction.cpp index cab3a6bc32..f59adcd3fb 100644 --- a/lib/CodeGen/CodeGenAction.cpp +++ b/lib/CodeGen/CodeGenAction.cpp @@ -19,7 +19,6 @@ #include "clang/Basic/TargetInfo.h" #include "clang/CodeGen/BackendUtil.h" #include "clang/CodeGen/ModuleBuilder.h" -#include "clang/Driver/DriverDiagnostic.h" #include "clang/Frontend/CompilerInstance.h" #include "clang/Frontend/FrontendDiagnostic.h" #include "clang/Lex/Preprocessor.h" @@ -281,12 +280,6 @@ namespace clang { Ctx.setRemarkStreamer(llvm::make_unique( CodeGenOpts.OptRecordFile, OptRecordFile->os())); - if (!CodeGenOpts.OptRecordPasses.empty()) - if (Error E = Ctx.getRemarkStreamer()->setFilter( - CodeGenOpts.OptRecordPasses)) - Diags.Report(diag::err_drv_optimization_remark_pattern) - << toString(std::move(E)) << CodeGenOpts.OptRecordPasses; - if (CodeGenOpts.getProfileUse() != CodeGenOptions::ProfileNone) Ctx.setDiagnosticsHotnessRequested(true); } diff --git a/lib/Driver/ToolChains/Clang.cpp b/lib/Driver/ToolChains/Clang.cpp index bf9ab9dd10..3bc7412911 100644 --- a/lib/Driver/ToolChains/Clang.cpp +++ b/lib/Driver/ToolChains/Clang.cpp @@ -5032,11 +5032,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, options::OPT_fno_apple_pragma_pack, false)) CmdArgs.push_back("-fapple-pragma-pack"); - // Remarks can be enabled with any of the `-f.*optimization-record.*` flags. if (Args.hasFlag(options::OPT_fsave_optimization_record, options::OPT_foptimization_record_file_EQ, - options::OPT_fno_save_optimization_record, false) || - Args.hasFlag(options::OPT_foptimization_record_passes_EQ, options::OPT_fno_save_optimization_record, false)) { CmdArgs.push_back("-opt-record-file"); @@ -5071,11 +5068,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, llvm::sys::path::replace_extension(F, "opt.yaml"); CmdArgs.push_back(Args.MakeArgString(F)); } - if (const Arg *A = - Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) { - CmdArgs.push_back("-opt-record-passes"); - CmdArgs.push_back(A->getValue()); - } } bool RewriteImports = Args.hasFlag(options::OPT_frewrite_imports, diff --git a/lib/Driver/ToolChains/Darwin.cpp b/lib/Driver/ToolChains/Darwin.cpp index f91ab1946f..ea93fadcdc 100644 --- a/lib/Driver/ToolChains/Darwin.cpp +++ b/lib/Driver/ToolChains/Darwin.cpp @@ -483,14 +483,6 @@ void darwin::Linker::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back(Args.MakeArgString(Opt)); } } - - if (const Arg *A = - Args.getLastArg(options::OPT_foptimization_record_passes_EQ)) { - CmdArgs.push_back("-mllvm"); - std::string Passes = - std::string("-lto-pass-remarks-filter=") + A->getValue(); - CmdArgs.push_back(Args.MakeArgString(Passes)); - } } // Propagate the -moutline flag to the linker in LTO. diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp index b5872b961c..1cd1cb1ff4 100644 --- a/lib/Frontend/CompilerInvocation.cpp +++ b/lib/Frontend/CompilerInvocation.cpp @@ -1218,11 +1218,6 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK, if (!Opts.OptRecordFile.empty()) NeedLocTracking = true; - if (Arg *A = Args.getLastArg(OPT_opt_record_passes)) { - Opts.OptRecordPasses = A->getValue(); - NeedLocTracking = true; - } - if (Arg *A = Args.getLastArg(OPT_Rpass_EQ)) { Opts.OptimizationRemarkPattern = GenerateOptimizationRemarkRegex(Diags, Args, A); diff --git a/test/CodeGen/opt-record-MIR.c b/test/CodeGen/opt-record-MIR.c index f9b4e74580..37239281e9 100644 --- a/test/CodeGen/opt-record-MIR.c +++ b/test/CodeGen/opt-record-MIR.c @@ -3,8 +3,6 @@ // RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 -dwarf-column-info 2>&1 | FileCheck -allow-empty -check-prefix=NO_REMARK %s // RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 -dwarf-column-info -opt-record-file %t.yaml // RUN: cat %t.yaml | FileCheck -check-prefix=YAML %s -// RUN: %clang_cc1 -triple arm64-apple-ios -S -o /dev/null %s -O2 -dwarf-column-info -opt-record-file %t.yaml -opt-record-passes asm-printer -// RUN: cat %t.yaml | FileCheck -check-prefix=PASSES %s void bar(float); @@ -17,15 +15,15 @@ void foo(float *p, int i) { } } -// REMARK: opt-record-MIR.c:{{[1-9][0-9]*}}:{{[1-9][0-9]*}}: remark: {{.}} spills {{.}} reloads generated in loop +// REMARK: opt-record-MIR.c:10:11: remark: {{.}} spills {{.}} reloads generated in loop // NO_REMARK-NOT: remark: // YAML: --- !Missed // YAML: Pass: regalloc // YAML: Name: LoopSpillReload // YAML: DebugLoc: { File: {{[^,]+}}, -// YAML: Line: {{[1-9][0-9]*}} -// YAML: Column: {{[1-9][0-9]*}} } +// YAML: Line: 10, +// YAML: Column: 11 } // YAML: Function: foo // YAML: Args: // YAML: - NumSpills: '{{.}}' @@ -34,6 +32,3 @@ void foo(float *p, int i) { // YAML: - String: ' reloads ' // YAML: - String: generated // YAML: ... - -// PASSES: Pass: asm-printer -// PASSES-NOT: regalloc diff --git a/test/CodeGen/opt-record.c b/test/CodeGen/opt-record.c index 3f134854fe..3bc3c41f78 100644 --- a/test/CodeGen/opt-record.c +++ b/test/CodeGen/opt-record.c @@ -3,8 +3,6 @@ // RUN: llvm-profdata merge %S/Inputs/opt-record.proftext -o %t.profdata // RUN: %clang_cc1 -O3 -triple x86_64-unknown-linux-gnu -target-cpu x86-64 -fprofile-instrument-use-path=%t.profdata %s -o %t -dwarf-column-info -opt-record-file %t.yaml -emit-obj // RUN: cat %t.yaml | FileCheck -check-prefix=CHECK -check-prefix=CHECK-PGO %s -// RUN: %clang_cc1 -O3 -triple x86_64-unknown-linux-gnu -target-cpu x86-64 %s -o %t -dwarf-column-info -opt-record-file %t.yaml -opt-record-passes inline -emit-obj -// RUN: cat %t.yaml | FileCheck -check-prefix=CHECK-PASSES %s // REQUIRES: x86-registered-target void bar(); @@ -25,7 +23,6 @@ void Test(int *res, int *c, int *d, int *p, int n) { // CHECK: DebugLoc: // CHECK: Function: foo // CHECK-PGO: Hotness: -// CHECK-PASSES: Pass: inline // CHECK: --- !Passed // CHECK: Pass: loop-vectorize @@ -33,4 +30,4 @@ void Test(int *res, int *c, int *d, int *p, int n) { // CHECK: DebugLoc: // CHECK: Function: Test // CHECK-PGO: Hotness: -// CHECK-PASSES-NOT: loop-vectorize + diff --git a/test/Driver/darwin-ld.c b/test/Driver/darwin-ld.c index b120bbe8a3..181d4e324c 100644 --- a/test/Driver/darwin-ld.c +++ b/test/Driver/darwin-ld.c @@ -327,10 +327,6 @@ // RUN: FileCheck -check-prefix=PASS_REMARKS_WITH_HOTNESS_THRESHOLD %s < %t.log // PASS_REMARKS_WITH_HOTNESS_THRESHOLD: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.yaml" "-mllvm" "-lto-pass-remarks-with-hotness" "-mllvm" "-lto-pass-remarks-hotness-threshold=100" -// RUN: %clang -target x86_64-apple-darwin12 %t.o -fsave-optimization-record -foptimization-record-passes=inline -### -o foo/bar.out 2> %t.log -// RUN: FileCheck -check-prefix=PASS_REMARKS_WITH_PASSES %s < %t.log -// PASS_REMARKS_WITH_PASSES: "-mllvm" "-lto-pass-remarks-output" "-mllvm" "foo/bar.out.opt.yaml" "-mllvm" "-lto-pass-remarks-filter=inline" - // RUN: %clang -target x86_64-apple-ios6.0 -miphoneos-version-min=6.0 -fprofile-instr-generate -### %t.o 2> %t.log // RUN: FileCheck -check-prefix=LINK_PROFILE_FIRST %s < %t.log // RUN: %clang -target x86_64-apple-darwin12 -fprofile-instr-generate -### %t.o 2> %t.log diff --git a/test/Driver/opt-record.c b/test/Driver/opt-record.c index 44ad4a2a6b..7b4ec48632 100644 --- a/test/Driver/opt-record.c +++ b/test/Driver/opt-record.c @@ -12,10 +12,6 @@ // RUN: %clang -### -S -o FOO -foptimization-record-file=BAR.txt %s 2>&1 | FileCheck %s -check-prefix=CHECK-EQ // RUN: %clang -### -S -o FOO -foptimization-record-file=BAR.txt -fno-save-optimization-record %s 2>&1 | FileCheck %s --check-prefix=CHECK-FOPT-DISABLE -// RUN: %clang -### -S -o FOO -fsave-optimization-record -foptimization-record-passes=inline %s 2>&1 | FileCheck %s -check-prefix=CHECK-EQ-PASSES -// RUN: %clang -### -S -o FOO -foptimization-record-passes=inline %s 2>&1 | FileCheck %s -check-prefix=CHECK-EQ-PASSES -// RUN: %clang -### -S -o FOO -foptimization-record-passes=inline -fno-save-optimization-record %s 2>&1 | FileCheck %s --check-prefix=CHECK-FOPT-DISABLE-PASSES -// // CHECK: "-cc1" // CHECK: "-opt-record-file" "FOO.opt.yaml" @@ -27,8 +23,3 @@ // CHECK-EQ: "-opt-record-file" "BAR.txt" // CHECK-FOPT-DISABLE-NOT: "-fno-save-optimization-record" - -// CHECK-EQ-PASSES: "-cc1" -// CHECK-EQ-PASSES: "-opt-record-passes" "inline" - -// CHECK-FOPT-DISABLE-PASSES-NOT: "-fno-save-optimization-record" -- cgit v1.2.3