Lines Matching full:safe
200 /// are any promotable arguments and if it is safe to promote the function (for
201 /// example, all callers are direct). If safe to promote some arguments, it
248 // pass the elements, which is always safe, if the passed value is densely
272 // Safe to transform, don't even bother trying to "promote" it.
354 // This load is safe if any prefix of its operands is safe to load.
358 /// Mark the given indices (ToMark) as safe in the given set of indices
359 /// (Safe). Marking safe usually means adding ToMark to Safe. However, if there
360 /// is already a prefix of Indices in Safe, Indices are implicitely marked safe
362 /// removed from Safe (since they are implicitely safe because of Indices now).
364 std::set<ArgPromotion::IndicesVector> &Safe) {
366 Low = Safe.upper_bound(ToMark);
367 // Guard against the case where Safe is empty
368 if (Low != Safe.begin())
373 if (Low != Safe.end()) {
376 // indices) marked a safe, don't bother adding these indices
383 Low = Safe.insert(Low, ToMark);
386 std::set<ArgPromotion::IndicesVector>::iterator End = Safe.end();
390 Safe.erase(Remove);
395 /// it checks to see if it is both safe and useful to promote the argument.
411 // unconditionally. This is only safe if we can prove that either the load
421 // block, and thus are safe to unconditionally load in the caller.
423 // This optimization is also safe for InAlloca parameters, because it verifies
436 // safe.
458 // Indices checked out, mark them as safe
469 // not (GEP+)loads, or any (GEP+)loads that are not safe to promote.
515 // Now, see if it is safe to promote this load / loads of this GEP. Loading
516 // is safe if Operands, or a prefix of Operands, is marked as safe.
539 // it is safe to unconditionally perform all of them. Use alias analysis to
578 /// safe to do so.