diff options
author | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-03-22 18:10:39 +0000 |
---|---|---|
committer | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-03-22 18:10:39 +0000 |
commit | eb5037cadcb78d1453e5000174f3d6378b821512 (patch) | |
tree | 71de5fa9991483ae68914a91875f99d3d6ac9c9c /llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp | |
parent | 1edff82f820513eda5741d29532e5cf69a51e44d (diff) | |
download | bcm5719-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.cpp | 6 |
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; |