OSDN Git Service

move debug info stuff out of line, allowing two #includes
authorChris Lattner <sabre@nondot.org>
Mon, 28 Dec 2009 21:45:40 +0000 (21:45 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 28 Dec 2009 21:45:40 +0000 (21:45 +0000)
to go away from IRBuilder.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92230 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Support/IRBuilder.h
lib/Target/Target.cpp
lib/VMCore/IRBuilder.cpp

index 92230a8..a89d5a6 100644 (file)
 #include "llvm/Constants.h"
 #include "llvm/Instructions.h"
 #include "llvm/Function.h"
-#include "llvm/Metadata.h"
-#include "llvm/LLVMContext.h"
 #include "llvm/ADT/Twine.h"
 #include "llvm/Support/ConstantFolder.h"
 
 namespace llvm {
+  class MDNode;
 
 /// IRBuilderDefaultInserter - This provides the default implementation of the
 /// IRBuilder 'InsertHelper' method that is called whenever an instruction is
@@ -42,11 +41,11 @@ protected:
 
 /// IRBuilderBase - Common base class shared among various IRBuilders.
 class IRBuilderBase {
+  unsigned DbgMDKind;
+  MDNode *CurDbgLocation;
 protected:
   BasicBlock *BB;
   BasicBlock::iterator InsertPt;
-  unsigned DbgMDKind;
-  MDNode *CurDbgLocation;
   LLVMContext &Context;
 public:
   
@@ -84,27 +83,13 @@ public:
   
   /// SetCurrentDebugLocation - Set location information used by debugging
   /// information.
-  void SetCurrentDebugLocation(MDNode *L) {
-    if (DbgMDKind == 0) 
-      DbgMDKind = Context.getMetadata().getMDKindID("dbg");
-    CurDbgLocation = L;
-  }
-  
+  void SetCurrentDebugLocation(MDNode *L);
   MDNode *getCurrentDebugLocation() const { return CurDbgLocation; }
   
-  /// SetDebugLocation -  Set location information for the given instruction.
-  void SetDebugLocation(Instruction *I) {
-    if (CurDbgLocation)
-      Context.getMetadata().addMD(DbgMDKind, CurDbgLocation, I);
-  }
-  
-  /// SetDebugLocation -  Set location information for the given instruction.
-  void SetDebugLocation(Instruction *I, MDNode *Loc) {
-    if (DbgMDKind == 0) 
-      DbgMDKind = Context.getMetadata().getMDKindID("dbg");
-    Context.getMetadata().addMD(DbgMDKind, Loc, I);
-  }
-  
+  /// SetInstDebugLocation - If this builder has a current debug location, set
+  /// it on the specified instruction.
+  void SetInstDebugLocation(Instruction *I) const;
+
   //===--------------------------------------------------------------------===//
   // Miscellaneous creation methods.
   //===--------------------------------------------------------------------===//
@@ -216,8 +201,8 @@ public:
   template<typename InstTy>
   InstTy *Insert(InstTy *I, const Twine &Name = "") const {
     this->InsertHelper(I, Name, BB, InsertPt);
-    if (CurDbgLocation)
-      Context.getMetadata().addMD(DbgMDKind, CurDbgLocation, I);
+    if (getCurrentDebugLocation() != 0)
+      this->SetInstDebugLocation(I);
     return I;
   }
 
index cc6be9f..cddf49e 100644 (file)
@@ -15,6 +15,7 @@
 #include "llvm-c/Target.h"
 #include "llvm/PassManager.h"
 #include "llvm/Target/TargetData.h"
+#include "llvm/LLVMContext.h"
 #include <cstring>
 
 using namespace llvm;
index 850812c..99803f1 100644 (file)
@@ -14,6 +14,8 @@
 
 #include "llvm/Support/IRBuilder.h"
 #include "llvm/GlobalVariable.h"
+#include "llvm/Metadata.h"
+#include "llvm/LLVMContext.h"
 using namespace llvm;
 
 /// CreateGlobalString - Make a new global variable with an initializer that
@@ -29,3 +31,16 @@ Value *IRBuilderBase::CreateGlobalString(const char *Str, const Twine &Name) {
   GV->setName(Name);
   return GV;
 }
+
+/// SetCurrentDebugLocation - Set location information used by debugging
+/// information.
+void IRBuilderBase::SetCurrentDebugLocation(MDNode *L) {
+  if (DbgMDKind == 0) 
+    DbgMDKind = Context.getMetadata().getMDKindID("dbg");
+  CurDbgLocation = L;
+}
+
+void IRBuilderBase::SetInstDebugLocation(Instruction *I) const {
+  if (CurDbgLocation)
+    Context.getMetadata().addMD(DbgMDKind, CurDbgLocation, I);
+}