From: Devang Patel Date: Tue, 13 Jan 2009 21:25:00 +0000 (+0000) Subject: Use dwarf writer to decide whether the module has debug info or not. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=bb8c5959c83504fbc438e6efade30fa4b70a25b6;p=oota-llvm.git Use dwarf writer to decide whether the module has debug info or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62184 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/CodeGen/DwarfWriter.h b/include/llvm/CodeGen/DwarfWriter.h index c2ad3a64836..24b0f97dfce 100644 --- a/include/llvm/CodeGen/DwarfWriter.h +++ b/include/llvm/CodeGen/DwarfWriter.h @@ -93,6 +93,9 @@ public: /// getRecordSourceLineCount - Count source lines. unsigned getRecordSourceLineCount(); + /// hasDebugInfo - Return true if debug info intrinsics are seen in + /// this module. + bool hasDebugInfo(); }; diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index 88c96baea88..d79e6aa7783 100644 --- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp @@ -4984,3 +4984,9 @@ unsigned DwarfWriter::RecordRegionEnd(GlobalVariable *V) { unsigned DwarfWriter::getRecordSourceLineCount() { return DD->getRecordSourceLineCount(); } + +/// hasDebugInfo - Return true if debug info intrinsics are seen in +/// this module. +bool DwarfWriter::hasDebugInfo() { + return DD && DD->ShouldEmitDwarf(); +} diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index 324b07025e0..65a3e07b044 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -23,6 +23,7 @@ #include "llvm/CodeGen/MachineConstantPool.h" #include "llvm/CodeGen/MachineFrameInfo.h" #include "llvm/CodeGen/MachineModuleInfo.h" +#include "llvm/CodeGen/DwarfWriter.h" #include "llvm/CodeGen/PseudoSourceValue.h" #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Target/TargetData.h" @@ -2040,8 +2041,8 @@ bool SelectionDAG::isVerifiedDebugInfoDesc(SDValue Op) const { if (GA->getOffset() != 0) return false; GlobalVariable *GV = dyn_cast(GA->getGlobal()); if (!GV) return false; - MachineModuleInfo *MMI = getMachineModuleInfo(); - return MMI && MMI->hasDebugInfo() && MMI->isVerified(GV); + DwarfWriter *DW = getDwarfWriter(); + return DW && DW->hasDebugInfo(); }