[llvm-commits] [llvm] r94215 - /llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Chris Lattner
sabre at nondot.org
Fri Jan 22 13:00:45 PST 2010
Author: lattner
Date: Fri Jan 22 15:00:45 2010
New Revision: 94215
URL: http://llvm.org/viewvc/llvm-project?rev=94215&view=rev
Log:
reenable the label loop comments and switch them to use the formatted
comment emission stuff. I'm going to rewrite this though because the
current output doesn't make sense.
Modified:
llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=94215&r1=94214&r2=94215&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Fri Jan 22 15:00:45 2010
@@ -1677,6 +1677,8 @@
if (const BasicBlock *BB = MBB->getBasicBlock())
if (BB->hasName())
OutStreamer.AddComment("%" + BB->getName());
+
+ EmitComments(*MBB);
OutStreamer.AddBlankLine();
}
} else {
@@ -1684,16 +1686,11 @@
if (const BasicBlock *BB = MBB->getBasicBlock())
if (BB->hasName())
OutStreamer.AddComment("%" + BB->getName());
+ EmitComments(*MBB);
}
+
OutStreamer.EmitLabel(GetMBBSymbol(MBB->getNumber()));
}
-
- // Print some comments to accompany the label.
- // FIXME: REENABLE.
- if (0 && VerboseAsm) {
- EmitComments(*MBB);
- O << '\n';
- }
}
/// printPICJumpTableSetLabel - This method prints a set label for the
@@ -1850,78 +1847,54 @@
/// PrintChildLoopComment - Print comments about child loops within
/// the loop for this basic block, with nesting.
-///
-static void PrintChildLoopComment(formatted_raw_ostream &O,
- const MachineLoop *loop,
- const MCAsmInfo *MAI,
- int FunctionNumber) {
+static void PrintChildLoopComment(MCStreamer &O, const MachineLoop *Loop,
+ unsigned FunctionNumber) {
+ raw_ostream &OS = O.GetCommentOS();
// Add child loop information
- for(MachineLoop::iterator cl = loop->begin(),
- clend = loop->end();
- cl != clend;
- ++cl) {
- MachineBasicBlock *Header = (*cl)->getHeader();
+ for (MachineLoop::iterator CL = Loop->begin(), E = Loop->end();CL != E; ++CL){
+ MachineBasicBlock *Header = (*CL)->getHeader();
assert(Header && "No header for loop");
-
- O << '\n';
- O.PadToColumn(MAI->getCommentColumn());
-
- O << MAI->getCommentString();
- O.indent(((*cl)->getLoopDepth()-1)*2)
- << " Child Loop BB" << FunctionNumber << "_"
- << Header->getNumber() << " Depth " << (*cl)->getLoopDepth();
-
- PrintChildLoopComment(O, *cl, MAI, FunctionNumber);
+ OS.indent(((*CL)->getLoopDepth()-1)*2)
+ << "Child Loop BB" << FunctionNumber << "_"
+ << Header->getNumber() << " Depth " << (*CL)->getLoopDepth() << '\n';
+ PrintChildLoopComment(O, *CL, FunctionNumber);
}
}
/// EmitComments - Pretty-print comments for basic blocks
void AsmPrinter::EmitComments(const MachineBasicBlock &MBB) const {
- if (VerboseAsm) {
- // Add loop depth information
- const MachineLoop *loop = LI->getLoopFor(&MBB);
-
- if (loop) {
- // Print a newline after bb# annotation.
- O << "\n";
- O.PadToColumn(MAI->getCommentColumn());
- O << MAI->getCommentString() << " Loop Depth " << loop->getLoopDepth()
- << '\n';
+ assert(VerboseAsm && "Shouldn't be called unless in verbose asm mode");
+
+ // Add loop depth information
+ const MachineLoop *Loop = LI->getLoopFor(&MBB);
+ if (Loop == 0) return;
- O.PadToColumn(MAI->getCommentColumn());
+ OutStreamer.AddComment("Loop Depth " + Twine(Loop->getLoopDepth()));
- MachineBasicBlock *Header = loop->getHeader();
- assert(Header && "No header for loop");
-
- if (Header == &MBB) {
- O << MAI->getCommentString() << " Loop Header";
- PrintChildLoopComment(O, loop, MAI, getFunctionNumber());
- }
- else {
- O << MAI->getCommentString() << " Loop Header is BB"
- << getFunctionNumber() << "_" << loop->getHeader()->getNumber();
- }
-
- if (loop->empty()) {
- O << '\n';
- O.PadToColumn(MAI->getCommentColumn());
- O << MAI->getCommentString() << " Inner Loop";
- }
-
- // Add parent loop information
- for (const MachineLoop *CurLoop = loop->getParentLoop();
- CurLoop;
- CurLoop = CurLoop->getParentLoop()) {
- MachineBasicBlock *Header = CurLoop->getHeader();
- assert(Header && "No header for loop");
-
- O << '\n';
- O.PadToColumn(MAI->getCommentColumn());
- O << MAI->getCommentString();
- O.indent((CurLoop->getLoopDepth()-1)*2)
- << " Inside Loop BB" << getFunctionNumber() << "_"
- << Header->getNumber() << " Depth " << CurLoop->getLoopDepth();
- }
- }
+ MachineBasicBlock *Header = Loop->getHeader();
+ assert(Header && "No header for loop");
+
+ if (Header != &MBB) {
+ OutStreamer.AddComment("Loop Header is BB" + Twine(getFunctionNumber()) +
+ "_" + Twine(Loop->getHeader()->getNumber()));
+ } else {
+ OutStreamer.AddComment("Loop Header");
+ PrintChildLoopComment(OutStreamer, Loop, getFunctionNumber());
+ }
+
+ if (Loop->empty())
+ OutStreamer.AddComment("Inner Loop");
+
+ raw_ostream &OS = OutStreamer.GetCommentOS();
+
+ // Add parent loop information.
+ for (const MachineLoop *CurLoop = Loop->getParentLoop(); CurLoop;
+ CurLoop = CurLoop->getParentLoop()) {
+ MachineBasicBlock *Header = CurLoop->getHeader();
+ assert(Header && "No header for loop");
+
+ OS.indent(CurLoop->getLoopDepth()*2)
+ << "Inside Loop BB" << getFunctionNumber() << "_"
+ << Header->getNumber() << " Depth " << CurLoop->getLoopDepth() << '\n';
}
}
More information about the llvm-commits
mailing list