diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h index 0b9aba94926..66cdc392a7f 100644 --- a/include/llvm/Instructions.h +++ b/include/llvm/Instructions.h @@ -379,8 +379,8 @@ static inline const Type *checkType(const Type *Ty) { /// class GetElementPtrInst : public Instruction { GetElementPtrInst(const GetElementPtrInst &GEPI); - void init(Value *Ptr, Value* const *Idx, unsigned NumIdx); - void init(Value *Ptr, Value *Idx); + void init(Value *Ptr, Value* const *Idx, unsigned NumIdx, const std::string &Name); + void init(Value *Ptr, Value *Idx, const std::string &Name); template void init(Value *Ptr, InputIterator IdxBegin, InputIterator IdxEnd, @@ -392,14 +392,12 @@ class GetElementPtrInst : public Instruction { if (NumIdx > 0) { // This requires that the iterator points to contiguous memory. - init(Ptr, &*IdxBegin, NumIdx); // FIXME: for the general case + init(Ptr, &*IdxBegin, NumIdx, Name); // FIXME: for the general case // we have to build an array here } else { - init(Ptr, 0, NumIdx); + init(Ptr, 0, NumIdx, Name); } - - setName(Name); } /// getIndexedType - Returns the type of the element that would be loaded with diff --git a/lib/VMCore/Instructions.cpp b/lib/VMCore/Instructions.cpp index 6da04e7178f..3fb1c61b722 100644 --- a/lib/VMCore/Instructions.cpp +++ b/lib/VMCore/Instructions.cpp @@ -992,20 +992,24 @@ static unsigned retrieveAddrSpace(const Value *Val) { return cast(Val->getType())->getAddressSpace(); } -void GetElementPtrInst::init(Value *Ptr, Value* const *Idx, unsigned NumIdx) { +void GetElementPtrInst::init(Value *Ptr, Value* const *Idx, unsigned NumIdx, const std::string &Name) { assert(NumOperands == 1+NumIdx && "NumOperands not initialized?"); Use *OL = OperandList; OL[0] = Ptr; for (unsigned i = 0; i != NumIdx; ++i) OL[i+1] = Idx[i]; + + setName(Name); } -void GetElementPtrInst::init(Value *Ptr, Value *Idx) { +void GetElementPtrInst::init(Value *Ptr, Value *Idx, const std::string &Name) { assert(NumOperands == 2 && "NumOperands not initialized?"); Use *OL = OperandList; OL[0] = Ptr; OL[1] = Idx; + + setName(Name); } GetElementPtrInst::GetElementPtrInst(const GetElementPtrInst &GEPI) @@ -1026,8 +1030,7 @@ GetElementPtrInst::GetElementPtrInst(Value *Ptr, Value *Idx, GetElementPtr, OperandTraits::op_end(this) - 2, 2, InBe) { - init(Ptr, Idx); - setName(Name); + init(Ptr, Idx, Name); } GetElementPtrInst::GetElementPtrInst(Value *Ptr, Value *Idx, @@ -1037,8 +1040,7 @@ GetElementPtrInst::GetElementPtrInst(Value *Ptr, Value *Idx, GetElementPtr, OperandTraits::op_end(this) - 2, 2, IAE) { - init(Ptr, Idx); - setName(Name); + init(Ptr, Idx, Name); } // getIndexedType - Returns the type of the element that would be loaded with