forked from OSchip/llvm-project
Add a hasOperandBundlesOtherThan helper, and use it; NFC
llvm-svn: 264072
This commit is contained in:
parent
4d51190936
commit
6b535630a1
|
@ -1478,6 +1478,17 @@ public:
|
|||
Other.bundle_op_info_begin());
|
||||
};
|
||||
|
||||
/// \brief Return true if this operand bundle user contains operand bundles
|
||||
/// with tags other than those specified in \p IDs.
|
||||
bool hasOperandBundlesOtherThan(ArrayRef<uint32_t> IDs) const {
|
||||
for (unsigned i = 0, e = getNumOperandBundles(); i != e; ++i) {
|
||||
uint32_t ID = getOperandBundleAt(i).getTagID();
|
||||
if (std::find(IDs.begin(), IDs.end(), ID) == IDs.end())
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected:
|
||||
/// \brief Is the function attribute S disallowed by some operand bundle on
|
||||
/// this operand bundle user?
|
||||
|
|
|
@ -2127,14 +2127,11 @@ void SelectionDAGBuilder::visitInvoke(const InvokeInst &I) {
|
|||
MachineBasicBlock *Return = FuncInfo.MBBMap[I.getSuccessor(0)];
|
||||
const BasicBlock *EHPadBB = I.getSuccessor(1);
|
||||
|
||||
#ifndef NDEBUG
|
||||
// Deopt bundles are lowered in LowerCallSiteWithDeoptBundle, and we don't
|
||||
// have to do anything here to lower funclet bundles.
|
||||
for (unsigned i = 0, e = I.getNumOperandBundles(); i != e; ++i)
|
||||
assert((I.getOperandBundleAt(i).isDeoptOperandBundle() ||
|
||||
I.getOperandBundleAt(i).isFuncletOperandBundle()) &&
|
||||
"Cannot lower invokes with arbitrary operand bundles yet!");
|
||||
#endif
|
||||
assert(!I.hasOperandBundlesOtherThan(
|
||||
{LLVMContext::OB_deopt, LLVMContext::OB_funclet}) &&
|
||||
"Cannot lower invokes with arbitrary operand bundles yet!");
|
||||
|
||||
const Value *Callee(I.getCalledValue());
|
||||
const Function *Fn = dyn_cast<Function>(Callee);
|
||||
|
@ -6116,14 +6113,11 @@ void SelectionDAGBuilder::visitCall(const CallInst &I) {
|
|||
RenameFn,
|
||||
DAG.getTargetLoweringInfo().getPointerTy(DAG.getDataLayout()));
|
||||
|
||||
#ifndef NDEBUG
|
||||
// Deopt bundles are lowered in LowerCallSiteWithDeoptBundle, and we don't
|
||||
// have to do anything here to lower funclet bundles.
|
||||
for (unsigned i = 0, e = I.getNumOperandBundles(); i != e; ++i)
|
||||
assert((I.getOperandBundleAt(i).isDeoptOperandBundle() ||
|
||||
I.getOperandBundleAt(i).isFuncletOperandBundle()) &&
|
||||
"Cannot lower calls with arbitrary operand bundles!");
|
||||
#endif
|
||||
assert(!I.hasOperandBundlesOtherThan(
|
||||
{LLVMContext::OB_deopt, LLVMContext::OB_funclet}) &&
|
||||
"Cannot lower calls with arbitrary operand bundles!");
|
||||
|
||||
if (I.countOperandBundlesOfType(LLVMContext::OB_deopt))
|
||||
LowerCallSiteWithDeoptBundle(&I, Callee, nullptr);
|
||||
|
|
Loading…
Reference in New Issue