[llvm] r282503 - Revert "Output optimization remarks in YAML"

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 27 09:39:24 PDT 2016


Author: anemet
Date: Tue Sep 27 11:39:24 2016
New Revision: 282503

URL: http://llvm.org/viewvc/llvm-project?rev=282503&view=rev
Log:
Revert "Output optimization remarks in YAML"

This reverts commit r282499.

The GCC bots are failing

Removed:
    llvm/trunk/test/Transforms/Inline/optimization-remarks-yaml.ll
Modified:
    llvm/trunk/include/llvm/Analysis/OptimizationDiagnosticInfo.h
    llvm/trunk/include/llvm/IR/DiagnosticInfo.h
    llvm/trunk/include/llvm/IR/LLVMContext.h
    llvm/trunk/lib/Analysis/OptimizationDiagnosticInfo.cpp
    llvm/trunk/lib/IR/DiagnosticInfo.cpp
    llvm/trunk/lib/IR/LLVMContext.cpp
    llvm/trunk/lib/IR/LLVMContextImpl.h
    llvm/trunk/lib/Transforms/IPO/Inliner.cpp
    llvm/trunk/tools/opt/opt.cpp

Modified: llvm/trunk/include/llvm/Analysis/OptimizationDiagnosticInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/OptimizationDiagnosticInfo.h?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Analysis/OptimizationDiagnosticInfo.h (original)
+++ llvm/trunk/include/llvm/Analysis/OptimizationDiagnosticInfo.h Tue Sep 27 11:39:24 2016
@@ -17,7 +17,6 @@
 
 #include "llvm/ADT/Optional.h"
 #include "llvm/Analysis/BlockFrequencyInfo.h"
-#include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/PassManager.h"
 #include "llvm/Pass.h"
 
@@ -63,9 +62,6 @@ public:
     return *this;
   }
 
-  /// The new interface to emit remarks.
-  void emit(DiagnosticInfoOptimizationBase &OptDiag);
-
   /// Emit an optimization-applied message.
   ///
   /// \p PassName is the name of the pass emitting the message. If -Rpass= is
@@ -202,13 +198,8 @@ private:
   /// If we generate BFI on demand, we need to free it when ORE is freed.
   std::unique_ptr<BlockFrequencyInfo> OwnedBFI;
 
-  /// Compute hotness from IR value (currently assumed to be a block) if PGO is
-  /// available.
   Optional<uint64_t> computeHotness(const Value *V);
 
-  /// Similar but use value from \p OptDiag and update hotness there.
-  void computeHotness(DiagnosticInfoOptimizationBase &OptDiag);
-
   /// \brief Only allow verbose messages if we know we're filtering by hotness
   /// (BFI is only set in this case).
   bool shouldEmitVerbose() { return BFI != nullptr; }
@@ -217,14 +208,6 @@ private:
   void operator=(const OptimizationRemarkEmitter &) = delete;
 };
 
-/// \brief Add a small namespace to avoid name clashes with the classes used in
-/// the streaming interface.  We want these to be short for better
-/// write/readability.
-namespace ore {
-using NV = DiagnosticInfoOptimizationBase::Argument;
-using setIsVerbose = DiagnosticInfoOptimizationBase::setIsVerbose;
-}
-
 /// OptimizationRemarkEmitter legacy analysis pass
 ///
 /// Note that this pass shouldn't generally be marked as preserved by other

Modified: llvm/trunk/include/llvm/IR/DiagnosticInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/DiagnosticInfo.h?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/DiagnosticInfo.h (original)
+++ llvm/trunk/include/llvm/IR/DiagnosticInfo.h Tue Sep 27 11:39:24 2016
@@ -17,12 +17,10 @@
 
 #include "llvm-c/Types.h"
 #include "llvm/ADT/Optional.h"
-#include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/StringRef.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/IR/DebugLoc.h"
 #include "llvm/Support/CBindingWrapping.h"
-#include "llvm/Support/YAMLTraits.h"
 #include <functional>
 #include <string>
 
@@ -377,38 +375,6 @@ private:
 /// Common features for diagnostics dealing with optimization remarks.
 class DiagnosticInfoOptimizationBase : public DiagnosticInfoWithDebugLocBase {
 public:
-  /// \brief Used to set IsVerbose via the stream interface.
-  struct setIsVerbose {};
-
-  /// \brief Used in the streaming interface as the general argument type.  It
-  /// internally converts everything into a key-value pair.
-  struct Argument {
-    StringRef Key;
-    std::string Val;
-
-    explicit Argument(StringRef Str = "") : Key("String"), Val(Str) {}
-    explicit Argument(StringRef Key, Value *V) : Key(Key), Val(V->getName()) {}
-    explicit Argument(StringRef Key, int N)
-        : Key(Key), Val(std::to_string(N)) {}
-  };
-
-  /// \p PassName is the name of the pass emitting this diagnostic. \p
-  /// RemarkName is a textual identifier for the remark.  \p Fn is the function
-  /// where the diagnostic is being emitted. \p DLoc is the location information
-  /// to use in the diagnostic. If line table information is available, the
-  /// diagnostic will include the source code location. \p CodeRegion is IR
-  /// value (currently basic block) that the optimization operates on.  This is
-  /// currently used to provide run-time hotness information with PGO.
-  DiagnosticInfoOptimizationBase(enum DiagnosticKind Kind,
-                                 enum DiagnosticSeverity Severity,
-                                 const char *PassName, StringRef RemarkName,
-                                 const Function &Fn, const DebugLoc &DLoc,
-                                 Value *CodeRegion = nullptr)
-      : DiagnosticInfoWithDebugLocBase(Kind, Severity, Fn, DLoc),
-        PassName(PassName), RemarkName(RemarkName), CodeRegion(CodeRegion),
-        IsVerbose(false) {}
-
-  /// Legacy interface.
   /// \p PassName is the name of the pass emitting this diagnostic.
   /// \p Fn is the function where the diagnostic is being emitted. \p DLoc is
   /// the location information to use in the diagnostic. If line table
@@ -422,13 +388,7 @@ public:
                                  const DebugLoc &DLoc, const Twine &Msg,
                                  Optional<uint64_t> Hotness = None)
       : DiagnosticInfoWithDebugLocBase(Kind, Severity, Fn, DLoc),
-        PassName(PassName), Hotness(Hotness), IsVerbose(false) {
-    Args.push_back(Argument(Msg.str()));
-  }
-
-  DiagnosticInfoOptimizationBase &operator<<(StringRef S);
-  DiagnosticInfoOptimizationBase &operator<<(Argument A);
-  DiagnosticInfoOptimizationBase &operator<<(setIsVerbose V);
+        PassName(PassName), Msg(Msg), Hotness(Hotness) {}
 
   /// \see DiagnosticInfo::print.
   void print(DiagnosticPrinter &DP) const override;
@@ -441,13 +401,8 @@ public:
   virtual bool isEnabled() const = 0;
 
   const char *getPassName() const { return PassName; }
-  std::string getMsg() const;
+  const Twine &getMsg() const { return Msg; }
   Optional<uint64_t> getHotness() const { return Hotness; }
-  void setHotness(Optional<uint64_t> H) { Hotness = H; }
-
-  Value *getCodeRegion() const { return CodeRegion; }
-
-  bool isVerbose() const { return IsVerbose; }
 
   static bool classof(const DiagnosticInfo *DI) {
     return DI->getKind() >= DK_FirstRemark &&
@@ -460,25 +415,12 @@ private:
   /// be emitted.
   const char *PassName;
 
-  /// Textual identifier for the remark.  Can be used by external tools reading
-  /// the YAML output file for optimization remarks to identify the remark.
-  StringRef RemarkName;
+  /// Message to report.
+  const Twine &Msg;
 
   /// If profile information is available, this is the number of times the
   /// corresponding code was executed in a profile instrumentation run.
   Optional<uint64_t> Hotness;
-
-  /// The IR value (currently basic block) that the optimization operates on.
-  /// This is currently used to provide run-time hotness information with PGO.
-  Value *CodeRegion;
-
-  /// Arguments collected via the streaming interface.
-  SmallVector<Argument, 4> Args;
-
-  /// The remark is expected to be noisy.
-  bool IsVerbose;
-
-  friend struct yaml::MappingTraits<DiagnosticInfoOptimizationBase *>;
 };
 
 /// Diagnostic information for applied optimization remarks.
@@ -525,14 +467,6 @@ public:
       : DiagnosticInfoOptimizationBase(DK_OptimizationRemarkMissed, DS_Remark,
                                        PassName, Fn, DLoc, Msg, Hotness) {}
 
-  /// \p PassName is the name of the pass emitting this diagnostic. If this name
-  /// matches the regular expression given in -Rpass-missed=, then the
-  /// diagnostic will be emitted.  \p RemarkName is a textual identifier for the
-  /// remark.  \p Inst is the instruction that the optimization operates on.
-  DiagnosticInfoOptimizationRemarkMissed(const char *PassName,
-                                         StringRef RemarkName,
-                                         Instruction *Inst);
-
   static bool classof(const DiagnosticInfo *DI) {
     return DI->getKind() == DK_OptimizationRemarkMissed;
   }

Modified: llvm/trunk/include/llvm/IR/LLVMContext.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/LLVMContext.h?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/LLVMContext.h (original)
+++ llvm/trunk/include/llvm/IR/LLVMContext.h Tue Sep 27 11:39:24 2016
@@ -34,9 +34,6 @@ template <typename T> class SmallVectorI
 class Function;
 class DebugLoc;
 class OptBisect;
-namespace yaml {
-class Output;
-}
 
 /// This is an important class for using LLVM in a threaded context.  It
 /// (opaquely) owns and manages the core "global" data of LLVM's core
@@ -184,17 +181,6 @@ public:
   /// diagnostics.
   void setDiagnosticHotnessRequested(bool Requested);
 
-  /// \brief Return the YAML file used by the backend to save optimization
-  /// diagnostics.  If null, diagnostics are not saved in a file but only
-  /// emitted via the diagnostic handler.
-  yaml::Output *getDiagnosticsOutputFile();
-  /// Set the diagnostics output file used for optimization diagnostics.
-  ///
-  /// By default or if invoked with null, diagnostics are not saved in a file
-  /// but only emitted via the diagnostic handler.  Even if an output file is
-  /// set, the handler is invoked for each diagnostic message.
-  void setDiagnosticsOutputFile(yaml::Output *F);
-
   /// \brief Get the prefix that should be printed in front of a diagnostic of
   ///        the given \p Severity
   static const char *getDiagnosticMessagePrefix(DiagnosticSeverity Severity);

Modified: llvm/trunk/lib/Analysis/OptimizationDiagnosticInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/OptimizationDiagnosticInfo.cpp?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/OptimizationDiagnosticInfo.cpp (original)
+++ llvm/trunk/lib/Analysis/OptimizationDiagnosticInfo.cpp Tue Sep 27 11:39:24 2016
@@ -16,7 +16,6 @@
 #include "llvm/Analysis/BranchProbabilityInfo.h"
 #include "llvm/Analysis/LazyBlockFrequencyInfo.h"
 #include "llvm/Analysis/LoopInfo.h"
-#include "llvm/IR/DebugInfo.h"
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/Dominators.h"
 #include "llvm/IR/LLVMContext.h"
@@ -52,85 +51,6 @@ Optional<uint64_t> OptimizationRemarkEmi
   return BFI->getBlockProfileCount(cast<BasicBlock>(V));
 }
 
-template <> struct yaml::MappingTraits<DiagnosticInfoOptimizationBase *> {
-  static void mapping(IO &io, DiagnosticInfoOptimizationBase *&OptDiag) {
-    assert(io.outputting() && "input not yet implemented");
-
-    if (io.mapTag("!Missed", OptDiag->getKind() == DK_OptimizationRemarkMissed))
-      ;
-    else
-      llvm_unreachable("todo");
-
-    // These are read-only for now.
-    DebugLoc DL = OptDiag->getDebugLoc();
-    StringRef FN = OptDiag->getFunction().getName();
-
-    StringRef PassName(OptDiag->PassName);
-    io.mapRequired("Pass", PassName);
-    io.mapRequired("Name", OptDiag->RemarkName);
-    if (!io.outputting() || DL)
-      io.mapOptional("DebugLoc", DL);
-    io.mapRequired("Function", FN);
-    io.mapOptional("Hotness", OptDiag->Hotness);
-    io.mapOptional("Args", OptDiag->Args);
-  }
-};
-
-template <> struct yaml::MappingTraits<DebugLoc> {
-  static void mapping(IO &io, DebugLoc &DL) {
-    assert(io.outputting() && "input not yet implemented");
-
-    auto *Scope = cast<DIScope>(DL.getScope());
-    StringRef File = Scope->getFilename();
-    unsigned Line = DL.getLine();
-    unsigned Col = DL.getCol();
-
-    io.mapRequired("File", File);
-    io.mapRequired("Line", Line);
-    io.mapRequired("Column", Col);
-  }
-
-  static const bool flow = true;
-};
-
-template <>
-struct yaml::ScalarTraits<DiagnosticInfoOptimizationBase::Argument> {
-  static void output(const DiagnosticInfoOptimizationBase::Argument &Arg,
-                     void *, llvm::raw_ostream &out) {
-    out << Arg.Key << ": " << Arg.Val;
-  }
-
-  static StringRef input(StringRef scalar, void *,
-                         DiagnosticInfoOptimizationBase::Argument &Arg) {
-    llvm_unreachable("input not yet implemented");
-  }
-
-  static bool mustQuote(StringRef) { return false; }
-};
-
-LLVM_YAML_IS_SEQUENCE_VECTOR(DiagnosticInfoOptimizationBase::Argument)
-
-void OptimizationRemarkEmitter::computeHotness(
-    DiagnosticInfoOptimizationBase &OptDiag) {
-  Value *V = OptDiag.getCodeRegion();
-  if (V)
-    OptDiag.setHotness(computeHotness(V));
-}
-
-void OptimizationRemarkEmitter::emit(DiagnosticInfoOptimizationBase &OptDiag) {
-  computeHotness(OptDiag);
-
-  yaml::Output *Out = F->getContext().getDiagnosticsOutputFile();
-  if (Out && OptDiag.isEnabled()) {
-    auto *P = &const_cast<DiagnosticInfoOptimizationBase &>(OptDiag);
-    *Out << P;
-  }
-  // FIXME: now that IsVerbose is part of DI, filtering for this will be moved
-  // from here to clang.
-  if (!OptDiag.isVerbose() || shouldEmitVerbose())
-    F->getContext().diagnose(OptDiag);
-}
-
 void OptimizationRemarkEmitter::emitOptimizationRemark(const char *PassName,
                                                        const DebugLoc &DLoc,
                                                        const Value *V,

Modified: llvm/trunk/lib/IR/DiagnosticInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DiagnosticInfo.cpp?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/lib/IR/DiagnosticInfo.cpp (original)
+++ llvm/trunk/lib/IR/DiagnosticInfo.cpp Tue Sep 27 11:39:24 2016
@@ -181,13 +181,6 @@ bool DiagnosticInfoOptimizationRemark::i
          PassRemarksOptLoc.Pattern->match(getPassName());
 }
 
-DiagnosticInfoOptimizationRemarkMissed::DiagnosticInfoOptimizationRemarkMissed(
-    const char *PassName, StringRef RemarkName, Instruction *Inst)
-    : DiagnosticInfoOptimizationBase(DK_OptimizationRemarkMissed, DS_Remark,
-                                     PassName, RemarkName,
-                                     *Inst->getParent()->getParent(),
-                                     Inst->getDebugLoc(), Inst->getParent()) {}
-
 bool DiagnosticInfoOptimizationRemarkMissed::isEnabled() const {
   return PassRemarksMissedOptLoc.Pattern &&
          PassRemarksMissedOptLoc.Pattern->match(getPassName());
@@ -273,29 +266,3 @@ void llvm::emitLoopInterleaveWarning(LLV
 void DiagnosticInfoISelFallback::print(DiagnosticPrinter &DP) const {
   DP << "Instruction selection used fallback path for " << getFunction();
 }
-
-DiagnosticInfoOptimizationBase &DiagnosticInfoOptimizationBase::
-operator<<(StringRef S) {
-  Args.emplace_back(S);
-  return *this;
-}
-
-DiagnosticInfoOptimizationBase &DiagnosticInfoOptimizationBase::
-operator<<(Argument A) {
-  Args.push_back(std::move(A));
-  return *this;
-}
-
-DiagnosticInfoOptimizationBase &DiagnosticInfoOptimizationBase::
-operator<<(setIsVerbose V) {
-  IsVerbose = true;
-  return *this;
-}
-
-std::string DiagnosticInfoOptimizationBase::getMsg() const {
-  std::string Str;
-  raw_string_ostream OS(Str);
-  for (const DiagnosticInfoOptimizationBase::Argument &Arg : Args)
-    OS << Arg.Val;
-  return OS.str();
-}

Modified: llvm/trunk/lib/IR/LLVMContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/LLVMContext.cpp?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/lib/IR/LLVMContext.cpp (original)
+++ llvm/trunk/lib/IR/LLVMContext.cpp Tue Sep 27 11:39:24 2016
@@ -203,14 +203,6 @@ bool LLVMContext::getDiagnosticHotnessRe
   return pImpl->DiagnosticHotnessRequested;
 }
 
-yaml::Output *LLVMContext::getDiagnosticsOutputFile() {
-  return pImpl->DiagnosticsOutputFile.get();
-}
-
-void LLVMContext::setDiagnosticsOutputFile(yaml::Output *F) {
-  pImpl->DiagnosticsOutputFile.reset(F);
-}
-
 LLVMContext::DiagnosticHandlerTy LLVMContext::getDiagnosticHandler() const {
   return pImpl->DiagnosticHandler;
 }

Modified: llvm/trunk/lib/IR/LLVMContextImpl.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/LLVMContextImpl.h?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/lib/IR/LLVMContextImpl.h (original)
+++ llvm/trunk/lib/IR/LLVMContextImpl.h Tue Sep 27 11:39:24 2016
@@ -33,7 +33,6 @@
 #include "llvm/IR/Metadata.h"
 #include "llvm/IR/ValueHandle.h"
 #include "llvm/Support/Dwarf.h"
-#include "llvm/Support/YAMLTraits.h"
 #include <vector>
 
 namespace llvm {
@@ -1044,7 +1043,6 @@ public:
   void *DiagnosticContext;
   bool RespectDiagnosticFilters;
   bool DiagnosticHotnessRequested;
-  std::unique_ptr<yaml::Output> DiagnosticsOutputFile;
 
   LLVMContext::YieldCallbackTy YieldCallback;
   void *YieldOpaqueHandle;

Modified: llvm/trunk/lib/Transforms/IPO/Inliner.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/Inliner.cpp?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/Inliner.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/Inliner.cpp Tue Sep 27 11:39:24 2016
@@ -469,15 +469,13 @@ inlineCallsImpl(CallGraphSCC &SCC, CallG
         // direct call, so we keep it.
         if (Function *Callee = CS.getCalledFunction())
           if (Callee->isDeclaration()) {
-            ORE.emitOptimizationRemarkAnalysis(
-                DEBUG_TYPE, &I, Twine("definition of ") + Callee->getName() +
-                                    " is not available",
+            ORE.emitOptimizationRemarkMissedAndAnalysis(
+                DEBUG_TYPE, &I,
+                Twine(Callee->getName()) + " will not be inlined into " +
+                    CS.getCaller()->getName(),
+                Twine("definition of ") + Callee->getName() +
+                    " is not available",
                 /*Verbose=*/true);
-            using namespace ore;
-            ORE.emit(DiagnosticInfoOptimizationRemarkMissed(DEBUG_TYPE,
-                                                            "NotInlined", &I)
-                     << NV("Callee", Callee) << " will not be inlined into "
-                     << NV("Caller", CS.getCaller()) << setIsVerbose());
             continue;
           }
 

Removed: llvm/trunk/test/Transforms/Inline/optimization-remarks-yaml.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/Inline/optimization-remarks-yaml.ll?rev=282502&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/Inline/optimization-remarks-yaml.ll (original)
+++ llvm/trunk/test/Transforms/Inline/optimization-remarks-yaml.ll (removed)
@@ -1,76 +0,0 @@
-; RUN: opt < %s -inline -pass-remarks-missed=inline -pass-remarks-with-hotness \
-; RUN:     -pass-remarks-output=%t 2>&1 | FileCheck %s
-; RUN: cat %t | FileCheck -check-prefix=YAML %s
-
-; Check the YAML file generated for inliner remarks for this program:
-;
-;   1  int foo();
-;   2  int bar();
-;   3
-;   4  int baz() {
-;   5    return foo() + bar();
-;   6  }
-
-; CHECK:      remark: /tmp/s.c:5:10: foo will not be inlined into baz (hotness: 30)
-; CHECK-NEXT: remark: /tmp/s.c:5:18: bar will not be inlined into baz (hotness: 30)
-
-; YAML:      --- !Missed
-; YAML-NEXT: Pass:            inline
-; YAML-NEXT: Name:            NotInlined
-; YAML-NEXT: DebugLoc:        { File: /tmp/s.c, Line: 5, Column: 10 }
-; YAML-NEXT: Function:        baz
-; YAML-NEXT: Hotness:         30
-; YAML-NEXT: Args:
-; YAML-NEXT:   - Callee: foo
-; YAML-NEXT:   - String:  will not be inlined into
-; YAML-NEXT:   - Caller: baz
-; YAML-NEXT: ...
-; YAML-NEXT: --- !Missed
-; YAML-NEXT: Pass:            inline
-; YAML-NEXT: Name:            NotInlined
-; YAML-NEXT: DebugLoc:        { File: /tmp/s.c, Line: 5, Column: 18 }
-; YAML-NEXT: Function:        baz
-; YAML-NEXT: Hotness:         30
-; YAML-NEXT: Args:
-; YAML-NEXT:   - Callee: bar
-; YAML-NEXT:   - String:  will not be inlined into
-; YAML-NEXT:   - Caller: baz
-; YAML-NEXT: ...
-
-; ModuleID = '/tmp/s.c'
-source_filename = "/tmp/s.c"
-target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-apple-macosx10.11.0"
-
-; Function Attrs: nounwind ssp uwtable
-define i32 @baz() !dbg !7 !prof !14 {
-entry:
-  %call = call i32 (...) @foo(), !dbg !9
-  %call1 = call i32 (...) @bar(), !dbg !10
-  %add = add nsw i32 %call, %call1, !dbg !12
-  ret i32 %add, !dbg !13
-}
-
-declare i32 @foo(...)
-
-declare i32 @bar(...)
-
-!llvm.dbg.cu = !{!0}
-!llvm.module.flags = !{!3, !4, !5}
-!llvm.ident = !{!6}
-
-!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "clang version 4.0.0 (trunk 281293) (llvm/trunk 281290)", isOptimized: true, runtimeVersion: 0, emissionKind: LineTablesOnly, enums: !2)
-!1 = !DIFile(filename: "/tmp/s.c", directory: "/tmp")
-!2 = !{}
-!3 = !{i32 2, !"Dwarf Version", i32 4}
-!4 = !{i32 2, !"Debug Info Version", i32 3}
-!5 = !{i32 1, !"PIC Level", i32 2}
-!6 = !{!"clang version 4.0.0 (trunk 281293) (llvm/trunk 281290)"}
-!7 = distinct !DISubprogram(name: "baz", scope: !1, file: !1, line: 4, type: !8, isLocal: false, isDefinition: true, scopeLine: 4, isOptimized: true, unit: !0, variables: !2)
-!8 = !DISubroutineType(types: !2)
-!9 = !DILocation(line: 5, column: 10, scope: !7)
-!10 = !DILocation(line: 5, column: 18, scope: !11)
-!11 = !DILexicalBlockFile(scope: !7, file: !1, discriminator: 1)
-!12 = !DILocation(line: 5, column: 16, scope: !7)
-!13 = !DILocation(line: 5, column: 3, scope: !7)
-!14 = !{!"function_entry_count", i64 30}

Modified: llvm/trunk/tools/opt/opt.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/opt/opt.cpp?rev=282503&r1=282502&r2=282503&view=diff
==============================================================================
--- llvm/trunk/tools/opt/opt.cpp (original)
+++ llvm/trunk/tools/opt/opt.cpp Tue Sep 27 11:39:24 2016
@@ -49,7 +49,6 @@
 #include "llvm/Support/TargetRegistry.h"
 #include "llvm/Support/TargetSelect.h"
 #include "llvm/Support/ToolOutputFile.h"
-#include "llvm/Support/YAMLTraits.h"
 #include "llvm/Target/TargetMachine.h"
 #include "llvm/Transforms/Coroutines.h"
 #include "llvm/Transforms/IPO/AlwaysInliner.h"
@@ -232,11 +231,6 @@ static cl::opt<bool> PassRemarksWithHotn
     cl::desc("With PGO, include profile count in optimization remarks"),
     cl::Hidden);
 
-static cl::opt<std::string>
-    RemarksFilename("pass-remarks-output",
-                    cl::desc("YAML output filename for pass remarks"),
-                    cl::value_desc("filename"));
-
 static inline void addPass(legacy::PassManagerBase &PM, Pass *P) {
   // Add the pass to the pass manager...
   PM.add(P);
@@ -414,18 +408,6 @@ int main(int argc, char **argv) {
   if (PassRemarksWithHotness)
     Context.setDiagnosticHotnessRequested(true);
 
-  std::unique_ptr<tool_output_file> YamlFile;
-  if (RemarksFilename != "") {
-    std::error_code EC;
-    YamlFile = llvm::make_unique<tool_output_file>(RemarksFilename, EC,
-                                                   sys::fs::F_None);
-    if (EC) {
-      errs() << EC.message() << '\n';
-      return 1;
-    }
-    Context.setDiagnosticsOutputFile(new yaml::Output(YamlFile->os()));
-  }
-
   // Load the input module...
   std::unique_ptr<Module> M = parseIRFile(InputFilename, Err, Context);
 
@@ -734,8 +716,6 @@ int main(int argc, char **argv) {
                 "the compile-twice option\n";
       Out->os() << BOS->str();
       Out->keep();
-      if (YamlFile)
-        YamlFile->keep();
       return 1;
     }
     Out->os() << BOS->str();
@@ -745,8 +725,5 @@ int main(int argc, char **argv) {
   if (!NoOutput || PrintBreakpoints)
     Out->keep();
 
-  if (YamlFile)
-    YamlFile->keep();
-
   return 0;
 }




More information about the llvm-commits mailing list