Home | History | Annotate | Download | only in IPO

Lines Matching refs:Loads

311   // We can only promote this argument if all of the uses are loads, or are GEP
319 // In the former case, invalid loads can happen, but would have happened
320 // anyway, in the latter case, invalid loads won't happen. This prevents us
336 // First, iterate the entry block and mark loads of (geps of) arguments as
348 // This load actually loads (part of) Arg? Check the indices then.
364 // Direct loads are equivalent to a GEP with a single 0 index.
370 // not (GEP+)loads, or any (GEP+)loads that are not safe to promote.
371 SmallVector<LoadInst*, 16> Loads;
378 // Don't hack volatile/atomic loads
380 Loads.push_back(LI);
381 // Direct loads are equivalent to a GEP with a zero index and then a load.
407 // Don't hack volatile/atomic loads
409 Loads.push_back(LI);
418 // Now, see if it is safe to promote this load / loads of this GEP. Loading
439 if (Loads.empty()) return true; // No users, this is a dead argument.
452 for (unsigned i = 0, e = Loads.size(); i != e; ++i) {
455 LoadInst *Load = Loads[i];
544 // Okay, this is being promoted. This means that the only uses are loads
545 // or GEPs which are only used by loads
548 // (where direct loads are tracked as no indices).
556 // Since loads will only have a single operand, and GEPs only a single
557 // non-index operand, this will record direct loads without any indices,
558 // and gep+loads with the GEP indices.
562 // GEPs with a single 0 index can be merged with direct loads
642 // Loop over the operands, inserting GEP and loads in the caller as
671 // Non-dead argument: insert GEPs and loads as appropriate.
817 // instructions (or GEPs with only load users), and all loads should be
839 // GEPs with a single 0 index can be merged with direct loads