• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/

Lines Matching defs:Basis

144     Candidate *Basis = nullptr;
169 // Returns true if Basis is a basis for C, i.e., Basis dominates C and they
171 bool isBasisFor(const Candidate &Basis, const Candidate &C);
215 // Rewrites candidate C with respect to Basis.
216 void rewriteCandidateWithBasis(const Candidate &C, const Candidate &Basis);
224 // Emit code that computes the "bump" from Basis to C. If the candidate is a
228 static Value *emitBump(const Candidate &Basis, const Candidate &C,
260 bool StraightLineStrengthReduce::isBasisFor(const Candidate &Basis,
262 return (Basis.Ins != C.Ins && // skip the same instruction
263 // They must have the same type too. Basis.Base == C.Base doesn't
265 Basis.Ins->getType() == C.Ins->getType() &&
266 // Basis must dominate C in order to rewrite C with respect to Basis.
267 DT->dominates(Basis.Ins->getParent(), C.Ins->getParent()) &&
269 Basis.Base == C.Base && Basis.Stride == C.Stride &&
270 Basis.CandidateKind == C.CandidateKind);
358 for (auto Basis = Candidates.rbegin();
359 Basis != Candidates.rend() && NumIterations < MaxNumIterations;
360 ++Basis, ++NumIterations) {
361 if (isBasisFor(*Basis, C)) {
362 C.Basis = &(*Basis);
571 Value *StraightLineStrengthReduce::emitBump(const Candidate &Basis,
576 APInt Idx = C.Index->getValue(), BasisIdx = Basis.Index->getValue();
581 if (Basis.CandidateKind == Candidate::GEP) {
585 cast<GetElementPtrInst>(Basis.Ins)->getResultElementType()));
594 // Compute Bump = C - Basis = (i' - i) * S.
605 IntegerType::get(Basis.Ins->getContext(), IndexOffset.getBitWidth());
623 const Candidate &C, const Candidate &Basis) {
624 assert(C.CandidateKind == Basis.CandidateKind && C.Base == Basis.Base &&
625 C.Stride == Basis.Stride);
628 assert(Basis.Ins->getParent() != nullptr && "the basis is unlinked");
639 Value *Bump = emitBump(Basis, C, Builder, DL, BumpWithUglyGEP);
644 // C = Basis + Bump
647 // If Bump is a neg instruction, emit C = Basis - (-Bump).
648 Reduced = Builder.CreateSub(Basis.Ins, NegBump);
662 Reduced = Builder.CreateAdd(Basis.Ins, Bump);
671 // C = (char *)Basis + Bump
672 unsigned AS = Basis.Ins->getType()->getPointerAddressSpace();
673 Type *CharTy = Type::getInt8PtrTy(Basis.Ins->getContext(), AS);
674 Reduced = Builder.CreateBitCast(Basis.Ins, CharTy);
682 // C = gep Basis, Bump
687 cast<GetElementPtrInst>(Basis.Ins)->getResultElementType(),
688 Basis.Ins, Bump);
691 cast<GetElementPtrInst>(Basis.Ins)->getResultElementType(),
692 Basis.Ins, Bump);
724 if (C.Basis != nullptr) {
725 rewriteCandidateWithBasis(C, *C.Basis);