mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-23 01:24:30 +00:00
Adjust to the changed StructType interface. In particular, getElementTypes() is gone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11228 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -69,11 +69,10 @@ const Type *MutateStructTypes::ConvertType(const Type *Ty) {
|
||||
}
|
||||
case Type::StructTyID: {
|
||||
const StructType *ST = cast<StructType>(Ty);
|
||||
const StructType::ElementTypes &El = ST->getElementTypes();
|
||||
std::vector<const Type *> Types;
|
||||
|
||||
for (StructType::ElementTypes::const_iterator I = El.begin(), E = El.end();
|
||||
I != E; ++I)
|
||||
for (StructType::element_iterator I = ST->element_begin(),
|
||||
E = ST->element_end(); I != E; ++I)
|
||||
Types.push_back(ConvertType(*I));
|
||||
DestTy = StructType::get(Types);
|
||||
break;
|
||||
@ -115,7 +114,7 @@ void MutateStructTypes::AdjustIndices(const CompositeType *OldTy,
|
||||
if (const StructType *OldST = dyn_cast<StructType>(OldTy)) {
|
||||
// Figure out what the current index is...
|
||||
unsigned ElNum = cast<ConstantUInt>(Idx[i])->getValue();
|
||||
assert(ElNum < OldST->getElementTypes().size());
|
||||
assert(ElNum < OldST->getNumElements());
|
||||
|
||||
std::map<const StructType*, TransformType>::iterator
|
||||
I = Transforms.find(OldST);
|
||||
@ -198,7 +197,7 @@ void MutateStructTypes::setTransforms(const TransformsType &XForm) {
|
||||
const StructType *OldTy = I->first;
|
||||
const std::vector<int> &InVec = I->second;
|
||||
|
||||
assert(OldTy->getElementTypes().size() == InVec.size() &&
|
||||
assert(OldTy->getNumElements() == InVec.size() &&
|
||||
"Action not specified for every element of structure type!");
|
||||
|
||||
std::vector<const Type *> NewType;
|
||||
|
@ -109,7 +109,7 @@ static unsigned getIndex(const std::vector<std::pair<unsigned, unsigned> > &Vec,
|
||||
static inline void GetTransformation(const TargetData &TD, const StructType *ST,
|
||||
std::vector<int> &Transform,
|
||||
enum SimpleStructMutation::Transform XForm) {
|
||||
unsigned NumElements = ST->getElementTypes().size();
|
||||
unsigned NumElements = ST->getNumElements();
|
||||
Transform.reserve(NumElements);
|
||||
|
||||
switch (XForm) {
|
||||
@ -124,8 +124,7 @@ static inline void GetTransformation(const TargetData &TD, const StructType *ST,
|
||||
|
||||
// Build mapping from index to size
|
||||
for (unsigned i = 0; i < NumElements; ++i)
|
||||
ElList.push_back(
|
||||
std::make_pair(i, TD.getTypeSize(ST->getElementTypes()[i])));
|
||||
ElList.push_back(std::make_pair(i,TD.getTypeSize(ST->getElementType(i))));
|
||||
|
||||
sort(ElList.begin(), ElList.end(), ptr_fun(FirstLess));
|
||||
|
||||
|
@ -375,12 +375,12 @@ bool RPR::PeepholeOptimize(BasicBlock *BB, BasicBlock::iterator &BI) {
|
||||
const Type *IdxType;
|
||||
if (const StructType *CurSTy = dyn_cast<StructType>(CurCTy)) {
|
||||
// Check for a zero element struct type... if we have one, bail.
|
||||
if (CurSTy->getElementTypes().size() == 0) break;
|
||||
if (CurSTy->getNumElements() == 0) break;
|
||||
|
||||
// Grab the first element of the struct type, which must lie at
|
||||
// offset zero in the struct.
|
||||
//
|
||||
ElTy = CurSTy->getElementTypes()[0];
|
||||
ElTy = CurSTy->getElementType(0);
|
||||
IdxType = Type::UByteTy; // FIXME when PR82 is fixed.
|
||||
} else {
|
||||
ElTy = cast<ArrayType>(CurCTy)->getElementType();
|
||||
|
@ -62,7 +62,7 @@ const Type *llvm::getStructOffsetType(const Type *Ty, unsigned &Offset,
|
||||
uint64_t ThisOffset;
|
||||
const Type *NextType;
|
||||
if (const StructType *STy = dyn_cast<StructType>(Ty)) {
|
||||
if (STy->getElementTypes().empty()) {
|
||||
if (STy->getNumElements()) {
|
||||
Offset = 0;
|
||||
return STy;
|
||||
}
|
||||
|
Reference in New Issue
Block a user