summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR
diff options
context:
space:
mode:
authorRamkumar Ramachandra <artagnon@gmail.com>2015-02-26 00:35:56 +0000
committerRamkumar Ramachandra <artagnon@gmail.com>2015-02-26 00:35:56 +0000
commit3408f3e296ccad04b7a3d0406bf5da1bca0bf40e (patch)
tree32eaa165215f1eb386568da40cf31622321a23f9 /llvm/lib/IR
parentd6aab731e086374504f41469a61a142592561430 (diff)
downloadbcm5719-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.cpp11
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) {
OpenPOWER on IntegriCloud