Home | History | Annotate | Download | only in Scalar

Lines Matching full:indices

1156 /// \brief Build a GEP out of a base pointer and indices.
1161 SmallVectorImpl<Value *> &Indices) {
1162 if (Indices.empty())
1167 if (Indices.size() == 1 && cast<ConstantInt>(Indices.back())->isZero())
1170 return IRB.CreateInBoundsGEP(BasePtr, Indices, "idx");
1177 /// Indices, and arrived at the Ty type. The goal is to continue to GEP with
1178 /// zero-indices down through type layers until we find one the same as
1181 /// indicated by Indices to have the correct offset.
1184 SmallVectorImpl<Value *> &Indices) {
1186 return buildGEP(IRB, BasePtr, Indices);
1199 Indices.push_back(IRB.getInt(APInt(DL.getPointerSizeInBits(0), 0)));
1204 Indices.push_back(IRB.getInt32(0));
1211 Indices.erase(Indices.end() - NumLayers, Indices.end());
1213 return buildGEP(IRB, BasePtr, Indices);
1216 /// \brief Recursively compute indices for a natural GEP.
1219 /// element types adding appropriate indices for the GEP.
1223 SmallVectorImpl<Value *> &Indices) {
1225 return getNaturalGEPWithType(IRB, DL, Ptr, Ty, TargetTy, Indices);
1243 Indices.push_back(IRB.getInt(NumSkippedElements));
1245 Offset, TargetTy, Indices);
1256 Indices.push_back(IRB.getInt(NumSkippedElements));
1258 Indices);
1275 Indices.push_back(IRB.getInt32(Index));
1277 Indices);
1287 /// Indices, and setting Ty to the result subtype.
1292 SmallVectorImpl<Value *> &Indices) {
1309 Indices.push_back(IRB.getInt(NumSkippedElements));
1311 Indices);
1326 /// properties. The algorithm tries to fold as many constant indices into
1335 SmallVector<Value *, 4> Indices;
1362 Indices.clear();
1364 Indices)) {
2678 /// The indices which to be used with insert- or extractvalue to select the
2680 SmallVector<unsigned, 4> Indices;
2681 /// The indices to a GEP instruction which will move Ptr to the correct slot
2712 unsigned OldSize = Indices.size();
2716 assert(Indices.size() == OldSize && "Did not return to the old size");
2717 Indices.push_back(Idx);
2721 Indices.pop_back();
2727 unsigned OldSize = Indices.size();
2731 assert(Indices.size() == OldSize && "Did not return to the old size");
2732 Indices.push_back(Idx);
2736 Indices.pop_back();
2753 // Load the single value and insert it using the indices.
2756 Agg = IRB.CreateInsertValue(Agg, Load, Indices, Name + ".insert");
2784 // Extract the single value and store it using the indices.
2786 IRB.CreateExtractValue(Agg, Indices, Name + ".extract"),