Reduce clutter in asm output. Do not emit source location as comment for each instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129715 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel 2011-04-18 20:26:49 +00:00
parent 5d5ef4a886
commit 3f3bf9387b
8 changed files with 22 additions and 39 deletions

View File

@ -422,7 +422,8 @@ namespace llvm {
virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line, virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
unsigned Column, unsigned Flags, unsigned Column, unsigned Flags,
unsigned Isa, unsigned Isa,
unsigned Discriminator); unsigned Discriminator,
StringRef FileName);
virtual void EmitDwarfAdvanceLineAddr(int64_t LineDelta, virtual void EmitDwarfAdvanceLineAddr(int64_t LineDelta,
const MCSymbol *LastLabel, const MCSymbol *LastLabel,

View File

@ -486,39 +486,11 @@ void AsmPrinter::EmitFunctionEntryLabel() {
} }
static void EmitDebugLoc(DebugLoc DL, const MachineFunction *MF,
raw_ostream &CommentOS) {
const LLVMContext &Ctx = MF->getFunction()->getContext();
if (!DL.isUnknown()) { // Print source line info.
DIScope Scope(DL.getScope(Ctx));
// Omit the directory, because it's likely to be long and uninteresting.
if (Scope.Verify())
CommentOS << Scope.getFilename();
else
CommentOS << "<unknown>";
CommentOS << ':' << DL.getLine();
if (DL.getCol() != 0)
CommentOS << ':' << DL.getCol();
DebugLoc InlinedAtDL = DebugLoc::getFromDILocation(DL.getInlinedAt(Ctx));
if (!InlinedAtDL.isUnknown()) {
CommentOS << "[ ";
EmitDebugLoc(InlinedAtDL, MF, CommentOS);
CommentOS << " ]";
}
}
}
/// EmitComments - Pretty-print comments for instructions. /// EmitComments - Pretty-print comments for instructions.
static void EmitComments(const MachineInstr &MI, raw_ostream &CommentOS) { static void EmitComments(const MachineInstr &MI, raw_ostream &CommentOS) {
const MachineFunction *MF = MI.getParent()->getParent(); const MachineFunction *MF = MI.getParent()->getParent();
const TargetMachine &TM = MF->getTarget(); const TargetMachine &TM = MF->getTarget();
DebugLoc DL = MI.getDebugLoc();
if (!DL.isUnknown()) { // Print source line info.
EmitDebugLoc(DL, MF, CommentOS);
CommentOS << '\n';
}
// Check for spills and reloads // Check for spills and reloads
int FI; int FI;

View File

@ -2146,9 +2146,8 @@ void DwarfDebug::recordSourceLine(unsigned Line, unsigned Col, const MDNode *S){
Src = GetOrCreateSourceID(Fn, Dir); Src = GetOrCreateSourceID(Fn, Dir);
} }
Asm->OutStreamer.EmitDwarfLocDirective(Src, Line, Col, DWARF2_FLAG_IS_STMT, Asm->OutStreamer.EmitDwarfLocDirective(Src, Line, Col, DWARF2_FLAG_IS_STMT,
0, 0); 0, 0, Fn);
} }
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//

View File

@ -182,7 +182,8 @@ public:
virtual bool EmitDwarfFileDirective(unsigned FileNo, StringRef Filename); virtual bool EmitDwarfFileDirective(unsigned FileNo, StringRef Filename);
virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line, virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
unsigned Column, unsigned Flags, unsigned Column, unsigned Flags,
unsigned Isa, unsigned Discriminator); unsigned Isa, unsigned Discriminator,
StringRef FileName);
virtual void EmitCFIStartProc(); virtual void EmitCFIStartProc();
virtual void EmitCFIEndProc(); virtual void EmitCFIEndProc();
@ -689,9 +690,10 @@ bool MCAsmStreamer::EmitDwarfFileDirective(unsigned FileNo, StringRef Filename){
void MCAsmStreamer::EmitDwarfLocDirective(unsigned FileNo, unsigned Line, void MCAsmStreamer::EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
unsigned Column, unsigned Flags, unsigned Column, unsigned Flags,
unsigned Isa, unsigned Isa,
unsigned Discriminator) { unsigned Discriminator,
StringRef FileName) {
this->MCStreamer::EmitDwarfLocDirective(FileNo, Line, Column, Flags, this->MCStreamer::EmitDwarfLocDirective(FileNo, Line, Column, Flags,
Isa, Discriminator); Isa, Discriminator, FileName);
if (!UseLoc) if (!UseLoc)
return; return;
@ -717,6 +719,12 @@ void MCAsmStreamer::EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
OS << "isa " << Isa; OS << "isa " << Isa;
if (Discriminator) if (Discriminator)
OS << "discriminator " << Discriminator; OS << "discriminator " << Discriminator;
if (IsVerboseAsm) {
OS.PadToColumn(MAI.getCommentColumn());
OS << MAI.getCommentString() << ' ' << FileName << ':'
<< Line << ':' << Column;
}
EmitEOL(); EmitEOL();
} }

View File

@ -215,13 +215,14 @@ public:
virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line, virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
unsigned Column, unsigned Flags, unsigned Column, unsigned Flags,
unsigned Isa, unsigned Discriminator) { unsigned Isa, unsigned Discriminator,
StringRef FileName) {
LogCall("EmitDwarfLocDirective", LogCall("EmitDwarfLocDirective",
"FileNo:" + Twine(FileNo) + " Line:" + Twine(Line) + "FileNo:" + Twine(FileNo) + " Line:" + Twine(Line) +
" Column:" + Twine(Column) + " Flags:" + Twine(Flags) + " Column:" + Twine(Column) + " Flags:" + Twine(Flags) +
" Isa:" + Twine(Isa) + " Discriminator:" + Twine(Discriminator)); " Isa:" + Twine(Isa) + " Discriminator:" + Twine(Discriminator));
return Child->EmitDwarfLocDirective(FileNo, Line, Column, Flags, return Child->EmitDwarfLocDirective(FileNo, Line, Column, Flags,
Isa, Discriminator); Isa, Discriminator, FileName);
} }
virtual void EmitInstruction(const MCInst &Inst) { virtual void EmitInstruction(const MCInst &Inst) {

View File

@ -89,7 +89,8 @@ namespace {
} }
virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line, virtual void EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
unsigned Column, unsigned Flags, unsigned Column, unsigned Flags,
unsigned Isa, unsigned Discriminator) {} unsigned Isa, unsigned Discriminator,
StringRef FileName) {}
virtual void EmitInstruction(const MCInst &Inst) {} virtual void EmitInstruction(const MCInst &Inst) {}
virtual void Finish() {} virtual void Finish() {}

View File

@ -2253,7 +2253,7 @@ bool GenericAsmParser::ParseDirectiveLoc(StringRef, SMLoc DirectiveLoc) {
} }
getStreamer().EmitDwarfLocDirective(FileNumber, LineNumber, ColumnPos, Flags, getStreamer().EmitDwarfLocDirective(FileNumber, LineNumber, ColumnPos, Flags,
Isa, Discriminator); Isa, Discriminator, StringRef());
return false; return false;
} }

View File

@ -135,7 +135,8 @@ bool MCStreamer::EmitDwarfFileDirective(unsigned FileNo,
void MCStreamer::EmitDwarfLocDirective(unsigned FileNo, unsigned Line, void MCStreamer::EmitDwarfLocDirective(unsigned FileNo, unsigned Line,
unsigned Column, unsigned Flags, unsigned Column, unsigned Flags,
unsigned Isa, unsigned Isa,
unsigned Discriminator) { unsigned Discriminator,
StringRef FileName) {
getContext().setCurrentDwarfLoc(FileNo, Line, Column, Flags, Isa, getContext().setCurrentDwarfLoc(FileNo, Line, Column, Flags, Isa,
Discriminator); Discriminator);
} }