diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/IR/CallSite.h | 10 | ||||
| -rw-r--r-- | llvm/include/llvm/IR/InstrTypes.h | 3 | ||||
| -rw-r--r-- | llvm/include/llvm/IR/Instructions.h | 3 |
3 files changed, 6 insertions, 10 deletions
diff --git a/llvm/include/llvm/IR/CallSite.h b/llvm/include/llvm/IR/CallSite.h index fba4b25d16d..d11b6b01b1f 100644 --- a/llvm/include/llvm/IR/CallSite.h +++ b/llvm/include/llvm/IR/CallSite.h @@ -243,11 +243,11 @@ public: IterTy data_operands_begin() const { assert(getInstruction() && "Not a call or invoke instruction!"); - return (*this)->op_begin(); + return cast<CallBase>(getInstruction())->data_operands_begin(); } IterTy data_operands_end() const { assert(getInstruction() && "Not a call or invoke instruction!"); - return (*this)->op_end() - (isCall() ? 1 : 3); + return cast<CallBase>(getInstruction())->data_operands_end(); } iterator_range<IterTy> data_ops() const { return make_range(data_operands_begin(), data_operands_end()); @@ -579,13 +579,9 @@ public: #undef CALLSITE_DELEGATE_SETTER void getOperandBundlesAsDefs(SmallVectorImpl<OperandBundleDef> &Defs) const { - const Instruction *II = getInstruction(); // Since this is actually a getter that "looks like" a setter, don't use the // above macros to avoid confusion. - if (isCall()) - cast<CallInst>(II)->getOperandBundlesAsDefs(Defs); - else - cast<InvokeInst>(II)->getOperandBundlesAsDefs(Defs); + cast<CallBase>(getInstruction())->getOperandBundlesAsDefs(Defs); } /// Determine whether this data operand is not captured. diff --git a/llvm/include/llvm/IR/InstrTypes.h b/llvm/include/llvm/IR/InstrTypes.h index 07968ee6081..f0d52fdecdb 100644 --- a/llvm/include/llvm/IR/InstrTypes.h +++ b/llvm/include/llvm/IR/InstrTypes.h @@ -1232,6 +1232,9 @@ public: (ID << 2)); } + /// Check if this call is an inline asm statement. + bool isInlineAsm() const { return isa<InlineAsm>(getCalledOperand()); } + /// \name Attribute API /// /// These methods access and modify attributes on this call (including diff --git a/llvm/include/llvm/IR/Instructions.h b/llvm/include/llvm/IR/Instructions.h index beadf7313a2..dfd11c5e97b 100644 --- a/llvm/include/llvm/IR/Instructions.h +++ b/llvm/include/llvm/IR/Instructions.h @@ -1703,9 +1703,6 @@ public: addAttribute(AttributeList::FunctionIndex, Attribute::ReturnsTwice); } - /// Check if this call is an inline asm statement. - bool isInlineAsm() const { return isa<InlineAsm>(getCalledOperand()); } - // Methods for support type inquiry through isa, cast, and dyn_cast: static bool classof(const Instruction *I) { return I->getOpcode() == Instruction::Call; |

