diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2007-04-28 13:45:00 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2007-04-28 13:45:00 +0000 |
commit | a80e1181b78183dc36ec6568559d38faa86981f0 (patch) | |
tree | 88ca9bd2f28f363e50add28297f6220ac8e09fc1 /include/llvm/GlobalAlias.h | |
parent | 44b2c5098f5cf766b4eff43d9eb0d8a9a143e7d8 (diff) | |
download | external_llvm-a80e1181b78183dc36ec6568559d38faa86981f0.zip external_llvm-a80e1181b78183dc36ec6568559d38faa86981f0.tar.gz external_llvm-a80e1181b78183dc36ec6568559d38faa86981f0.tar.bz2 |
Implement review feedback. Aliasees can be either GlobalValue's or
bitcasts of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36537 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/GlobalAlias.h')
-rw-r--r-- | include/llvm/GlobalAlias.h | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/include/llvm/GlobalAlias.h b/include/llvm/GlobalAlias.h index ec6ea77..04bd5fb 100644 --- a/include/llvm/GlobalAlias.h +++ b/include/llvm/GlobalAlias.h @@ -1,4 +1,4 @@ -//===______-- llvm/GlobalAlias.h - GlobalAlias class ------------*- C++ -*-===// +//===-------- llvm/GlobalAlias.h - GlobalAlias class ------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -8,7 +8,7 @@ //===----------------------------------------------------------------------===// // // This file contains the declaration of the GlobalAlias class, which -// represents a single function or variable alias in the VM. +// represents a single function or variable alias in the IR. // //===----------------------------------------------------------------------===// @@ -36,13 +36,18 @@ class GlobalAlias : public GlobalValue { void setNext(GlobalAlias *N) { Next = N; } void setPrev(GlobalAlias *N) { Prev = N; } - const GlobalValue* Aliasee; - std::string Target; + // getNext/Prev - Return the next or previous alias in the list. + GlobalAlias *getNext() { return Next; } + const GlobalAlias *getNext() const { return Next; } + GlobalAlias *getPrev() { return Prev; } + const GlobalAlias *getPrev() const { return Prev; } + + Use Aliasee; public: /// GlobalAlias ctor - If a parent module is specified, the alias is - /// automatically inserted into the end of the specified modules alias list. + /// automatically inserted into the end of the specified module's alias list. GlobalAlias(const Type *Ty, LinkageTypes Linkage, const std::string &Name = "", - const GlobalValue* Aliasee = 0, Module *Parent = 0); + Constant* Aliasee = 0, Module *Parent = 0); /// isDeclaration - Is this global variable lacking an initializer? If so, /// the global variable is defined in some other translation unit, and is thus @@ -52,30 +57,30 @@ public: /// removeFromParent - This method unlinks 'this' from the containing module, /// but does not delete it. /// - virtual void removeFromParent(); + void removeFromParent(); /// eraseFromParent - This method unlinks 'this' from the containing module /// and deletes it. /// - virtual void eraseFromParent(); + void eraseFromParent(); virtual void print(std::ostream &OS) const; void print(std::ostream *OS) const { if (OS) print(*OS); } - void setAliasee(const GlobalValue* GV); - const GlobalValue* getAliasee() const { return Aliasee; } + /// set/getAliasee - These methods retrive and set alias target. + void setAliasee(Constant* GV); + const Constant* getAliasee() const { + return cast_or_null<Constant>(getOperand(0)); + } + Constant* getAliasee() { + return cast_or_null<Constant>(getOperand(0)); + } // Methods for support type inquiry through isa, cast, and dyn_cast: static inline bool classof(const GlobalAlias *) { return true; } static inline bool classof(const Value *V) { return V->getValueID() == Value::GlobalAliasVal; } -private: - // getNext/Prev - Return the next or previous alias in the list. - GlobalAlias *getNext() { return Next; } - const GlobalAlias *getNext() const { return Next; } - GlobalAlias *getPrev() { return Prev; } - const GlobalAlias *getPrev() const { return Prev; } }; } // End llvm namespace |