diff options
author | Bill Wendling <isanbard@gmail.com> | 2008-11-04 22:51:24 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2008-11-04 22:51:24 +0000 |
commit | b7c2c1246f10972d5a8f55499226872608eb10f9 (patch) | |
tree | 49a98464696bc8346153399ac199678be10758fe /include/llvm/Module.h | |
parent | f1f75b1bd12d6badad382f473929a4b744010e2f (diff) |
- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to
"getOrInsertFunction" in that it either adds a new declaration of the global
and returns it, or returns the current one -- optionally casting it to the
correct type.
- Use the new getOrInsertGlobal in the stack protector code.
- Use "splitBasicBlock" in the stack protector code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58727 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Module.h')
-rw-r--r-- | include/llvm/Module.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/Module.h b/include/llvm/Module.h index de12157875..09eba81b4e 100644 --- a/include/llvm/Module.h +++ b/include/llvm/Module.h @@ -229,6 +229,15 @@ public: return getGlobalVariable(Name, true); } + /// getOrInsertGlobal - Look up the specified global in the module symbol + /// table. + /// 1. If it does not exist, add a declaration of the global and return it. + /// 2. Else, the global exists but has the wrong type: return the function + /// with a constantexpr cast to the right type. + /// 3. Finally, if the existing global is the correct delclaration, return + /// the existing global. + Constant *getOrInsertGlobal(const std::string &Name, const Type *Ty); + /// @} /// @name Global Alias Accessors /// @{ |