diff options
| author | Chris Lattner <sabre@nondot.org> | 2005-10-03 21:56:24 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2005-10-03 21:56:24 +0000 |
| commit | 0144fadc17b746c67c2ab6afd704766c8cd48e81 (patch) | |
| tree | 49e426986e08975b22f30d9829861c0f0e8d307a /llvm/lib | |
| parent | bad09e71d063aef62deca30e90a33cb3fd25bdb5 (diff) | |
| download | bcm5719-llvm-0144fadc17b746c67c2ab6afd704766c8cd48e81.tar.gz bcm5719-llvm-0144fadc17b746c67c2ab6afd704766c8cd48e81.zip | |
minor microoptimizations
llvm-svn: 23612
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/VMCore/Constants.cpp | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/llvm/lib/VMCore/Constants.cpp b/llvm/lib/VMCore/Constants.cpp index 1a2b7748567..6c8bd12bb21 100644 --- a/llvm/lib/VMCore/Constants.cpp +++ b/llvm/lib/VMCore/Constants.cpp @@ -248,12 +248,14 @@ ConstantArray::ConstantArray(const ArrayType *T, assert(V.size() == T->getNumElements() && "Invalid initializer vector for constant array"); Use *OL = OperandList; - for (unsigned i = 0, e = V.size(); i != e; ++i) { - assert((V[i]->getType() == T->getElementType() || + for (std::vector<Constant*>::const_iterator I = V.begin(), E = V.end(); + I != E; ++I, ++OL) { + Constant *E = *I; + assert((E->getType() == T->getElementType() || (T->isAbstract() && - V[i]->getType()->getTypeID()==T->getElementType()->getTypeID())) && + E->getType()->getTypeID() == T->getElementType()->getTypeID())) && "Initializer for array element doesn't match array element type!"); - OL[i].init(V[i], this); + OL->init(E, this); } } @@ -267,13 +269,16 @@ ConstantStruct::ConstantStruct(const StructType *T, assert(V.size() == T->getNumElements() && "Invalid initializer vector for constant structure"); Use *OL = OperandList; - for (unsigned i = 0, e = V.size(); i != e; ++i) { - assert((V[i]->getType() == T->getElementType(i) || - ((T->getElementType(i)->isAbstract() || - V[i]->getType()->isAbstract()) && - T->getElementType(i)->getTypeID()==V[i]->getType()->getTypeID()))&& + for (std::vector<Constant*>::const_iterator I = V.begin(), E = V.end(); + I != E; ++I, ++OL) { + Constant *E = *I; + assert((E->getType() == T->getElementType(I-V.begin()) || + ((T->getElementType(I-V.begin())->isAbstract() || + E->getType()->isAbstract()) && + T->getElementType(I-V.begin())->getTypeID() == + E->getType()->getTypeID())) && "Initializer for struct element doesn't match struct element type!"); - OL[i].init(V[i], this); + OL->init(E, this); } } @@ -286,12 +291,14 @@ ConstantPacked::ConstantPacked(const PackedType *T, const std::vector<Constant*> &V) : Constant(T, ConstantPackedVal, new Use[V.size()], V.size()) { Use *OL = OperandList; - for (unsigned i = 0, e = V.size(); i != e; ++i) { - assert((V[i]->getType() == T->getElementType() || + for (std::vector<Constant*>::const_iterator I = V.begin(), E = V.end(); + I != E; ++I, ++OL) { + Constant *E = *I; + assert((E->getType() == T->getElementType() || (T->isAbstract() && - V[i]->getType()->getTypeID()==T->getElementType()->getTypeID())) && + E->getType()->getTypeID() == T->getElementType()->getTypeID())) && "Initializer for packed element doesn't match packed element type!"); - OL[i].init(V[i], this); + OL->init(E, this); } } |

