From 2b9c10038706500b1228f494e603070c82cab028 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Tue, 26 Feb 2008 17:56:20 +0000 Subject: Optimize most common case by using single RetVal in ReturnInst. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47607 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Instructions.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'include') diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h index c9329db..70a98d7 100644 --- a/include/llvm/Instructions.h +++ b/include/llvm/Instructions.h @@ -1379,6 +1379,7 @@ public: /// does not continue in this function any longer. /// class ReturnInst : public TerminatorInst { + Use RetVal; ReturnInst(const ReturnInst &RI); void init(Value *RetVal); void init(const std::vector &RetVals); @@ -1405,6 +1406,23 @@ public: virtual ReturnInst *clone() const; + // Transparently provide more efficient getOperand methods. + Value *getOperand(unsigned i) const { + assert(i < getNumOperands() && "getOperand() out of range!"); + if (getNumOperands() == 0 || getNumOperands() == 1) + return RetVal; + + return OperandList[i]; + } + + void setOperand(unsigned i, Value *Val) { + assert(i < getNumOperands() && "setOperand() out of range!"); + if (i == 0) + RetVal = Val; + else + OperandList[i] = Val; + } + Value *getReturnValue(unsigned n = 0) const; unsigned getNumSuccessors() const { return 0; } -- cgit v1.1