mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Make sure that an upgraded index is also inserted into the VIndices
otherwise it gets ignored. This fixes test/CodeGen/X86/2006-05-11-InstrSched.ll Thanks to Evan Cheng for noticing this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33546 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d7c4f8ceff
commit
8f78af9f8f
@ -1169,13 +1169,15 @@ const Type* upgradeGEPIndices(const Type* PTy,
|
|||||||
// all indices for SequentialType elements. We must retain the same
|
// all indices for SequentialType elements. We must retain the same
|
||||||
// semantic (zext) for unsigned types.
|
// semantic (zext) for unsigned types.
|
||||||
if (const IntegerType *Ity = dyn_cast<IntegerType>(Index->getType()))
|
if (const IntegerType *Ity = dyn_cast<IntegerType>(Index->getType()))
|
||||||
if (Ity->getBitWidth() < 64 && (*Indices)[i].S == Unsigned)
|
if (Ity->getBitWidth() < 64 && (*Indices)[i].S == Unsigned) {
|
||||||
if (CIndices)
|
if (CIndices)
|
||||||
Index = ConstantExpr::getCast(Instruction::ZExt,
|
Index = ConstantExpr::getCast(Instruction::ZExt,
|
||||||
cast<Constant>(Index), Type::Int64Ty);
|
cast<Constant>(Index), Type::Int64Ty);
|
||||||
else
|
else
|
||||||
Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty,
|
Index = CastInst::create(Instruction::ZExt, Index, Type::Int64Ty,
|
||||||
makeNameUnique("gep_upgrade"), CurBB);
|
makeNameUnique("gep_upgrade"), CurBB);
|
||||||
|
VIndices[i] = Index;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// Add to the CIndices list, if requested.
|
// Add to the CIndices list, if requested.
|
||||||
if (CIndices)
|
if (CIndices)
|
||||||
|
Loading…
Reference in New Issue
Block a user