summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2016-03-22 18:10:39 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2016-03-22 18:10:39 +0000
commiteb5037cadcb78d1453e5000174f3d6378b821512 (patch)
tree71de5fa9991483ae68914a91875f99d3d6ac9c9c /llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
parent1edff82f820513eda5741d29532e5cf69a51e44d (diff)
downloadbcm5719-llvm-eb5037cadcb78d1453e5000174f3d6378b821512.tar.gz
bcm5719-llvm-eb5037cadcb78d1453e5000174f3d6378b821512.zip
Allow lowering call sites with both funclets and deopt state
Lowering funclets is a no-op, so we can just go ahead and lower the deopt state. llvm-svn: 264078
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp6
1 files changed, 1 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
index fb0cba196ba..ad339064b14 100644
--- a/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp
@@ -837,16 +837,12 @@ SelectionDAGBuilder::LowerStatepoint(ImmutableStatepoint ISP,
void SelectionDAGBuilder::LowerCallSiteWithDeoptBundle(
ImmutableCallSite CS, SDValue Callee, const BasicBlock *EHPadBB) {
- assert(CS.getNumOperandBundles() == 1 &&
- "Only deopt operand bundles can be lowered!");
-
StatepointLoweringInfo SI(DAG);
unsigned ArgBeginIndex = CS.arg_begin() - CS.getInstruction()->op_begin();
populateCallLoweringInfo(SI.CLI, CS, ArgBeginIndex, CS.getNumArgOperands(),
Callee, CS.getType(), false);
- auto DeoptBundle = CS.getOperandBundleAt(0);
- assert(DeoptBundle.getTagID() == LLVMContext::OB_deopt && "Should be!");
+ auto DeoptBundle = *CS.getOperandBundle(LLVMContext::OB_deopt);
unsigned DefaultID = StatepointDirectives::DeoptBundleStatepointID;
OpenPOWER on IntegriCloud