diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/Bytecode/BytecodeHandler.h | 6 | ||||
-rw-r--r-- | include/llvm/Function.h | 18 | ||||
-rw-r--r-- | include/llvm/GlobalAlias.h | 37 | ||||
-rw-r--r-- | include/llvm/GlobalValue.h | 10 | ||||
-rw-r--r-- | include/llvm/GlobalVariable.h | 4 |
5 files changed, 38 insertions, 37 deletions
diff --git a/include/llvm/Bytecode/BytecodeHandler.h b/include/llvm/Bytecode/BytecodeHandler.h index 3d885e1..e45266b 100644 --- a/include/llvm/Bytecode/BytecodeHandler.h +++ b/include/llvm/Bytecode/BytecodeHandler.h @@ -116,6 +116,12 @@ public: bool isThreadLocal ///< Whether the GV is thread local or not ) {} + virtual void handleGlobalAlias( + const Type* ElemType, + GlobalValue::LinkageTypes Linkage, + unsigned TypeSlotNum, + unsigned AliaseeSlot) { } + /// This method is called when a type list is recognized. It simply /// provides the number of types that the list contains. The handler /// should expect that number of calls to handleType. diff --git a/include/llvm/Function.h b/include/llvm/Function.h index c0984f6..71fb87e 100644 --- a/include/llvm/Function.h +++ b/include/llvm/Function.h @@ -81,6 +81,15 @@ private: void setNext(Function *N) { Next = N; } void setPrev(Function *N) { Prev = N; } + // getNext/Prev - Return the next or previous function in the list. These + // methods should never be used directly, and are only used to implement the + // function list as part of the module. + // + Function *getNext() { return Next; } + const Function *getNext() const { return Next; } + Function *getPrev() { return Prev; } + const Function *getPrev() const { return Prev; } + public: /// Function ctor - If the (optional) Module argument is specified, the /// function is automatically inserted into the end of the function list for @@ -243,15 +252,6 @@ public: Function *Obj = 0; return unsigned(reinterpret_cast<uintptr_t>(&Obj->ArgumentList)); } -private: - // getNext/Prev - Return the next or previous function in the list. These - // methods should never be used directly, and are only used to implement the - // function list as part of the module. - // - Function *getNext() { return Next; } - const Function *getNext() const { return Next; } - Function *getPrev() { return Prev; } - const Function *getPrev() const { return Prev; } }; inline ValueSymbolTable * 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 diff --git a/include/llvm/GlobalValue.h b/include/llvm/GlobalValue.h index 317aa48..014cdbe 100644 --- a/include/llvm/GlobalValue.h +++ b/include/llvm/GlobalValue.h @@ -121,16 +121,6 @@ public: /// value is outside of the current translation unit... virtual bool isDeclaration() const = 0; - /// removeFromParent - This method unlinks 'this' from the containing module, - /// but does not delete it. - /// - virtual void removeFromParent() = 0; - - /// eraseFromParent - This method unlinks 'this' from the containing module - /// and deletes it. - /// - virtual void eraseFromParent() = 0; - /// getParent - Get the module that this global value is contained inside /// of... inline Module *getParent() { return Parent; } diff --git a/include/llvm/GlobalVariable.h b/include/llvm/GlobalVariable.h index 303e57f..00d4acb 100644 --- a/include/llvm/GlobalVariable.h +++ b/include/llvm/GlobalVariable.h @@ -107,12 +107,12 @@ 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(); /// Override Constant's implementation of this method so we can /// replace constant initializers. |