From: Chris Lattner Date: Wed, 21 Aug 2002 22:10:52 +0000 (+0000) Subject: Do not create load/stores with indexes X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=3f9b28d075e7c3991ddbf4535122298204093791;p=oota-llvm.git Do not create load/stores with indexes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3420 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/IPO/MutateStructTypes.cpp b/lib/Transforms/IPO/MutateStructTypes.cpp index f0dc16f3e2b..2059f9f2a90 100644 --- a/lib/Transforms/IPO/MutateStructTypes.cpp +++ b/lib/Transforms/IPO/MutateStructTypes.cpp @@ -413,26 +413,28 @@ void MutateStructTypes::transformFunction(Function *m) { break; case Instruction::Load: + assert(cast(I).idx_begin() == + cast(I).idx_end() && + "Indexing loads not supported!"); + NewI = new LoadInst(ConvertValue(I.getOperand(0))); + break; case Instruction::Store: + assert(cast(I).idx_begin() == + cast(I).idx_end() && + "Indexing loads not supported!"); + NewI = new StoreInst(ConvertValue(I.getOperand(0)), + ConvertValue(I.getOperand(1))); + break; case Instruction::GetElementPtr: { - const MemAccessInst &MAI = cast(I); - vector Indices(MAI.idx_begin(), MAI.idx_end()); - const Value *Ptr = MAI.getPointerOperand(); - Value *NewPtr = ConvertValue(Ptr); + const GetElementPtrInst &GEP = cast(I); + vector Indices(GEP.idx_begin(), GEP.idx_end()); if (!Indices.empty()) { - const Type *PTy = cast(Ptr->getType())->getElementType(); + const Type *PTy = + cast(GEP.getOperand(0)->getType())->getElementType(); AdjustIndices(cast(PTy), Indices); } - if (isa(I)) { - NewI = new LoadInst(NewPtr, Indices); - } else if (isa(I)) { - NewI = new StoreInst(ConvertValue(I.getOperand(0)), NewPtr, Indices); - } else if (isa(I)) { - NewI = new GetElementPtrInst(NewPtr, Indices); - } else { - assert(0 && "Unknown memory access inst!!!"); - } + NewI = new GetElementPtrInst(ConvertValue(GEP.getOperand(0)), Indices); break; }