diff options
| author | Ramkumar Ramachandra <artagnon@gmail.com> | 2015-02-26 00:35:56 +0000 |
|---|---|---|
| committer | Ramkumar Ramachandra <artagnon@gmail.com> | 2015-02-26 00:35:56 +0000 |
| commit | 3408f3e296ccad04b7a3d0406bf5da1bca0bf40e (patch) | |
| tree | 32eaa165215f1eb386568da40cf31622321a23f9 /llvm/lib/IR | |
| parent | d6aab731e086374504f41469a61a142592561430 (diff) | |
| download | bcm5719-llvm-3408f3e296ccad04b7a3d0406bf5da1bca0bf40e.tar.gz bcm5719-llvm-3408f3e296ccad04b7a3d0406bf5da1bca0bf40e.zip | |
PlaceSafepoints: use IRBuilder helpers
Use the IRBuilder helpers for gc.statepoint and gc.result, instead of
coding the construction by hand. Note that the gc.statepoint IRBuilder
handles only CallInst, not InvokeInst; retain that part of hand-coding.
Differential Revision: http://reviews.llvm.org/D7518
llvm-svn: 230591
Diffstat (limited to 'llvm/lib/IR')
| -rw-r--r-- | llvm/lib/IR/IRBuilder.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/IR/IRBuilder.cpp b/llvm/lib/IR/IRBuilder.cpp index 194f01e26ae..90303b2276b 100644 --- a/llvm/lib/IR/IRBuilder.cpp +++ b/llvm/lib/IR/IRBuilder.cpp @@ -260,6 +260,17 @@ CallInst *IRBuilderBase::CreateGCStatepoint(Value *ActualCallee, return createCallHelper(FnStatepoint, args, this, Name); } +CallInst *IRBuilderBase::CreateGCStatepoint(Value *ActualCallee, + ArrayRef<Use> CallArgs, + ArrayRef<Value *> DeoptArgs, + ArrayRef<Value *> GCArgs, + const Twine &Name) { + std::vector<Value *> VCallArgs; + for (auto &U : CallArgs) + VCallArgs.push_back(U.get()); + return CreateGCStatepoint(ActualCallee, VCallArgs, DeoptArgs, GCArgs, Name); +} + CallInst *IRBuilderBase::CreateGCResult(Instruction *Statepoint, Type *ResultType, const Twine &Name) { |

