aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2009-07-02 18:03:58 +0000
committerOwen Anderson <resistor@mac.com>2009-07-02 18:03:58 +0000
commit62fabf5faba70c507c8fbe298260e9b3749fdd79 (patch)
treea01aafdaf0aa1c54e48b4f3d0ef9f8469f60bdc5
parent7c07f3ae8dd3ac5d6a2ac52c96cf41178b6ab396 (diff)
Add an accessor to Function so that Passes can easily get access to the context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74714 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Function.h5
-rw-r--r--lib/VMCore/Function.cpp6
2 files changed, 11 insertions, 0 deletions
diff --git a/include/llvm/Function.h b/include/llvm/Function.h
index 228ef9440e..34ced973dd 100644
--- a/include/llvm/Function.h
+++ b/include/llvm/Function.h
@@ -27,6 +27,7 @@
namespace llvm {
class FunctionType;
+class LLVMContext;
// Traits for intrusive list of basic blocks...
template<> struct ilist_traits<BasicBlock>
@@ -126,6 +127,10 @@ public:
const Type *getReturnType() const; // Return the type of the ret val
const FunctionType *getFunctionType() const; // Return the FunctionType for me
+ /// getContext - Return a pointer to the LLVMContext associated with this
+ /// function, or NULL if this function is not bound to a context yet.
+ LLVMContext* getContext();
+
/// isVarArg - Return true if this function takes a variable number of
/// arguments.
bool isVarArg() const;
diff --git a/lib/VMCore/Function.cpp b/lib/VMCore/Function.cpp
index 045056643b..eeade051ac 100644
--- a/lib/VMCore/Function.cpp
+++ b/lib/VMCore/Function.cpp
@@ -114,6 +114,12 @@ void Argument::removeAttr(Attributes attr) {
// Helper Methods in Function
//===----------------------------------------------------------------------===//
+LLVMContext* Function::getContext() {
+ Module* M = getParent();
+ if (M) return &M->getContext();
+ return 0;
+}
+
const FunctionType *Function::getFunctionType() const {
return cast<FunctionType>(getType()->getElementType());
}