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

Lines Matching defs:LUIdx

244   void countRegister(const SCEV *Reg, size_t LUIdx);
245 void dropRegister(const SCEV *Reg, size_t LUIdx);
246 void swapAndDropUse(size_t LUIdx, size_t LastLUIdx);
248 bool isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const;
266 RegUseTracker::countRegister(const SCEV *Reg, size_t LUIdx) {
272 RSD.UsedByIndices.resize(std::max(RSD.UsedByIndices.size(), LUIdx + 1));
273 RSD.UsedByIndices.set(LUIdx);
277 RegUseTracker::dropRegister(const SCEV *Reg, size_t LUIdx) {
281 assert(RSD.UsedByIndices.size() > LUIdx);
282 RSD.UsedByIndices.reset(LUIdx);
286 RegUseTracker::swapAndDropUse(size_t LUIdx, size_t LastLUIdx) {
287 assert(LUIdx <= LastLUIdx);
293 if (LUIdx < UsedByIndices.size())
294 UsedByIndices[LUIdx] =
301 RegUseTracker::isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const {
308 if ((size_t)i != LUIdx) return true;
383 bool hasRegsUsedByUsesOtherThan(size_t LUIdx,
579 bool Formula::hasRegsUsedByUsesOtherThan(size_t LUIdx,
582 if (RegUses.isRegUsedByUsesOtherThan(ScaledReg, LUIdx))
585 if (RegUses.isRegUsedByUsesOtherThan(BaseReg, LUIdx))
1192 void RecomputeRegs(size_t LUIdx, RegUseTracker &Reguses);
1565 void LSRUse::RecomputeRegs(size_t LUIdx, RegUseTracker &RegUses) {
1577 RegUses.dropRegister(S, LUIdx);
1972 void DeleteUse(LSRUse &LU, size_t LUIdx);
1976 void InsertInitialFormula(const SCEV *S, LSRUse &LU, size_t LUIdx);
1977 void InsertSupplementalFormula(const SCEV *S, LSRUse &LU, size_t LUIdx);
1978 void CountRegisters(const Formula &F, size_t LUIdx);
1979 bool InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F);
1983 void GenerateReassociations(LSRUse &LU, unsigned LUIdx, Formula Base,
1986 void GenerateReassociationsImpl(LSRUse &LU, unsigned LUIdx,
1989 void GenerateCombinations(LSRUse &LU, unsigned LUIdx, Formula Base);
1990 void GenerateSymbolicOffsetsImpl(LSRUse &LU, unsigned LUIdx,
1993 void GenerateSymbolicOffsets(LSRUse &LU, unsigned LUIdx, Formula Base);
1994 void GenerateConstantOffsetsImpl(LSRUse &LU, unsigned LUIdx,
1998 void GenerateConstantOffsets(LSRUse &LU, unsigned LUIdx, Formula Base);
1999 void GenerateICmpZeroScales(LSRUse &LU, unsigned LUIdx, Formula Base);
2000 void GenerateScales(LSRUse &LU, unsigned LUIdx, Formula Base);
2001 void GenerateTruncates(LSRUse &LU, unsigned LUIdx, Formula Base);
2574 size_t LUIdx = P.first->second;
2575 LSRUse &LU = Uses[LUIdx];
2578 return std::make_pair(LUIdx, Offset);
2582 size_t LUIdx = Uses.size();
2583 P.first->second = LUIdx;
2585 LSRUse &LU = Uses[LUIdx];
2589 return std::make_pair(LUIdx, Offset);
2593 void LSRInstance::DeleteUse(LSRUse &LU, size_t LUIdx) {
2599 RegUses.swapAndDropUse(LUIdx, Uses.size());
2608 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
2609 LSRUse &LU = Uses[LUIdx];
3310 size_t LUIdx = P.first;
3312 LSRUse &LU = Uses[LUIdx];
3329 InsertInitialFormula(S, LU, LUIdx);
3330 CountRegisters(LU.Formulae.back(), LUIdx);
3340 LSRInstance::InsertInitialFormula(const SCEV *S, LSRUse &LU, size_t LUIdx) {
3347 bool Inserted = InsertFormula(LU, LUIdx, F);
3355 LSRUse &LU, size_t LUIdx) {
3359 bool Inserted = InsertFormula(LU, LUIdx, F);
3364 void LSRInstance::CountRegisters(const Formula &F, size_t LUIdx) {
3366 RegUses.countRegister(F.ScaledReg, LUIdx);
3368 RegUses.countRegister(BaseReg, LUIdx);
3373 bool LSRInstance::InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F) {
3381 CountRegisters(F, LUIdx);
3462 size_t LUIdx = P.first;
3464 LSRUse &LU = Uses[LUIdx];
3474 InsertSupplementalFormula(US, LU, LUIdx);
3568 void LSRInstance::GenerateReassociationsImpl(LSRUse &LU, unsigned LUIdx,
3648 if (InsertFormula(LU, LUIdx, F))
3655 GenerateReassociations(LU, LUIdx, LU.Formulae.back(),
3661 void LSRInstance::GenerateReassociations(LSRUse &LU, unsigned LUIdx,
3669 GenerateReassociationsImpl(LU, LUIdx, Base, Depth, i);
3672 GenerateReassociationsImpl(LU, LUIdx, Base, Depth,
3678 void LSRInstance::GenerateCombinations(LSRUse &LU, unsigned LUIdx,
3720 (void)InsertFormula(LU, LUIdx, F);
3741 void LSRInstance::GenerateSymbolicOffsetsImpl(LSRUse &LU, unsigned LUIdx,
3756 (void)InsertFormula(LU, LUIdx, F);
3760 void LSRInstance::GenerateSymbolicOffsets(LSRUse &LU, unsigned LUIdx,
3766 GenerateSymbolicOffsetsImpl(LU, LUIdx, Base, i);
3768 GenerateSymbolicOffsetsImpl(LU, LUIdx, Base, /* Idx */ -1,
3774 LSRUse &LU, unsigned LUIdx, const Formula &Base,
3798 (void)InsertFormula(LU, LUIdx, F);
3841 (void)InsertFormula(LU, LUIdx, F);
3845 void LSRInstance::GenerateConstantOffsets(LSRUse &LU, unsigned LUIdx,
3855 GenerateConstantOffsetsImpl(LU, LUIdx, Base, Worklist, i);
3857 GenerateConstantOffsetsImpl(LU, LUIdx, Base, Worklist, /* Idx */ -1,
3863 void LSRInstance::GenerateICmpZeroScales(LSRUse &LU, unsigned LUIdx,
3949 (void)InsertFormula(LU, LUIdx, F);
3956 void LSRInstance::GenerateScales(LSRUse &LU, unsigned LUIdx, Formula Base) {
4014 (void)InsertFormula(LU, LUIdx, F);
4022 void LSRInstance::GenerateTruncates(LSRUse &LU, unsigned LUIdx, Formula Base) {
4059 if (!F.hasRegsUsedByUsesOtherThan(LUIdx, RegUses))
4063 (void)InsertFormula(LU, LUIdx, F);
4074 size_t LUIdx;
4079 : LUIdx(LI), Imm(I), OrigReg(R) {}
4089 OS << "in formulae referencing " << *OrigReg << " in use " << LUIdx
4169 for (unsigned LUIdx : UsedByIndices.set_bits())
4171 if (UniqueItems.insert(std::make_pair(LUIdx, Imm)).second)
4172 WorkItems.push_back(WorkItem(LUIdx, Imm, OrigReg));
4184 size_t LUIdx = WI.LUIdx;
4185 LSRUse &LU = Uses[LUIdx];
4226 (void)InsertFormula(LU, LUIdx, NewF);
4261 (void)InsertFormula(LU, LUIdx, NewF);
4275 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4276 LSRUse &LU = Uses[LUIdx];
4278 GenerateReassociations(LU, LUIdx, LU.Formulae[i]);
4280 GenerateCombinations(LU, LUIdx, LU.Formulae[i]);
4282 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4283 LSRUse &LU = Uses[LUIdx];
4285 GenerateSymbolicOffsets(LU, LUIdx, LU.Formulae[i]);
4287 GenerateConstantOffsets(LU, LUIdx, LU.Formulae[i]);
4289 GenerateICmpZeroScales(LU, LUIdx, LU.Formulae[i]);
4291 GenerateScales(LU, LUIdx, LU.Formulae[i]);
4293 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4294 LSRUse &LU = Uses[LUIdx];
4296 GenerateTruncates(LU, LUIdx, LU.Formulae[i]);
4323 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4324 LSRUse &LU = Uses[LUIdx];
4356 if (RegUses.isRegUsedByUsesOtherThan(Reg, LUIdx))
4360 RegUses.isRegUsedByUsesOtherThan(F.ScaledReg, LUIdx))
4394 LU.RecomputeRegs(LUIdx, RegUses);
4436 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4437 LSRUse &LU = Uses[LUIdx];
4483 LU.RecomputeRegs(LUIdx, RegUses);
4503 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4504 LSRUse &LU = Uses[LUIdx];
4546 DeleteUse(LU, LUIdx);
4547 --LUIdx;
4600 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4601 LSRUse &LU = Uses[LUIdx];
4661 LU.RecomputeRegs(LUIdx, RegUses);
4686 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4687 LSRUse &LU = Uses[LUIdx];
4713 LU.RecomputeRegs(LUIdx, RegUses);
4798 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4799 LSRUse &LU = Uses[LUIdx];
4846 LU.RecomputeRegs(LUIdx, RegUses);
4896 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx) {
4897 LSRUse &LU = Uses[LUIdx];
4915 LU.RecomputeRegs(LUIdx, RegUses);
5436 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx)
5437 for (LSRFixup &Fixup : Uses[LUIdx].Fixups)
5533 for (size_t LUIdx = 0, NumUses = Uses.size(); LUIdx != NumUses; ++LUIdx)
5534 for (const LSRFixup &Fixup : Uses[LUIdx].Fixups) {
5535 Rewrite(Uses[LUIdx], Fixup, *Solution[LUIdx], Rewriter, DeadInsts);