<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Dec 16, 2013, at 5:40 PM, Hal Finkel <<a href="mailto:hfinkel@anl.gov">hfinkel@anl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">----- Original Message -----<br><blockquote type="cite">From: "Quentin Colombet" <<a href="mailto:qcolombet@apple.com">qcolombet@apple.com</a>><br>To:<span class="Apple-converted-space"> </span><a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>Sent: Monday, December 16, 2013 7:19:59 PM<br>Subject: [llvm] r197451 - Revert r197438 and r197447 until we figure out how<span class="Apple-tab-span" style="white-space: pre;">   </span>to avoid circular dependency at link<br>time<br><br>Author: qcolombet<br>Date: Mon Dec 16 19:19:59 2013<br>New Revision: 197451<br><br>URL:<span class="Apple-converted-space"> </span><a href="http://llvm.org/viewvc/llvm-project?rev=197451&view=rev">http://llvm.org/viewvc/llvm-project?rev=197451&view=rev</a><br>Log:<br>Revert r197438 and r197447 until we figure out how to avoid circular<br>dependency at link time<br></blockquote><br>What is the dependency cycle?<br></div></blockquote><div>IR <-> Support.</div><div><br></div><div>DiagnosticInfoInlineAsm uses Instruction.</div><div>And the IR uses Support obviously :).</div><div><br></div><div>The plan is to move all the diagnostic stuff into IR.</div><div><br></div><div apple-content-edited="true"><div style="orphans: 2; text-align: -webkit-auto; widows: 2; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">-Quentin</div><div><br></div></div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><br>-Hal<br><br><blockquote type="cite"><br>Removed:<br>   llvm/trunk/include/llvm/Support/DiagnosticInfo.h<br>   llvm/trunk/include/llvm/Support/DiagnosticPrinter.h<br>   llvm/trunk/lib/Support/DiagnosticInfo.cpp<br>   llvm/trunk/lib/Support/DiagnosticPrinter.cpp<br>Modified:<br>   llvm/trunk/include/llvm/IR/LLVMContext.h<br>   llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp<br>   llvm/trunk/lib/IR/LLVMContext.cpp<br>   llvm/trunk/lib/IR/LLVMContextImpl.cpp<br>   llvm/trunk/lib/IR/LLVMContextImpl.h<br>   llvm/trunk/lib/Support/CMakeLists.txt<br>   llvm/trunk/test/CodeGen/ARM/warn-stack.ll<br>   llvm/trunk/test/CodeGen/X86/warn-stack.ll<br><br>Modified: llvm/trunk/include/llvm/IR/LLVMContext.h<br>URL:<br><a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/LLVMContext.h?rev=197451&r1=197450&r2=197451&view=diff">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/LLVMContext.h?rev=197451&r1=197450&r2=197451&view=diff</a><br>==============================================================================<br>--- llvm/trunk/include/llvm/IR/LLVMContext.h (original)<br>+++ llvm/trunk/include/llvm/IR/LLVMContext.h Mon Dec 16 19:19:59 2013<br>@@ -27,7 +27,6 @@ class Twine;<br>class Instruction;<br>class Module;<br>class SMDiagnostic;<br>-class DiagnosticInfo;<br>template <typename T> class SmallVectorImpl;<br><br>/// This is an important class for using LLVM in a threaded context.<br> It<br>@@ -65,11 +64,6 @@ public:<br>  typedef void (*InlineAsmDiagHandlerTy)(const SMDiagnostic&, void<br>  *Context,<br>                                         unsigned LocCookie);<br><br>-  /// Defines the type of a diagnostic handler.<br>-  /// \see LLVMContext::setDiagnosticHandler.<br>-  /// \see LLVMContext::diagnose.<br>-  typedef void (*DiagnosticHandlerTy)(const DiagnosticInfo &DI, void<br>*Context);<br>-<br>  /// setInlineAsmDiagnosticHandler - This method sets a handler<br>  that is invoked<br>  /// when problems with inline asm are detected by the backend.<br>   The first<br>  /// argument is a function pointer and the second is a context<br>  pointer that<br>@@ -88,33 +82,6 @@ public:<br>  /// setInlineAsmDiagnosticHandler.<br>  void *getInlineAsmDiagnosticContext() const;<br><br>-  /// setDiagnosticHandler - This method sets a handler that is<br>invoked<br>-  /// when the backend needs to report anything to the user.  The<br>first<br>-  /// argument is a function pointer and the second is a context<br>pointer that<br>-  /// gets passed into the DiagHandler.<br>-  ///<br>-  /// LLVMContext doesn't take ownership or interpret either of<br>these<br>-  /// pointers.<br>-  void setDiagnosticHandler(DiagnosticHandlerTy DiagHandler,<br>-                            void *DiagContext = 0);<br>-<br>-  /// getDiagnosticHandler - Return the diagnostic handler set by<br>-  /// setDiagnosticHandler.<br>-  DiagnosticHandlerTy getDiagnosticHandler() const;<br>-<br>-  /// getDiagnosticContext - Return the diagnostic context set by<br>-  /// setDiagnosticContext.<br>-  void *getDiagnosticContext() const;<br>-<br>-  /// diagnose - Report a message to the currently installed<br>diagnostic handler.<br>-  /// This function returns, in particular in the case of error<br>reporting<br>-  /// (DI.Severity == RS_Error), so the caller should leave the<br>compilation<br>-  /// process in a self-consistent state, even though the generated<br>code<br>-  /// need not be correct.<br>-  /// The diagnostic message will be implicitly prefixed with a<br>severity<br>-  /// keyword according to \p DI.getSeverity(), i.e., "error: "<br>-  /// for RS_Error, "warning: " for RS_Warning, and "note: " for<br>RS_Note.<br>-  void diagnose(const DiagnosticInfo &DI);<br><br>  /// emitError - Emit an error message to the currently installed<br>  error handler<br>  /// with optional location information.  This function returns, so<br>  code should<br><br>Removed: llvm/trunk/include/llvm/Support/DiagnosticInfo.h<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/DiagnosticInfo.h?rev=197450&view=auto<br>==============================================================================<br>--- llvm/trunk/include/llvm/Support/DiagnosticInfo.h (original)<br>+++ llvm/trunk/include/llvm/Support/DiagnosticInfo.h (removed)<br>@@ -1,165 +0,0 @@<br>-//===- llvm/Support/DiagnosticInfo.h - Diagnostic Declaration ---*-<br>C++ -*-===//<br>-//<br>-//                     The LLVM Compiler Infrastructure<br>-//<br>-// This file is distributed under the University of Illinois Open<br>Source<br>-// License. See LICENSE.TXT for details.<br>-//<br>-//===----------------------------------------------------------------------===//<br>-//<br>-// This file declares the different classes involved in low level<br>diagnostics.<br>-//<br>-// Diagnostics reporting is still done as part of the LLVMContext.<br>-//===----------------------------------------------------------------------===//<br>-<br>-#ifndef LLVM_SUPPORT_DIAGNOSTICINFO_H<br>-#define LLVM_SUPPORT_DIAGNOSTICINFO_H<br>-<br>-#include "llvm/ADT/ArrayRef.h"<br>-#include "llvm/Support/Casting.h"<br>-<br>-namespace llvm {<br>-<br>-// Forward declarations.<br>-class DiagnosticPrinter;<br>-class Function;<br>-class Instruction;<br>-class Twine;<br>-class Value;<br>-<br>-/// \brief Defines the different supported severity of a diagnostic.<br>-enum DiagnosticSeverity {<br>-  DS_Error,<br>-  DS_Warning,<br>-  DS_Note<br>-};<br>-<br>-/// \brief Defines the different supported kind of a diagnostic.<br>-/// This enum should be extended with a new ID for each added<br>concrete subclass.<br>-enum DiagnosticKind {<br>-  DK_InlineAsm,<br>-  DK_StackSize,<br>-  DK_FirstPluginKind<br>-};<br>-<br>-/// \brief Get the next available kind ID for a plugin diagnostic.<br>-/// Each time this function is called, it returns a different<br>number.<br>-/// Therefore, a plugin that wants to "identify" its own classes<br>-/// with a dynamic identifier, just have to use this method to get a<br>new ID<br>-/// and assign it to each of its classes.<br>-/// The returned ID will be greater than or equal to<br>DK_FirstPluginKind.<br>-/// Thus, the plugin identifiers will not conflict with the<br>-/// DiagnosticKind values.<br>-int getNextAvailablePluginDiagnosticKind();<br>-<br>-/// \brief This is the base abstract class for diagnostic reporting<br>in<br>-/// the backend.<br>-/// The print method must be overloaded by the subclasses to print a<br>-/// user-friendly message in the client of the backend (let us call<br>it a<br>-/// frontend).<br>-class DiagnosticInfo {<br>-private:<br>-  /// Kind defines the kind of report this is about.<br>-  const /* DiagnosticKind */ int Kind;<br>-  /// Severity gives the severity of the diagnostic.<br>-  const DiagnosticSeverity Severity;<br>-<br>-public:<br>-  DiagnosticInfo(/* DiagnosticKind */ int Kind, DiagnosticSeverity<br>Severity)<br>-      : Kind(Kind), Severity(Severity) {}<br>-<br>-  virtual ~DiagnosticInfo() {}<br>-<br>-  /* DiagnosticKind */ int getKind() const { return Kind; }<br>-  DiagnosticSeverity getSeverity() const { return Severity; }<br>-<br>-  /// Print using the given \p DP a user-friendly message.<br>-  /// This is the default message that will be printed to the user.<br>-  /// It is used when the frontend does not directly take advantage<br>-  /// of the information contained in fields of the subclasses.<br>-  /// The printed message must not end with '.' nor start with a<br>severity<br>-  /// keyword.<br>-  virtual void print(DiagnosticPrinter &DP) const = 0;<br>-};<br>-<br>-/// Diagnostic information for inline asm reporting.<br>-/// This is basically a message and an optional location.<br>-class DiagnosticInfoInlineAsm : public DiagnosticInfo {<br>-private:<br>-  /// Optional line information. 0 if not set.<br>-  unsigned LocCookie;<br>-  /// Message to be reported.<br>-  const Twine &MsgStr;<br>-  /// Optional origin of the problem.<br>-  const Instruction *Instr;<br>-<br>-public:<br>-  /// \p MsgStr is the message to be reported to the frontend.<br>-  /// This class does not copy \p MsgStr, therefore the reference<br>must be valid<br>-  /// for the whole life time of the Diagnostic.<br>-  DiagnosticInfoInlineAsm(const Twine &MsgStr,<br>-                          DiagnosticSeverity Severity = DS_Error)<br>-      : DiagnosticInfo(DK_InlineAsm, Severity), LocCookie(0),<br>MsgStr(MsgStr),<br>-        Instr(NULL) {}<br>-<br>-  /// \p LocCookie if non-zero gives the line number for this<br>report.<br>-  /// \p MsgStr gives the message.<br>-  /// This class does not copy \p MsgStr, therefore the reference<br>must be valid<br>-  /// for the whole life time of the Diagnostic.<br>-  DiagnosticInfoInlineAsm(unsigned LocCookie, const Twine &MsgStr,<br>-                          DiagnosticSeverity Severity = DS_Error)<br>-      : DiagnosticInfo(DK_InlineAsm, Severity),<br>LocCookie(LocCookie),<br>-        MsgStr(MsgStr), Instr(NULL) {}<br>-<br>-  /// \p Instr gives the original instruction that triggered the<br>diagnostic.<br>-  /// \p MsgStr gives the message.<br>-  /// This class does not copy \p MsgStr, therefore the reference<br>must be valid<br>-  /// for the whole life time of the Diagnostic.<br>-  /// Same for \p I.<br>-  DiagnosticInfoInlineAsm(const Instruction &I, const Twine &MsgStr,<br>-                          DiagnosticSeverity Severity = DS_Error);<br>-<br>-  unsigned getLocCookie() const { return LocCookie; }<br>-  const Twine &getMsgStr() const { return MsgStr; }<br>-  const Instruction *getInstruction() const { return Instr; }<br>-<br>-  /// \see DiagnosticInfo::print.<br>-  virtual void print(DiagnosticPrinter &DP) const;<br>-<br>-  /// Hand rolled RTTI.<br>-  static bool classof(const DiagnosticInfo *DI) {<br>-    return DI->getKind() == DK_InlineAsm;<br>-  }<br>-};<br>-<br>-/// Diagnostic information for stack size reporting.<br>-/// This is basically a function and a size.<br>-class DiagnosticInfoStackSize : public DiagnosticInfo {<br>-private:<br>-  /// The function that is concerned by this stack size diagnostic.<br>-  const Function &Fn;<br>-  /// The computed stack size.<br>-  unsigned StackSize;<br>-<br>-public:<br>-  /// \p The function that is concerned by this stack size<br>diagnostic.<br>-  /// \p The computed stack size.<br>-  DiagnosticInfoStackSize(const Function &Fn, unsigned StackSize,<br>-                          DiagnosticSeverity Severity = DS_Warning)<br>-      : DiagnosticInfo(DK_StackSize, Severity), Fn(Fn),<br>StackSize(StackSize) {}<br>-<br>-  const Function &getFunction() const { return Fn; }<br>-  unsigned getStackSize() const { return StackSize; }<br>-<br>-  /// \see DiagnosticInfo::print.<br>-  virtual void print(DiagnosticPrinter &DP) const;<br>-<br>-  /// Hand rolled RTTI.<br>-  static bool classof(const DiagnosticInfo *DI) {<br>-    return DI->getKind() == DK_StackSize;<br>-  }<br>-};<br>-<br>-} // End namespace llvm<br>-<br>-#endif<br><br>Removed: llvm/trunk/include/llvm/Support/DiagnosticPrinter.h<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/DiagnosticPrinter.h?rev=197450&view=auto<br>==============================================================================<br>--- llvm/trunk/include/llvm/Support/DiagnosticPrinter.h (original)<br>+++ llvm/trunk/include/llvm/Support/DiagnosticPrinter.h (removed)<br>@@ -1,84 +0,0 @@<br>-//===- llvm/Support/DiagnosticPrinter.h - Diagnostic Printer ----*-<br>C++ -*-===//<br>-//<br>-//                     The LLVM Compiler Infrastructure<br>-//<br>-// This file is distributed under the University of Illinois Open<br>Source<br>-// License. See LICENSE.TXT for details.<br>-//<br>-//===----------------------------------------------------------------------===//<br>-//<br>-// This file declares the main interface for printer backend<br>diagnostic.<br>-//<br>-// Clients of the backend diagnostics should overload this interface<br>based<br>-// on their needs.<br>-//===----------------------------------------------------------------------===//<br>-<br>-#ifndef LLVM_SUPPORT_DIAGNOSTICPRINTER_H<br>-#define LLVM_SUPPORT_DIAGNOSTICPRINTER_H<br>-<br>-#include <string><br>-<br>-namespace llvm {<br>-// Forward declarations.<br>-class raw_ostream;<br>-class StringRef;<br>-class Twine;<br>-class Value;<br>-<br>-/// \brief Interface for custom diagnostic printing.<br>-class DiagnosticPrinter {<br>-public:<br>-  virtual ~DiagnosticPrinter() {}<br>-<br>-  // Simple types.<br>-  virtual DiagnosticPrinter &operator<<(char C) = 0;<br>-  virtual DiagnosticPrinter &operator<<(unsigned char C) = 0;<br>-  virtual DiagnosticPrinter &operator<<(signed char C) = 0;<br>-  virtual DiagnosticPrinter &operator<<(StringRef Str) = 0;<br>-  virtual DiagnosticPrinter &operator<<(const char *Str) = 0;<br>-  virtual DiagnosticPrinter &operator<<(const std::string &Str) = 0;<br>-  virtual DiagnosticPrinter &operator<<(unsigned long N) = 0;<br>-  virtual DiagnosticPrinter &operator<<(long N) = 0;<br>-  virtual DiagnosticPrinter &operator<<(unsigned long long N) = 0;<br>-  virtual DiagnosticPrinter &operator<<(long long N) = 0;<br>-  virtual DiagnosticPrinter &operator<<(const void *P) = 0;<br>-  virtual DiagnosticPrinter &operator<<(unsigned int N) = 0;<br>-  virtual DiagnosticPrinter &operator<<(int N) = 0;<br>-  virtual DiagnosticPrinter &operator<<(double N) = 0;<br>-  virtual DiagnosticPrinter &operator<<(const Twine &Str) = 0;<br>-<br>-  // IR related types.<br>-  virtual DiagnosticPrinter &operator<<(const Value &V) = 0;<br>-};<br>-<br>-/// \brief Basic diagnostic printer that uses an underlying<br>raw_ostream.<br>-class DiagnosticPrinterRawOStream : public DiagnosticPrinter {<br>-protected:<br>-  raw_ostream &Stream;<br>-<br>-public:<br>-  DiagnosticPrinterRawOStream(raw_ostream &Stream) : Stream(Stream)<br>{};<br>-<br>-  // Simple types.<br>-  virtual DiagnosticPrinter &operator<<(char C);<br>-  virtual DiagnosticPrinter &operator<<(unsigned char C);<br>-  virtual DiagnosticPrinter &operator<<(signed char C);<br>-  virtual DiagnosticPrinter &operator<<(StringRef Str);<br>-  virtual DiagnosticPrinter &operator<<(const char *Str);<br>-  virtual DiagnosticPrinter &operator<<(const std::string &Str);<br>-  virtual DiagnosticPrinter &operator<<(unsigned long N);<br>-  virtual DiagnosticPrinter &operator<<(long N);<br>-  virtual DiagnosticPrinter &operator<<(unsigned long long N);<br>-  virtual DiagnosticPrinter &operator<<(long long N);<br>-  virtual DiagnosticPrinter &operator<<(const void *P);<br>-  virtual DiagnosticPrinter &operator<<(unsigned int N);<br>-  virtual DiagnosticPrinter &operator<<(int N);<br>-  virtual DiagnosticPrinter &operator<<(double N);<br>-  virtual DiagnosticPrinter &operator<<(const Twine &Str);<br>-<br>-  // IR related types.<br>-  virtual DiagnosticPrinter &operator<<(const Value &V);<br>-};<br>-} // End namespace llvm<br>-<br>-#endif<br><br>Modified: llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp?rev=197451&r1=197450&r2=197451&view=diff<br>==============================================================================<br>--- llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp (original)<br>+++ llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp Mon Dec 16<br>19:19:59 2013<br>@@ -30,11 +30,9 @@<br>#include "llvm/CodeGen/MachineRegisterInfo.h"<br>#include "llvm/CodeGen/RegisterScavenging.h"<br>#include "llvm/IR/InlineAsm.h"<br>-#include "llvm/IR/LLVMContext.h"<br>#include "llvm/Support/CommandLine.h"<br>#include "llvm/Support/Compiler.h"<br>#include "llvm/Support/Debug.h"<br>-#include "llvm/Support/DiagnosticInfo.h"<br>#include "llvm/Support/raw_ostream.h"<br>#include "llvm/Target/TargetFrameLowering.h"<br>#include "llvm/Target/TargetInstrInfo.h"<br>@@ -162,11 +160,10 @@ bool PEI::runOnMachineFunction(MachineFu<br><br>  // Warn on stack size when we exceeds the given limit.<br>  MachineFrameInfo *MFI = Fn.getFrameInfo();<br>-  uint64_t StackSize = MFI->getStackSize();<br>-  if (WarnStackSize.getNumOccurrences() > 0 && WarnStackSize <<br>StackSize) {<br>-    DiagnosticInfoStackSize DiagStackSize(*F, StackSize);<br>-    F->getContext().diagnose(DiagStackSize);<br>-  }<br>+  if (WarnStackSize.getNumOccurrences() > 0 &&<br>+      WarnStackSize < MFI->getStackSize())<br>+    errs() << "warning: Stack size limit exceeded (" <<<br>MFI->getStackSize()<br>+           << ") in " << Fn.getName()  << ".\n";<br><br>  delete RS;<br>  ReturnBlocks.clear();<br><br>Modified: llvm/trunk/lib/IR/LLVMContext.cpp<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/LLVMContext.cpp?rev=197451&r1=197450&r2=197451&view=diff<br>==============================================================================<br>--- llvm/trunk/lib/IR/LLVMContext.cpp (original)<br>+++ llvm/trunk/lib/IR/LLVMContext.cpp Mon Dec 16 19:19:59 2013<br>@@ -17,8 +17,6 @@<br>#include "llvm/IR/Constants.h"<br>#include "llvm/IR/Instruction.h"<br>#include "llvm/IR/Metadata.h"<br>-#include "llvm/Support/DiagnosticInfo.h"<br>-#include "llvm/Support/DiagnosticPrinter.h"<br>#include "llvm/Support/ManagedStatic.h"<br>#include "llvm/Support/SourceMgr.h"<br>#include <cctype><br>@@ -100,20 +98,6 @@ void *LLVMContext::getInlineAsmDiagnosti<br>  return pImpl->InlineAsmDiagContext;<br>}<br><br>-void LLVMContext::setDiagnosticHandler(DiagnosticHandlerTy<br>DiagnosticHandler,<br>-                                       void *DiagnosticContext) {<br>-  pImpl->DiagnosticHandler = DiagnosticHandler;<br>-  pImpl->DiagnosticContext = DiagnosticContext;<br>-}<br>-<br>-LLVMContext::DiagnosticHandlerTy LLVMContext::getDiagnosticHandler()<br>const {<br>-  return pImpl->DiagnosticHandler;<br>-}<br>-<br>-void *LLVMContext::getDiagnosticContext() const {<br>-  return pImpl->DiagnosticContext;<br>-}<br>-<br>void LLVMContext::emitError(const Twine &ErrorStr) {<br>  emitError(0U, ErrorStr);<br>}<br>@@ -128,31 +112,6 @@ void LLVMContext::emitError(const Instru<br>  return emitError(LocCookie, ErrorStr);<br>}<br><br>-void LLVMContext::diagnose(const DiagnosticInfo &DI) {<br>-  // If there is a report handler, use it.<br>-  if (pImpl->DiagnosticHandler != 0) {<br>-    pImpl->DiagnosticHandler(DI, pImpl->DiagnosticContext);<br>-    return;<br>-  }<br>-  // Otherwise, print the message with a prefix based on the<br>severity.<br>-  std::string MsgStorage;<br>-  raw_string_ostream Stream(MsgStorage);<br>-  DiagnosticPrinterRawOStream DP(Stream);<br>-  DI.print(DP);<br>-  Stream.flush();<br>-  switch (DI.getSeverity()) {<br>-  case DS_Error:<br>-    errs() << "error: " << MsgStorage << "\n";<br>-    exit(1);<br>-  case DS_Warning:<br>-    errs() << "warning: " << MsgStorage << "\n";<br>-    break;<br>-  case DS_Note:<br>-    errs() << "note: " << MsgStorage << "\n";<br>-    break;<br>-  }<br>-}<br>-<br>void LLVMContext::emitError(unsigned LocCookie, const Twine<br>&ErrorStr) {<br>  // If there is no error handler installed, just print the error<br>  and exit.<br>  if (pImpl->InlineAsmDiagHandler == 0) {<br><br>Modified: llvm/trunk/lib/IR/LLVMContextImpl.cpp<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/LLVMContextImpl.cpp?rev=197451&r1=197450&r2=197451&view=diff<br>==============================================================================<br>--- llvm/trunk/lib/IR/LLVMContextImpl.cpp (original)<br>+++ llvm/trunk/lib/IR/LLVMContextImpl.cpp Mon Dec 16 19:19:59 2013<br>@@ -37,8 +37,6 @@ LLVMContextImpl::LLVMContextImpl(LLVMCon<br>    Int64Ty(C, 64) {<br>  InlineAsmDiagHandler = 0;<br>  InlineAsmDiagContext = 0;<br>-  DiagnosticHandler = 0;<br>-  DiagnosticContext = 0;<br>  NamedStructTypesUniqueID = 0;<br>}<br><br><br>Modified: llvm/trunk/lib/IR/LLVMContextImpl.h<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/LLVMContextImpl.h?rev=197451&r1=197450&r2=197451&view=diff<br>==============================================================================<br>--- llvm/trunk/lib/IR/LLVMContextImpl.h (original)<br>+++ llvm/trunk/lib/IR/LLVMContextImpl.h Mon Dec 16 19:19:59 2013<br>@@ -238,12 +238,9 @@ public:<br><br>  LLVMContext::InlineAsmDiagHandlerTy InlineAsmDiagHandler;<br>  void *InlineAsmDiagContext;<br>-<br>-  LLVMContext::DiagnosticHandlerTy DiagnosticHandler;<br>-  void *DiagnosticContext;<br>-<br>-  typedef DenseMap<DenseMapAPIntKeyInfo::KeyTy, ConstantInt *,<br>-                   DenseMapAPIntKeyInfo> IntMapTy;<br>+<br>+  typedef DenseMap<DenseMapAPIntKeyInfo::KeyTy, ConstantInt*,<br>+                         DenseMapAPIntKeyInfo> IntMapTy;<br>  IntMapTy IntConstants;<br><br>  typedef DenseMap<DenseMapAPFloatKeyInfo::KeyTy, ConstantFP*,<br><br>Modified: llvm/trunk/lib/Support/CMakeLists.txt<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/CMakeLists.txt?rev=197451&r1=197450&r2=197451&view=diff<br>==============================================================================<br>--- llvm/trunk/lib/Support/CMakeLists.txt (original)<br>+++ llvm/trunk/lib/Support/CMakeLists.txt Mon Dec 16 19:19:59 2013<br>@@ -17,8 +17,6 @@ add_llvm_library(LLVMSupport<br>  Debug.cpp<br>  DeltaAlgorithm.cpp<br>  DAGDeltaAlgorithm.cpp<br>-  DiagnosticInfo.cpp<br>-  DiagnosticPrinter.cpp<br>  Dwarf.cpp<br>  ErrorHandling.cpp<br>  FileUtilities.cpp<br><br>Removed: llvm/trunk/lib/Support/DiagnosticInfo.cpp<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/DiagnosticInfo.cpp?rev=197450&view=auto<br>==============================================================================<br>--- llvm/trunk/lib/Support/DiagnosticInfo.cpp (original)<br>+++ llvm/trunk/lib/Support/DiagnosticInfo.cpp (removed)<br>@@ -1,54 +0,0 @@<br>-//===- llvm/Support/DiagnosticInfo.cpp - Diagnostic Definitions -*-<br>C++ -*-===//<br>-//<br>-//                     The LLVM Compiler Infrastructure<br>-//<br>-// This file is distributed under the University of Illinois Open<br>Source<br>-// License. See LICENSE.TXT for details.<br>-//<br>-//===----------------------------------------------------------------------===//<br>-//<br>-// This file defines the different classes involved in low level<br>diagnostics.<br>-//<br>-// Diagnostics reporting is still done as part of the LLVMContext.<br>-//===----------------------------------------------------------------------===//<br>-<br>-#include "llvm/ADT/Twine.h"<br>-#include "llvm/IR/Constants.h"<br>-#include "llvm/IR/Function.h"<br>-#include "llvm/IR/Instruction.h"<br>-#include "llvm/IR/Metadata.h"<br>-#include "llvm/Support/Atomic.h"<br>-#include "llvm/Support/DiagnosticInfo.h"<br>-#include "llvm/Support/DiagnosticPrinter.h"<br>-<br>-#include <string><br>-<br>-using namespace llvm;<br>-<br>-int getNextAvailablePluginDiagnosticKind() {<br>-  static sys::cas_flag PluginKindID = DK_FirstPluginKind;<br>-  return (int)sys::AtomicIncrement(&PluginKindID);<br>-}<br>-<br>-DiagnosticInfoInlineAsm::DiagnosticInfoInlineAsm(const Instruction<br>&I,<br>-                                                 const Twine<br>&MsgStr,<br>-                                                 DiagnosticSeverity<br>Severity)<br>-    : DiagnosticInfo(DK_InlineAsm, Severity), LocCookie(0),<br>MsgStr(MsgStr),<br>-      Instr(&I) {<br>-  if (const MDNode *SrcLoc = I.getMetadata("srcloc")) {<br>-    if (SrcLoc->getNumOperands() != 0)<br>-      if (const ConstantInt *CI =<br>dyn_cast<ConstantInt>(SrcLoc->getOperand(0)))<br>-        LocCookie = CI->getZExtValue();<br>-  }<br>-}<br>-<br>-void DiagnosticInfoInlineAsm::print(DiagnosticPrinter &DP) const {<br>-  DP << getMsgStr();<br>-  if (getLocCookie())<br>-    DP << " at line " << getLocCookie();<br>-}<br>-<br>-void DiagnosticInfoStackSize::print(DiagnosticPrinter &DP) const {<br>-  DP << "stack size limit exceeded (" << getStackSize() << ") in "<br>-     << getFunction();<br>-}<br><br>Removed: llvm/trunk/lib/Support/DiagnosticPrinter.cpp<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/DiagnosticPrinter.cpp?rev=197450&view=auto<br>==============================================================================<br>--- llvm/trunk/lib/Support/DiagnosticPrinter.cpp (original)<br>+++ llvm/trunk/lib/Support/DiagnosticPrinter.cpp (removed)<br>@@ -1,101 +0,0 @@<br>-//===- llvm/Support/DiagnosticInfo.cpp - Diagnostic Definitions -*-<br>C++ -*-===//<br>-//<br>-//                     The LLVM Compiler Infrastructure<br>-//<br>-// This file is distributed under the University of Illinois Open<br>Source<br>-// License. See LICENSE.TXT for details.<br>-//<br>-//===----------------------------------------------------------------------===//<br>-//<br>-// This file defines the a diagnostic printer relying on<br>raw_ostream.<br>-//<br>-//===----------------------------------------------------------------------===//<br>-<br>-#include "llvm/ADT/Twine.h"<br>-#include "llvm/IR/Value.h"<br>-#include "llvm/Support/DiagnosticPrinter.h"<br>-#include "llvm/Support/raw_ostream.h"<br>-<br>-using namespace llvm;<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(char C) {<br>-  Stream << C;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(unsigned<br>char C) {<br>-  Stream << C;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(signed<br>char C) {<br>-  Stream << C;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(StringRef<br>Str) {<br>-  Stream << Str;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const<br>char *Str) {<br>-  Stream << Str;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(<br>-    const std::string &Str) {<br>-  Stream << Str;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(unsigned<br>long N) {<br>-  Stream << N;<br>-  return *this;<br>-}<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(long N) {<br>-  Stream << N;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(<br>-    unsigned long long N) {<br>-  Stream << N;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(long long<br>N) {<br>-  Stream << N;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const<br>void *P) {<br>-  Stream << P;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(unsigned<br>int N) {<br>-  Stream << N;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(int N) {<br>-  Stream << N;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(double N)<br>{<br>-  Stream << N;<br>-  return *this;<br>-}<br>-<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const<br>Twine &Str) {<br>-  Stream << Str.getSingleStringRef();<br>-  return *this;<br>-}<br>-<br>-// IR related types.<br>-DiagnosticPrinter &DiagnosticPrinterRawOStream::operator<<(const<br>Value &V) {<br>-  Stream << V.getName();<br>-  return *this;<br>-}<br><br>Modified: llvm/trunk/test/CodeGen/ARM/warn-stack.ll<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/ARM/warn-stack.ll?rev=197451&r1=197450&r2=197451&view=diff<br>==============================================================================<br>--- llvm/trunk/test/CodeGen/ARM/warn-stack.ll (original)<br>+++ llvm/trunk/test/CodeGen/ARM/warn-stack.ll Mon Dec 16 19:19:59<br>2013<br>@@ -12,7 +12,7 @@ entry:<br>  ret void<br>}<br><br>-; CHECK: warning: stack size limit exceeded (96) in warn<br>+; CHECK: warning: Stack size limit exceeded (96) in warn.<br>define void @warn() nounwind ssp {<br>entry:<br>  %buffer = alloca [80 x i8], align 1<br><br>Modified: llvm/trunk/test/CodeGen/X86/warn-stack.ll<br>URL:<br>http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/warn-stack.ll?rev=197451&r1=197450&r2=197451&view=diff<br>==============================================================================<br>--- llvm/trunk/test/CodeGen/X86/warn-stack.ll (original)<br>+++ llvm/trunk/test/CodeGen/X86/warn-stack.ll Mon Dec 16 19:19:59<br>2013<br>@@ -12,7 +12,7 @@ entry:<br>  ret void<br>}<br><br>-; CHECK: warning: stack size limit exceeded (104) in warn<br>+; CHECK: warning: Stack size limit exceeded (104) in warn.<br>define void @warn() nounwind ssp {<br>entry:<br>  %buffer = alloca [80 x i8], align 1<br><br><br>_______________________________________________<br>llvm-commits mailing list<br>llvm-commits@cs.uiuc.edu<br>http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits<br><br></blockquote><br>--<span class="Apple-converted-space"> </span><br>Hal Finkel<br>Assistant Computational Scientist<br>Leadership Computing Facility<br>Argonne National Laboratory</div></blockquote></div><br></body></html>