Add data structure to define and track debug location during codegen.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63008 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng
2009-01-26 07:41:49 +00:00
parent d5362986da
commit d0adbb5b7d
3 changed files with 150 additions and 1 deletions

View File

@ -19,6 +19,7 @@
#define LLVM_CODEGEN_MACHINEFUNCTION_H
#include "llvm/ADT/ilist.h"
#include "llvm/CodeGen/DebugLoc.h"
#include "llvm/CodeGen/MachineBasicBlock.h"
#include "llvm/Support/Annotation.h"
#include "llvm/Support/Allocator.h"
@ -27,11 +28,11 @@
namespace llvm {
class Function;
class TargetMachine;
class MachineRegisterInfo;
class MachineFrameInfo;
class MachineConstantPool;
class MachineJumpTableInfo;
class TargetMachine;
template <>
struct ilist_traits<MachineBasicBlock>
@ -94,6 +95,9 @@ class MachineFunction : private Annotation {
typedef ilist<MachineBasicBlock> BasicBlockListType;
BasicBlockListType BasicBlocks;
// Tracks debug locations.
DebugLocTracker DebugLocInfo;
public:
MachineFunction(const Function *Fn, const TargetMachine &TM);
~MachineFunction();
@ -302,6 +306,15 @@ public:
/// DeleteMachineBasicBlock - Delete the given MachineBasicBlock.
///
void DeleteMachineBasicBlock(MachineBasicBlock *MBB);
//===--------------------------------------------------------------------===//
// Debug location.
//
/// lookUpDebugLocId - Look up the DebugLocTuple index with the given
/// filename, line, and column. It may add a new filename and / or
/// a new DebugLocTuple.
unsigned lookUpDebugLocId(const char *Filename, unsigned Line, unsigned Col);
};
//===--------------------------------------------------------------------===//