#include "TransformInternals.h"
#include "llvm/Type.h"
-#include "llvm/Analysis/Expressions.h"
#include "llvm/Function.h"
#include "llvm/Instructions.h"
using namespace llvm;
(i == SL->MemberOffsets.size()-1 || Offset < SL->MemberOffsets[i+1]));
// Make sure to save the current index...
- Indices.push_back(ConstantUInt::get(Type::UIntTy, i));
+ Indices.push_back(ConstantInt::get(Type::UIntTy, i));
Offset = SL->MemberOffsets[i];
return STy->getContainedType(i);
}
NextType = ATy->getElementType();
unsigned ChildSize = (unsigned)TD.getTypeSize(NextType);
- if (ConstantSInt::isValueValidForType(Type::IntTy, Offset/ChildSize))
- Indices.push_back(ConstantSInt::get(Type::IntTy, Offset/ChildSize));
+ if (ConstantInt::isValueValidForType(Type::IntTy,
+ uint64_t(Offset/ChildSize)))
+ Indices.push_back(ConstantInt::get(Type::IntTy, Offset/ChildSize));
else
- Indices.push_back(ConstantSInt::get(Type::LongTy, Offset/ChildSize));
+ Indices.push_back(ConstantInt::get(Type::LongTy, Offset/ChildSize));
ThisOffset = (Offset/ChildSize)*ChildSize;
} else {
Offset = 0; // Return the offset that we were able to achieve
Offset = unsigned(ThisOffset + SubOffs);
return LeafTy;
}
-
-// ConvertibleToGEP - This function returns true if the specified value V is
-// a valid index into a pointer of type Ty. If it is valid, Idx is filled in
-// with the values that would be appropriate to make this a getelementptr
-// instruction. The type returned is the root type that the GEP would point to
-//
-const Type *llvm::ConvertibleToGEP(const Type *Ty, Value *OffsetVal,
- std::vector<Value*> &Indices,
- const TargetData &TD,
- BasicBlock::iterator *BI) {
- return 0;
-}
-