Pass around Instruction* instead of Instruction& in FindInsertedValue and friends.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52318 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Matthijs Kooijman 2008-06-16 13:13:08 +00:00
parent d47e6aeb93
commit 0a7413dad8
3 changed files with 7 additions and 7 deletions

View File

@ -58,7 +58,7 @@ namespace llvm {
Value *FindInsertedValue(Value *V, Value *FindInsertedValue(Value *V,
const unsigned *idx_begin, const unsigned *idx_begin,
const unsigned *idx_end, const unsigned *idx_end,
Instruction &InsertBefore); Instruction *InsertBefore);
} // end namespace llvm } // end namespace llvm
#endif #endif

View File

@ -764,7 +764,7 @@ bool llvm::CannotBeNegativeZero(const Value *V, unsigned Depth) {
Value *BuildSubAggregate(Value *From, Value* To, const Type *IndexedType, Value *BuildSubAggregate(Value *From, Value* To, const Type *IndexedType,
SmallVector<unsigned, 10> &Idxs, SmallVector<unsigned, 10> &Idxs,
unsigned IdxSkip, unsigned IdxSkip,
Instruction &InsertBefore) { Instruction *InsertBefore) {
const llvm::StructType *STy = llvm::dyn_cast<llvm::StructType>(IndexedType); const llvm::StructType *STy = llvm::dyn_cast<llvm::StructType>(IndexedType);
if (STy) { if (STy) {
// General case, the type indexed by Idxs is a struct // General case, the type indexed by Idxs is a struct
@ -782,11 +782,11 @@ Value *BuildSubAggregate(Value *From, Value* To, const Type *IndexedType,
// IdxSkip indices when indexing the sub struct). // IdxSkip indices when indexing the sub struct).
Instruction *V = llvm::ExtractValueInst::Create(From, Idxs.begin(), Instruction *V = llvm::ExtractValueInst::Create(From, Idxs.begin(),
Idxs.end(), "tmp", Idxs.end(), "tmp",
&InsertBefore); InsertBefore);
Instruction *Ins = llvm::InsertValueInst::Create(To, V, Instruction *Ins = llvm::InsertValueInst::Create(To, V,
Idxs.begin() + IdxSkip, Idxs.begin() + IdxSkip,
Idxs.end(), "tmp", Idxs.end(), "tmp",
&InsertBefore); InsertBefore);
return Ins; return Ins;
} }
} }
@ -804,7 +804,7 @@ Value *BuildSubAggregate(Value *From, Value* To, const Type *IndexedType,
// //
// Any inserted instructions are inserted before InsertBefore // Any inserted instructions are inserted before InsertBefore
Value *BuildSubAggregate(Value *From, const unsigned *idx_begin, Value *BuildSubAggregate(Value *From, const unsigned *idx_begin,
const unsigned *idx_end, Instruction &InsertBefore) { const unsigned *idx_end, Instruction *InsertBefore) {
const Type *IndexedType = ExtractValueInst::getIndexedType(From->getType(), const Type *IndexedType = ExtractValueInst::getIndexedType(From->getType(),
idx_begin, idx_begin,
idx_end); idx_end);
@ -819,7 +819,7 @@ Value *BuildSubAggregate(Value *From, const unsigned *idx_begin,
/// the scalar value indexed is already around as a register, for example if it /// the scalar value indexed is already around as a register, for example if it
/// were inserted directly into the aggregrate. /// were inserted directly into the aggregrate.
Value *llvm::FindInsertedValue(Value *V, const unsigned *idx_begin, Value *llvm::FindInsertedValue(Value *V, const unsigned *idx_begin,
const unsigned *idx_end, Instruction &InsertBefore) { const unsigned *idx_end, Instruction *InsertBefore) {
// Nothing to index? Just return V then (this is useful at the end of our // Nothing to index? Just return V then (this is useful at the end of our
// recursion) // recursion)
if (idx_begin == idx_end) if (idx_begin == idx_end)

View File

@ -10521,7 +10521,7 @@ Instruction *InstCombiner::visitSwitchInst(SwitchInst &SI) {
Instruction *InstCombiner::visitExtractValueInst(ExtractValueInst &EV) { Instruction *InstCombiner::visitExtractValueInst(ExtractValueInst &EV) {
// See if we are trying to extract a known value. If so, use that instead. // See if we are trying to extract a known value. If so, use that instead.
if (Value *Elt = FindInsertedValue(EV.getOperand(0), EV.idx_begin(), if (Value *Elt = FindInsertedValue(EV.getOperand(0), EV.idx_begin(),
EV.idx_end(), EV)) EV.idx_end(), &EV))
return ReplaceInstUsesWith(EV, Elt); return ReplaceInstUsesWith(EV, Elt);
// No changes // No changes