mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-28 06:24:57 +00:00
Generalize the transform that boosts GEP indices to the size of a pointer to
also do it for vectors of pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167354 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1055,7 +1055,7 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
||||
// by multiples of a zero size type with zero.
|
||||
if (TD) {
|
||||
bool MadeChange = false;
|
||||
Type *IntPtrTy = TD->getIntPtrType(GEP.getContext());
|
||||
Type *IntPtrTy = TD->getIntPtrType(GEP.getPointerOperandType());
|
||||
|
||||
gep_type_iterator GTI = gep_type_begin(GEP);
|
||||
for (User::op_iterator I = GEP.op_begin() + 1, E = GEP.op_end();
|
||||
@ -1074,7 +1074,7 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
||||
}
|
||||
|
||||
Type *IndexTy = (*I)->getType();
|
||||
if (IndexTy != IntPtrTy && !IndexTy->isVectorTy()) {
|
||||
if (IndexTy != IntPtrTy) {
|
||||
// If we are using a wider index than needed for this platform, shrink
|
||||
// it to what we need. If narrower, sign-extend it to what we need.
|
||||
// This explicit cast can make subsequent optimizations more obvious.
|
||||
|
Reference in New Issue
Block a user