mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 05:29:24 +00:00
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:
parent
d47e6aeb93
commit
0a7413dad8
@ -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
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user