Add support for inserting all prototypes up-front

llvm-svn: 13431
This commit is contained in:
Chris Lattner 2004-05-09 04:29:49 +00:00
parent 2484a6336f
commit e7cc64f6e7
1 changed files with 7 additions and 0 deletions

View File

@ -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);
};
}