summaryrefslogtreecommitdiff
path: root/include/llvm/Module.h
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2008-11-04 22:51:24 +0000
committerBill Wendling <isanbard@gmail.com>2008-11-04 22:51:24 +0000
commitb7c2c1246f10972d5a8f55499226872608eb10f9 (patch)
tree49a98464696bc8346153399ac199678be10758fe /include/llvm/Module.h
parentf1f75b1bd12d6badad382f473929a4b744010e2f (diff)
downloadllvm-b7c2c1246f10972d5a8f55499226872608eb10f9.tar.gz
llvm-b7c2c1246f10972d5a8f55499226872608eb10f9.tar.bz2
llvm-b7c2c1246f10972d5a8f55499226872608eb10f9.tar.xz
- 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.h9
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
/// @{