llvm.org GIT mirror llvm / 43c81f1
Add support for inserting all prototypes up-front git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13431 91177308-0d34-0410-b5e6-96231b3b80d8 Chris Lattner 16 years ago
2 changed file(s) with 14 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
3636
3737 namespace llvm {
3838 class CallInst;
39 class Module;
3940
4041 struct IntrinsicLowering {
4142 virtual ~IntrinsicLowering() {}
43
44 /// AddPrototypes - This method, if called, causes all of the prototypes
45 /// that might be needed by an intrinsic lowering implementation to be
46 /// inserted into the module specified.
47 virtual void AddPrototypes(Module &M) = 0;
4248
4349 /// LowerIntrinsicCall - This method returns the LLVM function which should
4450 /// be used to implement the specified intrinsic function call. If an
5864 /// implementations should pass any unhandled intrinsics to this
5965 /// implementation to allow for future extensibility.
6066 struct DefaultIntrinsicLowering : public IntrinsicLowering {
67 virtual void AddPrototypes(Module &M);
6168 virtual void LowerIntrinsicCall(CallInst *CI);
6269 };
6370 }
3636
3737 namespace llvm {
3838 class CallInst;
39 class Module;
3940
4041 struct IntrinsicLowering {
4142 virtual ~IntrinsicLowering() {}
43
44 /// AddPrototypes - This method, if called, causes all of the prototypes
45 /// that might be needed by an intrinsic lowering implementation to be
46 /// inserted into the module specified.
47 virtual void AddPrototypes(Module &M) = 0;
4248
4349 /// LowerIntrinsicCall - This method returns the LLVM function which should
4450 /// be used to implement the specified intrinsic function call. If an
5864 /// implementations should pass any unhandled intrinsics to this
5965 /// implementation to allow for future extensibility.
6066 struct DefaultIntrinsicLowering : public IntrinsicLowering {
67 virtual void AddPrototypes(Module &M);
6168 virtual void LowerIntrinsicCall(CallInst *CI);
6269 };
6370 }