mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-05 10:27:02 +00:00
Use DwarfWriter to record dbg variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62185 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
bb8c5959c8
commit
c48c550e13
@ -32,7 +32,7 @@ namespace llvm {
|
||||
class GlobalVariable;
|
||||
class MachineConstantPoolEntry;
|
||||
class MachineConstantPoolValue;
|
||||
class MachineModuleInfo;
|
||||
class DwarfWriter;
|
||||
class Mangler;
|
||||
class Section;
|
||||
class TargetAsmInfo;
|
||||
@ -51,10 +51,10 @@ namespace llvm {
|
||||
///
|
||||
unsigned FunctionNumber;
|
||||
|
||||
/// MachineModuleInfo - This is needed because printDeclare() has to insert
|
||||
/// DebugVariable entries into the dwarf table. This is a short term hack
|
||||
/// DW -This is needed because printDeclare() has to insert
|
||||
/// DbgVariable entries into the dwarf table. This is a short term hack
|
||||
/// that ought be fixed soon.
|
||||
MachineModuleInfo *MMI;
|
||||
DwarfWriter *DW;
|
||||
|
||||
// GCMetadataPrinters - The garbage collection metadata printer table.
|
||||
typedef DenseMap<GCStrategy*,GCMetadataPrinter*> gcp_map_type;
|
||||
|
@ -93,6 +93,10 @@ public:
|
||||
/// getRecordSourceLineCount - Count source lines.
|
||||
unsigned getRecordSourceLineCount();
|
||||
|
||||
/// RecordVariable - Indicate the declaration of a local variable.
|
||||
///
|
||||
void RecordVariable(GlobalVariable *GV, unsigned FrameIndex);
|
||||
|
||||
/// hasDebugInfo - Return true if debug info intrinsics are seen in
|
||||
/// this module.
|
||||
bool hasDebugInfo();
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include "llvm/CodeGen/MachineConstantPool.h"
|
||||
#include "llvm/CodeGen/MachineJumpTableInfo.h"
|
||||
#include "llvm/CodeGen/MachineModuleInfo.h"
|
||||
#include "llvm/CodeGen/DwarfWriter.h"
|
||||
#include "llvm/Support/Mangler.h"
|
||||
#include "llvm/Support/raw_ostream.h"
|
||||
#include "llvm/Target/TargetAsmInfo.h"
|
||||
@ -162,9 +163,9 @@ bool AsmPrinter::doInitialization(Module &M) {
|
||||
|
||||
SwitchToDataSection(""); // Reset back to no section.
|
||||
|
||||
MMI = getAnalysisToUpdate<MachineModuleInfo>();
|
||||
MachineModuleInfo *MMI = getAnalysisToUpdate<MachineModuleInfo>();
|
||||
if (MMI) MMI->AnalyzeModule(M);
|
||||
|
||||
DW = getAnalysisToUpdate<DwarfWriter>();
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1419,9 +1420,9 @@ void AsmPrinter::printLabel(unsigned Id) const {
|
||||
/// FIXME: It doesn't really print anything rather it inserts a DebugVariable
|
||||
/// entry into dwarf table.
|
||||
void AsmPrinter::printDeclare(const MachineInstr *MI) const {
|
||||
int FI = MI->getOperand(0).getIndex();
|
||||
unsigned FI = MI->getOperand(0).getIndex();
|
||||
GlobalValue *GV = MI->getOperand(1).getGlobal();
|
||||
MMI->RecordVariable(GV, FI);
|
||||
DW->RecordVariable(cast<GlobalVariable>(GV), FI);
|
||||
}
|
||||
|
||||
/// PrintAsmOperand - Print the specified operand of MI, an INLINEASM
|
||||
|
@ -4985,6 +4985,12 @@ unsigned DwarfWriter::getRecordSourceLineCount() {
|
||||
return DD->getRecordSourceLineCount();
|
||||
}
|
||||
|
||||
/// RecordVariable - Indicate the declaration of a local variable.
|
||||
///
|
||||
void DwarfWriter::RecordVariable(GlobalVariable *GV, unsigned FrameIndex) {
|
||||
DD->RecordVariable(GV, FrameIndex);
|
||||
}
|
||||
|
||||
/// hasDebugInfo - Return true if debug info intrinsics are seen in
|
||||
/// this module.
|
||||
bool DwarfWriter::hasDebugInfo() {
|
||||
|
Loading…
Reference in New Issue
Block a user