Lines Matching defs:Reg

142   void CountRegister(const SCEV *Reg, size_t LUIdx);
143 void DropRegister(const SCEV *Reg, size_t LUIdx);
146 bool isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const;
148 const SmallBitVector &getUsedByIndices(const SCEV *Reg) const;
163 RegUseTracker::CountRegister(const SCEV *Reg, size_t LUIdx) {
165 RegUsesMap.insert(std::make_pair(Reg, RegSortData()));
168 RegSequence.push_back(Reg);
174 RegUseTracker::DropRegister(const SCEV *Reg, size_t LUIdx) {
175 RegUsesTy::iterator It = RegUsesMap.find(Reg);
199 RegUseTracker::isRegUsedByUsesOtherThan(const SCEV *Reg, size_t LUIdx) const {
200 RegUsesTy::const_iterator I = RegUsesMap.find(Reg);
210 const SmallBitVector &RegUseTracker::getUsedByIndices(const SCEV *Reg) const {
211 RegUsesTy::const_iterator I = RegUsesMap.find(Reg);
825 void RateRegister(const SCEV *Reg,
829 void RatePrimaryRegister(const SCEV *Reg,
839 void Cost::RateRegister(const SCEV *Reg,
843 if (const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Reg)) {
873 if (!isa<SCEVUnknown>(Reg) &&
874 !isa<SCEVConstant>(Reg) &&
875 !(isa<SCEVAddRecExpr>(Reg) &&
876 (isa<SCEVUnknown>(cast<SCEVAddRecExpr>(Reg)->getStart()) ||
877 isa<SCEVConstant>(cast<SCEVAddRecExpr>(Reg)->getStart()))))
880 NumIVMuls += isa<SCEVMulExpr>(Reg) &&
881 SE.hasComputableLoopEvolution(Reg, L);
887 void Cost::RatePrimaryRegister(const SCEV *Reg,
892 if (LoserRegs && LoserRegs->count(Reg)) {
896 if (Regs.insert(Reg)) {
897 RateRegister(Reg, Regs, L, SE, DT);
899 LoserRegs->insert(Reg);
3471 const SCEV *Reg = *I;
3472 int64_t Imm = ExtractImmediate(Reg, SE);
3474 Map.insert(std::make_pair(Reg, ImmMapTy()));
3476 Sequence.push_back(Reg);
3478 UsedByIndicesMap[Reg] |= RegUses.getUsedByIndices(*I);
3488 const SCEV *Reg = *I;
3489 const ImmMapTy &Imms = Map.find(Reg)->second;
3495 DEBUG(dbgs() << "Generating cross-use offsets for " << *Reg << ':';
3510 UsedByIndicesMap[Reg].count() == 1) {
3710 const SCEV *Reg = *J;
3711 if (RegUses.isRegUsedByUsesOtherThan(Reg, LUIdx))
3712 Key.push_back(Reg);
3968 const SCEV *Reg = *I;
3969 if (Taken.count(Reg))
3972 Best = Reg;
3974 unsigned Count = RegUses.getUsedByIndices(Reg).count();
3976 Best = Reg;
4065 const SCEV *Reg = *J;
4066 if ((!F.ScaledReg || F.ScaledReg != Reg) &&
4067 std::find(F.BaseRegs.begin(), F.BaseRegs.end(), Reg) ==
4298 const SCEV *Reg = *I;
4299 assert(!Reg->isZero() && "Zero allocated in a base register!");
4303 Reg = TransformForPostIncUse(Denormalize, Reg,
4307 Ops.push_back(SE.getUnknown(Rewriter.expandCodeFor(Reg, 0, IP)));