[llvm-commits] [llvm] r94227 - in /llvm/trunk: include/llvm/CodeGen/AsmPrinter.h lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Chris Lattner
sabre at nondot.org
Fri Jan 22 13:50:42 PST 2010
Author: lattner
Date: Fri Jan 22 15:50:41 2010
New Revision: 94227
URL: http://llvm.org/viewvc/llvm-project?rev=94227&view=rev
Log:
change this to be a static function instead of a method on asmprinter.
Modified:
llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
Modified: llvm/trunk/include/llvm/CodeGen/AsmPrinter.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/AsmPrinter.h?rev=94227&r1=94226&r2=94227&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (original)
+++ llvm/trunk/include/llvm/CodeGen/AsmPrinter.h Fri Jan 22 15:50:41 2010
@@ -336,8 +336,6 @@
/// EmitComments - Pretty-print comments for instructions
void EmitComments(const MachineInstr &MI) const;
- /// EmitComments - Pretty-print comments for basic blocks
- void EmitComments(const MachineBasicBlock &MBB) const;
/// GetGlobalValueSymbol - Return the MCSymbol for the specified global
/// value.
Modified: llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=94227&r1=94226&r2=94227&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp Fri Jan 22 15:50:41 2010
@@ -1650,6 +1650,72 @@
}
+
+/// PrintParentLoopComment - Print comments about parent loops of this one.
+static void PrintParentLoopComment(raw_ostream &OS, const MachineLoop *Loop,
+ unsigned FunctionNumber) {
+ if (Loop == 0) return;
+ PrintParentLoopComment(OS, Loop->getParentLoop(), FunctionNumber);
+ OS.indent(Loop->getLoopDepth()*2)
+ << "Parent Loop BB" << FunctionNumber << "_"
+ << Loop->getHeader()->getNumber()
+ << " Depth=" << Loop->getLoopDepth() << '\n';
+}
+
+
+/// PrintChildLoopComment - Print comments about child loops within
+/// the loop for this basic block, with nesting.
+static void PrintChildLoopComment(raw_ostream &OS, const MachineLoop *Loop,
+ unsigned FunctionNumber) {
+ // Add child loop information
+ for (MachineLoop::iterator CL = Loop->begin(), E = Loop->end();CL != E; ++CL){
+ OS.indent((*CL)->getLoopDepth()*2)
+ << "Child Loop BB" << FunctionNumber << "_"
+ << (*CL)->getHeader()->getNumber() << " Depth " << (*CL)->getLoopDepth()
+ << '\n';
+ PrintChildLoopComment(OS, *CL, FunctionNumber);
+ }
+}
+
+/// EmitComments - Pretty-print comments for basic blocks.
+static void PrintBasicBlockLoopComments(const MachineBasicBlock &MBB,
+ const MachineLoopInfo *LI,
+ const AsmPrinter &AP) {
+ // Add loop depth information
+ const MachineLoop *Loop = LI->getLoopFor(&MBB);
+ if (Loop == 0) return;
+
+ MachineBasicBlock *Header = Loop->getHeader();
+ assert(Header && "No header for loop");
+
+ // If this block is not a loop header, just print out what is the loop header
+ // and return.
+ if (Header != &MBB) {
+ AP.OutStreamer.AddComment(" in Loop: Header=BB" +
+ Twine(AP.getFunctionNumber())+"_" +
+ Twine(Loop->getHeader()->getNumber())+
+ " Depth="+Twine(Loop->getLoopDepth()));
+ return;
+ }
+
+ // Otherwise, it is a loop header. Print out information about child and
+ // parent loops.
+ raw_ostream &OS = AP.OutStreamer.GetCommentOS();
+
+ PrintParentLoopComment(OS, Loop->getParentLoop(), AP.getFunctionNumber());
+
+ OS << "=>";
+ OS.indent(Loop->getLoopDepth()*2-2);
+
+ OS << "This ";
+ if (Loop->empty())
+ OS << "Inner ";
+ OS << "Loop Header: Depth=" + Twine(Loop->getLoopDepth()) << '\n';
+
+ PrintChildLoopComment(OS, Loop, AP.getFunctionNumber());
+}
+
+
/// EmitBasicBlockStart - This method prints the label for the specified
/// MachineBasicBlock, an alignment (if present) and a comment describing
/// it if appropriate.
@@ -1678,7 +1744,7 @@
if (BB->hasName())
OutStreamer.AddComment("%" + BB->getName());
- EmitComments(*MBB);
+ PrintBasicBlockLoopComments(*MBB, LI, *this);
OutStreamer.AddBlankLine();
}
} else {
@@ -1686,7 +1752,7 @@
if (const BasicBlock *BB = MBB->getBasicBlock())
if (BB->hasName())
OutStreamer.AddComment("%" + BB->getName());
- EmitComments(*MBB);
+ PrintBasicBlockLoopComments(*MBB, LI, *this);
}
OutStreamer.EmitLabel(GetMBBSymbol(MBB->getNumber()));
@@ -1845,67 +1911,3 @@
}
}
-/// PrintParentLoopComment - Print comments about parent loops of this one.
-static void PrintParentLoopComment(raw_ostream &OS, const MachineLoop *Loop,
- unsigned FunctionNumber) {
- if (Loop == 0) return;
-
- PrintParentLoopComment(OS, Loop->getParentLoop(), FunctionNumber);
-
- OS.indent(Loop->getLoopDepth()*2)
- << "Parent Loop BB" << FunctionNumber << "_"
- << Loop->getHeader()->getNumber()
- << " Depth=" << Loop->getLoopDepth() << '\n';
-}
-
-
-/// PrintChildLoopComment - Print comments about child loops within
-/// the loop for this basic block, with nesting.
-static void PrintChildLoopComment(raw_ostream &OS, const MachineLoop *Loop,
- unsigned FunctionNumber) {
- // Add child loop information
- for (MachineLoop::iterator CL = Loop->begin(), E = Loop->end();CL != E; ++CL){
- OS.indent((*CL)->getLoopDepth()*2)
- << "Child Loop BB" << FunctionNumber << "_"
- << (*CL)->getHeader()->getNumber() << " Depth " << (*CL)->getLoopDepth()
- << '\n';
- PrintChildLoopComment(OS, *CL, FunctionNumber);
- }
-}
-
-/// EmitComments - Pretty-print comments for basic blocks
-void AsmPrinter::EmitComments(const MachineBasicBlock &MBB) const {
- 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;
-
- MachineBasicBlock *Header = Loop->getHeader();
- assert(Header && "No header for loop");
-
- // If this block is not a loop header, just print out what is the loop header
- // and return.
- if (Header != &MBB) {
- OutStreamer.AddComment(" in Loop: Header=BB" + Twine(getFunctionNumber())+
- "_" + Twine(Loop->getHeader()->getNumber())+
- " Depth="+Twine(Loop->getLoopDepth()));
- return;
- }
-
- // Otherwise, it is a loop header. Print out information about child and
- // parent loops.
- raw_ostream &OS = OutStreamer.GetCommentOS();
-
- PrintParentLoopComment(OS, Loop->getParentLoop(), getFunctionNumber());
-
- OS << "=>";
- OS.indent(Loop->getLoopDepth()*2-2);
-
- OS << "This ";
- if (Loop->empty())
- OS << "Inner ";
- OS << "Loop Header: Depth=" + Twine(Loop->getLoopDepth()) << '\n';
-
- PrintChildLoopComment(OS, Loop, getFunctionNumber());
-}
More information about the llvm-commits
mailing list