mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
move debug info stuff out of line, allowing two #includes
to go away from IRBuilder.h llvm-svn: 92230
This commit is contained in:
parent
e0b9847223
commit
e70c40e8ac
@ -18,12 +18,11 @@
|
||||
#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,26 +83,12 @@ 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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user