summaryrefslogtreecommitdiff
path: root/include/llvm/Assembly
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-02-28 23:20:19 +0000
committerChris Lattner <sabre@nondot.org>2009-02-28 23:20:19 +0000
commite9fa33eb6629aea72cd59560216bb6a7b8ebc689 (patch)
tree0b68e3986e808865caf32f0d4b5065b8beb8ffd8 /include/llvm/Assembly
parent87185e82f683cf3c046ddf974513d5a286422f5f (diff)
downloadllvm-e9fa33eb6629aea72cd59560216bb6a7b8ebc689.tar.gz
llvm-e9fa33eb6629aea72cd59560216bb6a7b8ebc689.tar.bz2
llvm-e9fa33eb6629aea72cd59560216bb6a7b8ebc689.tar.xz
move type name population out of TypePrinting class into a static
AsmWriter.cpp method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65736 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Assembly')
-rw-r--r--include/llvm/Assembly/Writer.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/include/llvm/Assembly/Writer.h b/include/llvm/Assembly/Writer.h
index c9f73eed91..1138919bb4 100644
--- a/include/llvm/Assembly/Writer.h
+++ b/include/llvm/Assembly/Writer.h
@@ -29,11 +29,11 @@ template <typename T> class SmallVectorImpl;
/// TypePrinting - Type printing machinery.
class TypePrinting {
- void *TypeNames;
+ void *TypeNames; // A map to remember type names.
TypePrinting(const TypePrinting &); // DO NOT IMPLEMENT
void operator=(const TypePrinting&); // DO NOT IMPLEMENT
public:
- TypePrinting(const Module *M = 0);
+ TypePrinting();
~TypePrinting();
void clear();
@@ -41,6 +41,15 @@ public:
void print(const Type *Ty, raw_ostream &OS);
void printAtLeastOneLevel(const Type *Ty, raw_ostream &OS);
+ /// hasTypeName - Return true if the type has a name in TypeNames, false
+ /// otherwise.
+ bool hasTypeName(const Type *Ty) const;
+
+ /// addTypeName - Add a name for the specified type if it doesn't already have
+ /// one. This name will be printed instead of the structural version of the
+ /// type in order to make the output more concise.
+ void addTypeName(const Type *Ty, const std::string &N);
+
private:
void CalcTypeName(const Type *Ty, SmallVectorImpl<const Type *> &TypeStack,
raw_ostream &OS);