aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/IntrinsicLowering.h7
-rw-r--r--include/llvm/IntrinsicLowering.h7
2 files changed, 14 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/IntrinsicLowering.h b/include/llvm/CodeGen/IntrinsicLowering.h
index 19ccb61b47..43a4c991cf 100644
--- a/include/llvm/CodeGen/IntrinsicLowering.h
+++ b/include/llvm/CodeGen/IntrinsicLowering.h
@@ -37,10 +37,16 @@
namespace llvm {
class CallInst;
+ class Module;
struct IntrinsicLowering {
virtual ~IntrinsicLowering() {}
+ /// AddPrototypes - This method, if called, causes all of the prototypes
+ /// that might be needed by an intrinsic lowering implementation to be
+ /// inserted into the module specified.
+ virtual void AddPrototypes(Module &M) = 0;
+
/// LowerIntrinsicCall - This method returns the LLVM function which should
/// be used to implement the specified intrinsic function call. If an
/// intrinsic function must be implemented by the code generator (such as
@@ -59,6 +65,7 @@ namespace llvm {
/// implementations should pass any unhandled intrinsics to this
/// implementation to allow for future extensibility.
struct DefaultIntrinsicLowering : public IntrinsicLowering {
+ virtual void AddPrototypes(Module &M);
virtual void LowerIntrinsicCall(CallInst *CI);
};
}
diff --git a/include/llvm/IntrinsicLowering.h b/include/llvm/IntrinsicLowering.h
index 19ccb61b47..43a4c991cf 100644
--- a/include/llvm/IntrinsicLowering.h
+++ b/include/llvm/IntrinsicLowering.h
@@ -37,10 +37,16 @@
namespace llvm {
class CallInst;
+ class Module;
struct IntrinsicLowering {
virtual ~IntrinsicLowering() {}
+ /// AddPrototypes - This method, if called, causes all of the prototypes
+ /// that might be needed by an intrinsic lowering implementation to be
+ /// inserted into the module specified.
+ virtual void AddPrototypes(Module &M) = 0;
+
/// LowerIntrinsicCall - This method returns the LLVM function which should
/// be used to implement the specified intrinsic function call. If an
/// intrinsic function must be implemented by the code generator (such as
@@ -59,6 +65,7 @@ namespace llvm {
/// implementations should pass any unhandled intrinsics to this
/// implementation to allow for future extensibility.
struct DefaultIntrinsicLowering : public IntrinsicLowering {
+ virtual void AddPrototypes(Module &M);
virtual void LowerIntrinsicCall(CallInst *CI);
};
}