[llvm-commits] [llvm] r68863 - in /llvm/trunk: include/llvm/CodeGen/DwarfWriter.h include/llvm/Target/TargetAsmInfo.h lib/CodeGen/AsmPrinter/DwarfWriter.cpp lib/CodeGen/SelectionDAG/FastISel.cpp lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp lib/Target/TargetAsmInfo.cpp lib/Target/X86/X86TargetAsmInfo.cpp
Dan Gohman
gohman at apple.com
Sat Apr 11 08:57:04 PDT 2009
Author: djg
Date: Sat Apr 11 10:57:04 2009
New Revision: 68863
URL: http://llvm.org/viewvc/llvm-project?rev=68863&view=rev
Log:
Revert r68847. It breaks the build on non-Darwin targets, with this message
from the assembler:
Error: unknown pseudo-op: `.debug_inlined'
Modified:
llvm/trunk/include/llvm/CodeGen/DwarfWriter.h
llvm/trunk/include/llvm/Target/TargetAsmInfo.h
llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
llvm/trunk/lib/Target/TargetAsmInfo.cpp
llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp
Modified: llvm/trunk/include/llvm/CodeGen/DwarfWriter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/DwarfWriter.h?rev=68863&r1=68862&r2=68863&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/DwarfWriter.h (original)
+++ llvm/trunk/include/llvm/CodeGen/DwarfWriter.h Sat Apr 11 10:57:04 2009
@@ -94,9 +94,6 @@
/// RecordRegionStart - Indicate the start of a region.
unsigned RecordRegionStart(GlobalVariable *V);
- /// RecordRegionStart - Indicate the start of a region.
- unsigned RecordRegionStart(GlobalVariable *V, unsigned ID);
-
/// RecordRegionEnd - Indicate the end of a region.
unsigned RecordRegionEnd(GlobalVariable *V);
@@ -110,10 +107,6 @@
/// ShouldEmitDwarfDebug - Returns true if Dwarf debugging declarations should
/// be emitted.
bool ShouldEmitDwarfDebug() const;
-
- //// RecordInlineInfo - Global variable GV is inlined at the location marked
- //// by LabelID label.
- void RecordInlineInfo(GlobalVariable *GV, unsigned LabelID);
};
Modified: llvm/trunk/include/llvm/Target/TargetAsmInfo.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetAsmInfo.h?rev=68863&r1=68862&r2=68863&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Target/TargetAsmInfo.h (original)
+++ llvm/trunk/include/llvm/Target/TargetAsmInfo.h Sat Apr 11 10:57:04 2009
@@ -506,11 +506,7 @@
/// DwarfPubTypesSection - Section directive for Dwarf info.
///
const char *DwarfPubTypesSection; // Defaults to ".debug_pubtypes".
-
- /// DwarfDebugInlineSection - Section directive for inline info.
- ///
- const char *DwarfDebugInlineSection; // Defaults to ".debug_inlined"
-
+
/// DwarfStrSection - Section directive for Dwarf info.
///
const char *DwarfStrSection; // Defaults to ".debug_str".
@@ -884,9 +880,6 @@
const char *getDwarfPubTypesSection() const {
return DwarfPubTypesSection;
}
- const char *getDwarfDebugInlineSection() const {
- return DwarfDebugInlineSection;
- }
const char *getDwarfStrSection() const {
return DwarfStrSection;
}
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp?rev=68863&r1=68862&r2=68863&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfWriter.cpp Sat Apr 11 10:57:04 2009
@@ -1252,10 +1252,6 @@
/// DbgScopeMap - Tracks the scopes in the current function.
DenseMap<GlobalVariable *, DbgScope *> DbgScopeMap;
- /// InlineInfo - Keep track of inlined functions and their location.
- /// This information is used to populate debug_inlined section.
- DenseMap<GlobalVariable *, SmallVector<unsigned, 4> > InlineInfo;
-
/// DebugTimer - Timer for the Dwarf debug writer.
Timer *DebugTimer;
@@ -2031,18 +2027,15 @@
for (unsigned j = 0, M = Scopes.size(); j < M; ++j) {
// Define the Scope debug information entry.
DbgScope *Scope = Scopes[j];
+ // FIXME - Ignore inlined functions for the time being.
+ if (!Scope->getParent()) continue;
unsigned StartID = MMI->MappedLabel(Scope->getStartLabelID());
unsigned EndID = MMI->MappedLabel(Scope->getEndLabelID());
// Ignore empty scopes.
if (StartID == EndID && StartID != 0) continue;
-
- // Do not ignore inlined scope even if it is empty. Inlined scope
- // does not have any parent.
- if (Scope->getParent()
- && Scope->getScopes().empty() && Scope->getVariables().empty())
- continue;
+ if (Scope->getScopes().empty() && Scope->getVariables().empty()) continue;
if (StartID == ParentStartID && EndID == ParentEndID) {
// Just add stuff to the parent scope.
@@ -2788,74 +2781,6 @@
}
}
- /// EmitDebugInlineInfo - Emit inline info using following format.
- /// Section Header:
- /// 1. length of section
- /// 2. Dwarf version number
- /// 3. address size.
- ///
- /// Entries (one "entry" for each function that was inlined):
- ///
- /// 1. offset into __debug_str section for MIPS linkage name, if exists;
- /// otherwise offset into __debug_str for regular function name.
- /// 2. offset into __debug_str section for regular function name.
- /// 3. an unsigned LEB128 number indicating the number of distinct inlining
- /// instances for the function.
- ///
- /// The rest of the entry consists of a {die_offset, low_pc} pair for each
- /// inlined instance; the die_offset points to the inlined_subroutine die in
- /// the __debug_info section, and the low_pc is the starting address for the
- /// inlining instance.
- void EmitDebugInlineInfo() {
- if (!MainCU)
- return;
-
- Asm->SwitchToDataSection(TAI->getDwarfDebugInlineSection());
- Asm->EOL();
- EmitDifference("debug_inlined_end", 1,
- "debug_inlined_begin", 1, true);
- Asm->EOL("Length of Debug Inlined Information Entry");
-
- EmitLabel("debug_inlined_begin", 1);
-
- Asm->EmitInt16(DWARF_VERSION); Asm->EOL("Dwarf Version");
- Asm->EmitInt8(TD->getPointerSize()); Asm->EOL("Address Size (in bytes)");
-
- for (DenseMap<GlobalVariable *, SmallVector<unsigned, 4> >::iterator
- I = InlineInfo.begin(), E = InlineInfo.end(); I != E; ++I) {
- GlobalVariable *GV = I->first;
- SmallVector<unsigned, 4> &Labels = I->second;
- DISubprogram SP(GV);
- std::string Name;
- std::string LName;
-
- SP.getLinkageName(LName);
- SP.getName(Name);
-
- Asm->EmitString(LName.empty() ? Name : LName);
- Asm->EOL("MIPS linkage name");
-
- Asm->EmitString(Name); Asm->EOL("Function name");
-
- Asm->EmitULEB128Bytes(Labels.size()); Asm->EOL("Inline count");
-
- for (SmallVector<unsigned, 4>::iterator LI = Labels.begin(),
- LE = Labels.end(); LI != LE; ++LI) {
- DIE *SP = MainCU->getDieMapSlotFor(GV);
- Asm->EmitInt32(SP->getOffset()); Asm->EOL("DIE offset");
-
- if (TD->getPointerSize() == sizeof(int32_t))
- O << TAI->getData32bitsDirective();
- else
- O << TAI->getData64bitsDirective();
- PrintLabelName("label", *LI); Asm->EOL("low_pc");
- }
- }
-
- EmitLabel("debug_inlined_end", 1);
- Asm->EOL();
- }
-
/// GetOrCreateSourceID - Look up the source id with the given directory and
/// source file names. If none currently exists, create a new id and insert it
/// in the SourceIds map. This can update DirectoryNames and SourceFileNames maps
@@ -3206,9 +3131,6 @@
// Emit info into a debug macinfo section.
EmitDebugMacInfo();
- // Emit inline info.
- EmitDebugInlineInfo();
-
if (TimePassesIsEnabled)
DebugTimer->stopTimer();
}
@@ -3415,20 +3337,6 @@
return ID;
}
- /// RecordRegionStart - Indicate the start of a region.
- unsigned RecordRegionStart(GlobalVariable *V, unsigned ID) {
- if (TimePassesIsEnabled)
- DebugTimer->startTimer();
-
- DbgScope *Scope = getOrCreateScope(V);
- if (!Scope->getStartLabelID()) Scope->setStartLabelID(ID);
-
- if (TimePassesIsEnabled)
- DebugTimer->stopTimer();
-
- return ID;
- }
-
/// RecordRegionEnd - Indicate the end of a region.
unsigned RecordRegionEnd(GlobalVariable *V) {
if (TimePassesIsEnabled)
@@ -3469,23 +3377,6 @@
if (TimePassesIsEnabled)
DebugTimer->stopTimer();
}
-
- //// RecordInlineInfo - Global variable GV is inlined at the location marked
- //// by LabelID label.
- void RecordInlineInfo(GlobalVariable *GV, unsigned LabelID) {
- MMI->RecordUsedDbgLabel(LabelID);
- DenseMap<GlobalVariable *, SmallVector<unsigned, 4> >::iterator
- I = InlineInfo.find(GV);
- if (I == InlineInfo.end()) {
- SmallVector<unsigned, 4> Labels;
- Labels.push_back(LabelID);
- InlineInfo[GV] = Labels;
- return;
- }
-
- SmallVector<unsigned, 4> &Labels = I->second;
- Labels.push_back(LabelID);
- }
};
//===----------------------------------------------------------------------===//
@@ -4641,11 +4532,6 @@
return DD->RecordRegionStart(V);
}
-/// RecordRegionStart - Indicate the start of a region.
-unsigned DwarfWriter::RecordRegionStart(GlobalVariable *V, unsigned ID) {
- return DD->RecordRegionStart(V, ID);
-}
-
/// RecordRegionEnd - Indicate the end of a region.
unsigned DwarfWriter::RecordRegionEnd(GlobalVariable *V) {
return DD->RecordRegionEnd(V);
@@ -4667,10 +4553,3 @@
bool DwarfWriter::ShouldEmitDwarfDebug() const {
return DD->ShouldEmitDwarfDebug();
}
-
-//// RecordInlineInfo - Global variable GV is inlined at the location marked
-//// by LabelID label.
-void DwarfWriter::RecordInlineInfo(GlobalVariable *GV, unsigned LabelID) {
- DD->RecordInlineInfo(GV, LabelID);
-}
-
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp?rev=68863&r1=68862&r2=68863&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp Sat Apr 11 10:57:04 2009
@@ -372,23 +372,11 @@
// Record the source line.
unsigned Line = Subprogram.getLineNumber();
- unsigned LabelID = DW->RecordSourceLine(Line, 0, SrcFile);
+ DW->RecordSourceLine(Line, 0, SrcFile);
setCurDebugLoc(DebugLoc::get(MF.getOrCreateDebugLocID(SrcFile, Line, 0)));
- std::string SPName;
- Subprogram.getLinkageName(SPName);
- if (!SPName.empty()
- && strcmp(SPName.c_str(), MF.getFunction()->getNameStart())) {
- // This is a beginning of inlined function.
- DW->RecordRegionStart(cast<GlobalVariable>(FSI->getSubprogram()),
- LabelID);
- const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL);
- BuildMI(MBB, DL, II).addImm(LabelID);
- DW->RecordInlineInfo(Subprogram.getGV(), LabelID);
- } else {
- // llvm.dbg.func_start also defines beginning of function scope.
- DW->RecordRegionStart(cast<GlobalVariable>(FSI->getSubprogram()));
- }
+ // llvm.dbg.func_start also defines beginning of function scope.
+ DW->RecordRegionStart(cast<GlobalVariable>(FSI->getSubprogram()));
}
return true;
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp?rev=68863&r1=68862&r2=68863&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp Sat Apr 11 10:57:04 2009
@@ -3955,18 +3955,6 @@
DwarfWriter *DW = DAG.getDwarfWriter();
DbgRegionEndInst &REI = cast<DbgRegionEndInst>(I);
if (DW && DW->ValidDebugInfo(REI.getContext())) {
-
- MachineFunction &MF = DAG.getMachineFunction();
- DISubprogram Subprogram(cast<GlobalVariable>(REI.getContext()));
- std::string SPName;
- Subprogram.getLinkageName(SPName);
- if (!SPName.empty()
- && strcmp(SPName.c_str(), MF.getFunction()->getNameStart())) {
- // This is end of inlined function. Debugging information for
- // inlined function is not handled yet (only supported by FastISel).
- return 0;
- }
-
unsigned LabelID =
DW->RecordRegionEnd(cast<GlobalVariable>(REI.getContext()));
if (Fast)
@@ -3986,16 +3974,6 @@
// what (most?) gdb expects.
MachineFunction &MF = DAG.getMachineFunction();
DISubprogram Subprogram(cast<GlobalVariable>(SP));
-
- std::string SPName;
- Subprogram.getLinkageName(SPName);
- if (!SPName.empty()
- && strcmp(SPName.c_str(), MF.getFunction()->getNameStart())) {
- // This is beginning of inlined function. Debugging information for
- // inlined function is not handled yet (only supported by FastISel).
- return 0;
- }
-
DICompileUnit CompileUnit = Subprogram.getCompileUnit();
std::string Dir, FN;
unsigned SrcFile = DW->getOrCreateSourceID(CompileUnit.getDirectory(Dir),
Modified: llvm/trunk/lib/Target/TargetAsmInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetAsmInfo.cpp?rev=68863&r1=68862&r2=68863&view=diff
==============================================================================
--- llvm/trunk/lib/Target/TargetAsmInfo.cpp (original)
+++ llvm/trunk/lib/Target/TargetAsmInfo.cpp Sat Apr 11 10:57:04 2009
@@ -112,7 +112,6 @@
DwarfFrameSection = ".debug_frame";
DwarfPubNamesSection = ".debug_pubnames";
DwarfPubTypesSection = ".debug_pubtypes";
- DwarfDebugInlineSection = ".debug_inlined";
DwarfStrSection = ".debug_str";
DwarfLocSection = ".debug_loc";
DwarfARangesSection = ".debug_aranges";
Modified: llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp?rev=68863&r1=68862&r2=68863&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86TargetAsmInfo.cpp Sat Apr 11 10:57:04 2009
@@ -112,7 +112,6 @@
DwarfFrameSection = ".section __DWARF,__debug_frame,regular,debug";
DwarfPubNamesSection = ".section __DWARF,__debug_pubnames,regular,debug";
DwarfPubTypesSection = ".section __DWARF,__debug_pubtypes,regular,debug";
- DwarfDebugInlineSection = ".section __DWARF,__debug_inlined,regular,debug";
DwarfStrSection = ".section __DWARF,__debug_str,regular,debug";
DwarfLocSection = ".section __DWARF,__debug_loc,regular,debug";
DwarfARangesSection = ".section __DWARF,__debug_aranges,regular,debug";
More information about the llvm-commits
mailing list