[llvm-commits] CVS: llvm/include/llvm/CodeGen/AsmPrinter.h

Chris Lattner lattner at cs.uiuc.edu
Mon Nov 21 00:13:01 PST 2005



Changes in directory llvm/include/llvm/CodeGen:

AsmPrinter.h updated: 1.18 -> 1.19
---
Log message:

Make the AsmPrinter keep track of the notion of a function number.


---
Diffs of the changes:  (+19 -2)

 AsmPrinter.h |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)


Index: llvm/include/llvm/CodeGen/AsmPrinter.h
diff -u llvm/include/llvm/CodeGen/AsmPrinter.h:1.18 llvm/include/llvm/CodeGen/AsmPrinter.h:1.19
--- llvm/include/llvm/CodeGen/AsmPrinter.h:1.18	Mon Nov 21 01:51:06 2005
+++ llvm/include/llvm/CodeGen/AsmPrinter.h	Mon Nov 21 02:12:47 2005
@@ -27,6 +27,14 @@
     /// CurrentSection - The current section we are emitting to.  This is
     /// controlled and used by the SwitchSection method.
     std::string CurrentSection;
+    
+    /// FunctionNumber - This provides a unique ID for each function emitted in
+    /// this translation unit.  It is autoincremented by SetupMachineFunction,
+    /// and can be accessed with getFunctionNumber() and 
+    /// IncrementFunctionNumber().
+    ///
+    unsigned FunctionNumber;
+    
   protected:
     /// Output stream on which we're printing assembly code.
     ///
@@ -112,7 +120,7 @@
     bool AlignmentIsInBytes;          // Defaults to true
 
     AsmPrinter(std::ostream &o, TargetMachine &tm)
-      : O(o), TM(tm),
+      : FunctionNumber(0), O(o), TM(tm),
         CommentString("#"),
         GlobalPrefix(""),
         PrivateGlobalPrefix("."),
@@ -140,7 +148,16 @@
     /// current section is, but does not emit a .section directive.
     ///
     void SwitchSection(const char *NewSection, const GlobalValue *GV);
-      
+
+    /// getFunctionNumber - Return a unique ID for the current function.
+    ///
+    unsigned getFunctionNumber() const { return FunctionNumber; }
+    
+    /// IncrementFunctionNumber - Increase Function Number.  AsmPrinters should
+    /// not normally call this, as the counter is automatically bumped by
+    /// SetupMachineFunction.
+    void IncrementFunctionNumber() { FunctionNumber++; }
+    
     /// doInitialization - Set up the AsmPrinter when we are working on a new
     /// module.  If your pass overrides this, it must make sure to explicitly
     /// call this implementation.






More information about the llvm-commits mailing list