summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/include/llvm/IR/Instructions.h8
-rw-r--r--llvm/include/llvm/IR/IntrinsicInst.h9
2 files changed, 17 insertions, 0 deletions
diff --git a/llvm/include/llvm/IR/Instructions.h b/llvm/include/llvm/IR/Instructions.h
index eeea9945e8a..786fa8cdc21 100644
--- a/llvm/include/llvm/IR/Instructions.h
+++ b/llvm/include/llvm/IR/Instructions.h
@@ -1259,6 +1259,10 @@ public:
Value *getArgOperand(unsigned i) const { return getOperand(i); }
void setArgOperand(unsigned i, Value *v) { setOperand(i, v); }
+ /// \brief Wrappers for getting the \c Use of a call argument.
+ const Use &getArgOperandUse(unsigned i) const { return getOperandUse(i); }
+ Use &getArgOperandUse(unsigned i) { return getOperandUse(i); }
+
/// getCallingConv/setCallingConv - Get or set the calling convention of this
/// function call.
CallingConv::ID getCallingConv() const {
@@ -2903,6 +2907,10 @@ public:
Value *getArgOperand(unsigned i) const { return getOperand(i); }
void setArgOperand(unsigned i, Value *v) { setOperand(i, v); }
+ /// \brief Wrappers for getting the \c Use of a call argument.
+ const Use &getArgOperandUse(unsigned i) const { return getOperandUse(i); }
+ Use &getArgOperandUse(unsigned i) { return getOperandUse(i); }
+
/// getCallingConv/setCallingConv - Get or set the calling convention of this
/// function call.
CallingConv::ID getCallingConv() const {
diff --git a/llvm/include/llvm/IR/IntrinsicInst.h b/llvm/include/llvm/IR/IntrinsicInst.h
index 8344c56680a..e053f7867c5 100644
--- a/llvm/include/llvm/IR/IntrinsicInst.h
+++ b/llvm/include/llvm/IR/IntrinsicInst.h
@@ -118,8 +118,13 @@ namespace llvm {
class MemIntrinsic : public IntrinsicInst {
public:
Value *getRawDest() const { return const_cast<Value*>(getArgOperand(0)); }
+ const Use &getRawDestUse() const { return getArgOperandUse(0); }
+ Use &getRawDestUse() { return getArgOperandUse(0); }
Value *getLength() const { return const_cast<Value*>(getArgOperand(2)); }
+ const Use &getLengthUse() const { return getArgOperandUse(2); }
+ Use &getLengthUse() { return getArgOperandUse(2); }
+
ConstantInt *getAlignmentCst() const {
return cast<ConstantInt>(const_cast<Value*>(getArgOperand(3)));
}
@@ -192,6 +197,8 @@ namespace llvm {
/// get* - Return the arguments to the instruction.
///
Value *getValue() const { return const_cast<Value*>(getArgOperand(1)); }
+ const Use &getValueUse() const { return getArgOperandUse(1); }
+ Use &getValueUse() { return getArgOperandUse(1); }
void setValue(Value *Val) {
assert(getValue()->getType() == Val->getType() &&
@@ -215,6 +222,8 @@ namespace llvm {
/// get* - Return the arguments to the instruction.
///
Value *getRawSource() const { return const_cast<Value*>(getArgOperand(1)); }
+ const Use &getRawSourceUse() const { return getArgOperandUse(1); }
+ Use &getRawSourceUse() { return getArgOperandUse(1); }
/// getSource - This is just like getRawSource, but it strips off any cast
/// instructions that feed it, giving the original input. The returned
OpenPOWER on IntegriCloud