Home | History | Annotate | Download | only in IPO

Lines Matching refs:Indices

76     /// A vector used to hold the indices of a single GEP instruction
257 /// Checks if Indices, or a prefix of Indices, is in Set.
258 static bool PrefixIn(const ArgPromotion::IndicesVector &Indices,
261 Low = Set.upper_bound(Indices);
264 // Low is now the last element smaller than or equal to Indices. This means
265 // it points to a prefix of Indices (possibly Indices itself), if such
269 return Low != Set.end() && IsPrefix(*Low, Indices);
272 /// Mark the given indices (ToMark) as safe in the given set of indices
274 /// is already a prefix of Indices in Safe, Indices are implicitely marked safe
275 /// already. Furthermore, any indices that Indices is itself a prefix of, are
276 /// removed from Safe (since they are implicitely safe because of Indices now).
284 // Low is now the last element smaller than or equal to Indices. This
285 // means it points to a prefix of Indices (possibly Indices itself), if
289 // If there is already a prefix of these indices (or exactly these
290 // indices) marked a safe, don't bother adding these indices
322 // instructions (with constant indices) that are subsequently loaded.
334 // This set will contain all sets of indices that are loaded in the entry
341 // This set contains all the sets of indices that we are planning to promote.
353 IndicesVector Indices;
361 // This load actually loads (part of) Arg? Check the indices then.
362 Indices.reserve(GEP->getNumIndices());
366 Indices.push_back(CI->getSExtValue());
372 // Indices checked out, mark them as safe
373 MarkIndicesSafe(Indices, SafeToUnconditionallyLoad);
374 Indices.clear();
407 // Ensure that all of the indices are constants.
434 // See if we are already promoting a load with these indices. If not, check
560 // In this table, we will track which indices are loaded from the argument
561 // (where direct loads are tracked as no indices).
566 IndicesVector Indices;
567 Indices.reserve(UI->getNumOperands() - 1);
569 // non-index operand, this will record direct loads without any indices,
570 // and gep+loads with the GEP indices.
573 Indices.push_back(cast<ConstantInt>(*II)->getSExtValue());
575 if (Indices.size() == 1 && Indices.front() == 0)
576 Indices.clear();
577 ArgIndices.insert(Indices);
584 OriginalLoads[std::make_pair(I, Indices)] = OrigLoad;
689 // Store the Value* version of the indices in here, but declare it now
710 // And create a GEP to extract those indices.