Make ModRefBehavior a lattice. Use this to clean up AliasAnalysis
[oota-llvm.git] / include / llvm / Assembly / Writer.h
index 1138919bb4ad76600823b1549bc6b4d6885887f8..c5b239079a0d0853026628eced64807d4cc717a8 100644 (file)
@@ -17,7 +17,7 @@
 #ifndef LLVM_ASSEMBLY_WRITER_H
 #define LLVM_ASSEMBLY_WRITER_H
 
-#include <iosfwd>
+#include <string>
 
 namespace llvm {
 
@@ -38,8 +38,11 @@ public:
   
   void clear();
   
-  void print(const Type *Ty, raw_ostream &OS);
-  void printAtLeastOneLevel(const Type *Ty, raw_ostream &OS);
+  void print(const Type *Ty, raw_ostream &OS, bool IgnoreTopLevelName = false);
+  
+  void printAtLeastOneLevel(const Type *Ty, raw_ostream &OS) {
+    print(Ty, OS, true);
+  }
   
   /// hasTypeName - Return true if the type has a name in TypeNames, false
   /// otherwise.
@@ -52,7 +55,7 @@ public:
   
 private:
   void CalcTypeName(const Type *Ty, SmallVectorImpl<const Type *> &TypeStack,
-                    raw_ostream &OS);
+                    raw_ostream &OS, bool IgnoreTopLevelName = false);
 };
 
 // WriteTypeSymbolic - This attempts to write the specified type as a symbolic
@@ -67,8 +70,6 @@ void WriteTypeSymbolic(raw_ostream &, const Type *, const Module *M);
 // then even constants get pretty-printed; for example, the type of a null
 // pointer is printed symbolically.
 //
-void WriteAsOperand(std::ostream &, const Value *, bool PrintTy = true,
-                    const Module *Context = 0);
 void WriteAsOperand(raw_ostream &, const Value *, bool PrintTy = true,
                     const Module *Context = 0);