diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-02-10 21:25:13 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-02-10 21:25:13 +0000 |
commit | 4822c5fa52bcc581ac54046b1f5f28be6159bb4e (patch) | |
tree | 0cf6621dbc19cf4c342d6def39a19bb61f2e8ca7 | |
parent | b89b11926cfdfdb853bb0aeae76c5de834934be4 (diff) | |
download | llvm-4822c5fa52bcc581ac54046b1f5f28be6159bb4e.tar.gz llvm-4822c5fa52bcc581ac54046b1f5f28be6159bb4e.tar.bz2 llvm-4822c5fa52bcc581ac54046b1f5f28be6159bb4e.tar.xz |
Mark the methods in the Mangler const.
A const ObjectFile needs to be able to provide its name. For an IRObjectFile,
that means being able to call the mangler. Since each IRObjectFile can have
a different mangling, it is natural for them to contain a Mangler which is
therefore also const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201113 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/IR/Mangler.h | 13 | ||||
-rw-r--r-- | lib/IR/Mangler.cpp | 11 |
2 files changed, 13 insertions, 11 deletions
diff --git a/include/llvm/IR/Mangler.h b/include/llvm/IR/Mangler.h index 9229dd8446..07f4feda7e 100644 --- a/include/llvm/IR/Mangler.h +++ b/include/llvm/IR/Mangler.h @@ -39,11 +39,11 @@ private: /// they are mangled. This keeps track of the number we give to anonymous /// ones. /// - DenseMap<const GlobalValue*, unsigned> AnonGlobalIDs; + mutable DenseMap<const GlobalValue*, unsigned> AnonGlobalIDs; /// NextAnonGlobalID - This simple counter is used to unique value names. /// - unsigned NextAnonGlobalID; + mutable unsigned NextAnonGlobalID; public: Mangler(const DataLayout *DL) : DL(DL), NextAnonGlobalID(1) {} @@ -51,15 +51,16 @@ public: /// Print the appropriate prefix and the specified global variable's name. /// If the global variable doesn't have a name, this fills in a unique name /// for the global. - void getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV); - void getNameWithPrefix(SmallVectorImpl<char> &OutName, const GlobalValue *GV); + void getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) const; + void getNameWithPrefix(SmallVectorImpl<char> &OutName, + const GlobalValue *GV) const; /// Print the appropriate prefix and the specified name as the global variable /// name. GVName must not be empty. void getNameWithPrefix(raw_ostream &OS, const Twine &GVName, - ManglerPrefixTy PrefixTy = Mangler::Default); + ManglerPrefixTy PrefixTy = Mangler::Default) const; void getNameWithPrefix(SmallVectorImpl<char> &OutName, const Twine &GVName, - ManglerPrefixTy PrefixTy = Mangler::Default); + ManglerPrefixTy PrefixTy = Mangler::Default) const; }; } // End llvm namespace diff --git a/lib/IR/Mangler.cpp b/lib/IR/Mangler.cpp index bc1362dc80..9c18e6f300 100644 --- a/lib/IR/Mangler.cpp +++ b/lib/IR/Mangler.cpp @@ -44,13 +44,14 @@ static void getNameWithPrefixx(raw_ostream &OS, const Twine &GVName, OS << Name; } -void Mangler::getNameWithPrefix(raw_ostream &OS, - const Twine &GVName, ManglerPrefixTy PrefixTy) { +void Mangler::getNameWithPrefix(raw_ostream &OS, const Twine &GVName, + ManglerPrefixTy PrefixTy) const { return getNameWithPrefixx(OS, GVName, PrefixTy, *DL, false); } void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName, - const Twine &GVName, ManglerPrefixTy PrefixTy) { + const Twine &GVName, + ManglerPrefixTy PrefixTy) const { raw_svector_ostream OS(OutName); return getNameWithPrefix(OS, GVName, PrefixTy); } @@ -75,7 +76,7 @@ static void AddFastCallStdCallSuffix(raw_ostream &OS, const Function *F, OS << '@' << ArgWords; } -void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) { +void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) const { ManglerPrefixTy PrefixTy = Mangler::Default; if (GV->hasPrivateLinkage()) PrefixTy = Mangler::Private; @@ -133,7 +134,7 @@ void Mangler::getNameWithPrefix(raw_ostream &OS, const GlobalValue *GV) { } void Mangler::getNameWithPrefix(SmallVectorImpl<char> &OutName, - const GlobalValue *GV) { + const GlobalValue *GV) const { raw_svector_ostream OS(OutName); getNameWithPrefix(OS, GV); } |