Lines Matching refs:info
32 for (RegisterInfo* info = iter.Next(); info != NULL; info = iter.Next()) { in ResetRegPool() local
33 info->MarkFree(); in ResetRegPool()
86 RegisterInfo* info = new (arena) RegisterInfo(reg, m2l_->GetRegMaskCommon(reg)); in RegisterPool() local
87 m2l_->reginfo_map_.Put(reg.GetReg(), info); in RegisterPool()
88 core_regs_.Insert(info); in RegisterPool()
91 RegisterInfo* info = new (arena) RegisterInfo(reg, m2l_->GetRegMaskCommon(reg)); in RegisterPool() local
92 m2l_->reginfo_map_.Put(reg.GetReg(), info); in RegisterPool()
93 core64_regs_.Insert(info); in RegisterPool()
96 RegisterInfo* info = new (arena) RegisterInfo(reg, m2l_->GetRegMaskCommon(reg)); in RegisterPool() local
97 m2l_->reginfo_map_.Put(reg.GetReg(), info); in RegisterPool()
98 sp_regs_.Insert(info); in RegisterPool()
101 RegisterInfo* info = new (arena) RegisterInfo(reg, m2l_->GetRegMaskCommon(reg)); in RegisterPool() local
102 m2l_->reginfo_map_.Put(reg.GetReg(), info); in RegisterPool()
103 dp_regs_.Insert(info); in RegisterPool()
145 for (RegisterInfo* info = it.Next(); info != nullptr; info = it.Next()) { in DumpRegPool() local
148 info->GetReg().GetReg(), info->GetReg().GetRegNum(), info->GetReg().IsFloat() ? 'f' : 'c', in DumpRegPool()
149 info->IsTemp(), info->InUse(), info->IsWide(), info->Partner().GetReg(), info->IsLive(), in DumpRegPool()
150 info->IsDirty(), info->SReg(), info->DefStart() != nullptr); in DumpRegPool()
179 RegisterInfo* info = GetRegInfo(reg); in Clobber() local
180 if (info->IsTemp() && !info->IsDead()) { in Clobber()
181 if (info->GetReg().NotExactlyEquals(info->Partner())) { in Clobber()
182 ClobberBody(GetRegInfo(info->Partner())); in Clobber()
184 ClobberBody(info); in Clobber()
185 if (info->IsAliased()) { in Clobber()
186 ClobberAliases(info, info->StorageMask()); in Clobber()
188 RegisterInfo* master = info->Master(); in Clobber()
189 if (info != master) { in Clobber()
190 ClobberBody(info->Master()); in Clobber()
191 ClobberAliases(info->Master(), info->StorageMask()); in Clobber()
198 void Mir2Lir::ClobberAliases(RegisterInfo* info, uint32_t clobber_mask) { in ClobberAliases() argument
199 for (RegisterInfo* alias = info->GetAliasChain(); alias != nullptr; in ClobberAliases()
226 for (RegisterInfo* info = iter.Next(); info != NULL; info = iter.Next()) { in ClobberSReg() local
227 if (info->SReg() == s_reg) { in ClobberSReg()
228 if (info->GetReg().NotExactlyEquals(info->Partner())) { in ClobberSReg()
230 DCHECK(!info->IsAliased()); in ClobberSReg()
231 ClobberBody(GetRegInfo(info->Partner())); in ClobberSReg()
233 ClobberBody(info); in ClobberSReg()
234 if (info->IsAliased()) { in ClobberSReg()
235 ClobberAliases(info, info->StorageMask()); in ClobberSReg()
295 for (RegisterInfo* info = it.Next(); info != nullptr; info = it.Next()) { in AllocPreservedCoreReg() local
296 if (!info->IsTemp() && !info->InUse()) { in AllocPreservedCoreReg()
297 res = info->GetReg(); in AllocPreservedCoreReg()
328 for (RegisterInfo* info = it.Next(); info != nullptr; info = it.Next()) { in AllocPreservedFpReg() local
329 if (!info->IsTemp() && !info->InUse()) { in AllocPreservedFpReg()
330 res = info->GetReg(); in AllocPreservedFpReg()
359 RegisterInfo* info = regs.Get(next); in AllocTempBody() local
361 if (info->IsTemp() && !info->InUse() && info->IsDead()) { in AllocTempBody()
363 if (info->IsWide()) { in AllocTempBody()
365 if (info->SReg() != INVALID_SREG) { in AllocTempBody()
366 RegisterInfo* partner = GetRegInfo(info->Partner()); in AllocTempBody()
367 DCHECK_EQ(info->GetReg().GetRegNum(), partner->Partner().GetRegNum()); in AllocTempBody()
371 info->SetIsWide(false); in AllocTempBody()
373 Clobber(info->GetReg()); in AllocTempBody()
374 info->MarkInUse(); in AllocTempBody()
376 return info->GetReg(); in AllocTempBody()
385 RegisterInfo* info = regs.Get(next); in AllocTempBody() local
386 if (info->IsTemp() && !info->InUse()) { in AllocTempBody()
388 ClobberSReg(info->SReg()); in AllocTempBody()
389 Clobber(info->GetReg()); in AllocTempBody()
390 info->MarkInUse(); in AllocTempBody()
391 if (info->IsWide()) { in AllocTempBody()
392 RegisterInfo* partner = GetRegInfo(info->Partner()); in AllocTempBody()
393 DCHECK_EQ(info->GetReg().GetRegNum(), partner->Partner().GetRegNum()); in AllocTempBody()
395 info->SetIsWide(false); in AllocTempBody()
399 return info->GetReg(); in AllocTempBody()
477 for (RegisterInfo* info = it.Next(); info != nullptr; info = it.Next()) { in FindLiveReg() local
478 if ((info->SReg() == s_reg) && info->IsLive()) { in FindLiveReg()
479 res = info->GetReg(); in FindLiveReg()
531 RegisterInfo* info = GetRegInfo(reg); in AllocLiveReg() local
532 if (info->IsTemp()) { in AllocLiveReg()
533 info->MarkInUse(); in AllocLiveReg()
661 RegisterInfo* info = nullptr; in NullifyRange() local
664 info = GetRegInfo(reg); in NullifyRange()
666 if ((info != nullptr) && (info->DefStart() != nullptr) && (info->DefEnd() != nullptr)) { in NullifyRange()
667 DCHECK_EQ(info->SReg(), s_reg); // Make sure we're on the same page. in NullifyRange()
668 for (LIR* p = info->DefStart();; p = p->next) { in NullifyRange()
670 if (p == info->DefEnd()) { in NullifyRange()
731 for (RegisterInfo* info = iter.Next(); info != NULL; info = iter.Next()) { in ResetDefTracking() local
732 info->ResetDefBody(); in ResetDefTracking()
738 for (RegisterInfo* info = iter.Next(); info != NULL; info = iter.Next()) { in ClobberAllTemps() local
739 ClobberBody(info); in ClobberAllTemps()
766 RegisterInfo* info = GetRegInfo(reg); in FlushRegWide() local
767 if (info->IsLive() && info->IsDirty()) { in FlushRegWide()
768 info->SetIsDirty(false); in FlushRegWide()
769 int v_reg = mir_graph_->SRegToVReg(info->SReg()); in FlushRegWide()
778 RegisterInfo* info = GetRegInfo(reg); in FlushReg() local
779 if (info->IsLive() && info->IsDirty()) { in FlushReg()
780 info->SetIsDirty(false); in FlushReg()
781 int v_reg = mir_graph_->SRegToVReg(info->SReg()); in FlushReg()
787 void Mir2Lir::FlushSpecificReg(RegisterInfo* info) { in FlushSpecificReg() argument
788 if (info->IsWide()) { in FlushSpecificReg()
789 FlushRegWide(info->GetReg()); in FlushSpecificReg()
791 FlushReg(info->GetReg()); in FlushSpecificReg()
797 for (RegisterInfo* info = it.Next(); info != nullptr; info = it.Next()) { in FlushAllRegs() local
798 if (info->IsDirty() && info->IsLive()) { in FlushAllRegs()
799 FlushSpecificReg(info); in FlushAllRegs()
801 info->MarkDead(); in FlushAllRegs()
802 info->SetIsWide(false); in FlushAllRegs()
848 RegisterInfo* info = GetRegInfo(reg); in MarkLive() local
849 if (info->IsLive() && (info->SReg() == s_reg)) { in MarkLive()
856 info->MarkLive(s_reg); in MarkLive()
868 RegisterInfo* info = GetRegInfo(reg); in MarkTemp() local
869 tempreg_info_.Insert(info); in MarkTemp()
870 info->SetIsTemp(true); in MarkTemp()
875 RegisterInfo* info = GetRegInfo(reg); in UnmarkTemp() local
876 tempreg_info_.Delete(info); in UnmarkTemp()
877 info->SetIsTemp(false); in UnmarkTemp()
896 RegisterInfo* info = GetRegInfo(reg); in MarkWide() local
897 info->SetIsWide(true); in MarkWide()
898 info->SetPartner(reg); in MarkWide()
904 RegisterInfo* info = GetRegInfo(reg); in MarkNarrow() local
905 info->SetIsWide(false); in MarkNarrow()
906 info->SetPartner(reg); in MarkNarrow()
911 RegisterInfo* info = GetRegInfo(loc.reg.GetLow()); in MarkClean() local
912 info->SetIsDirty(false); in MarkClean()
913 info = GetRegInfo(loc.reg.GetHigh()); in MarkClean()
914 info->SetIsDirty(false); in MarkClean()
916 RegisterInfo* info = GetRegInfo(loc.reg); in MarkClean() local
917 info->SetIsDirty(false); in MarkClean()
928 RegisterInfo* info = GetRegInfo(loc.reg.GetLow()); in MarkDirty() local
929 info->SetIsDirty(true); in MarkDirty()
930 info = GetRegInfo(loc.reg.GetHigh()); in MarkDirty()
931 info->SetIsDirty(true); in MarkDirty()
933 RegisterInfo* info = GetRegInfo(loc.reg); in MarkDirty() local
934 info->SetIsDirty(true); in MarkDirty()
949 for (RegisterInfo* info = it.Next(); info != nullptr; info = it.Next()) { in CheckCorePoolSanity() local
950 int my_sreg = info->SReg(); in CheckCorePoolSanity()
951 if (info->IsTemp() && info->IsLive() && info->IsWide() && my_sreg != INVALID_SREG) { in CheckCorePoolSanity()
952 RegStorage my_reg = info->GetReg(); in CheckCorePoolSanity()
953 RegStorage partner_reg = info->Partner(); in CheckCorePoolSanity()
963 if (info->Master() != info) { in CheckCorePoolSanity()
965 if (info->IsLive() && (info->SReg() != INVALID_SREG)) { in CheckCorePoolSanity()
967 DCHECK_EQ(info->Master()->SReg(), INVALID_SREG); in CheckCorePoolSanity()
968 DCHECK(!info->Master()->IsDead()); in CheckCorePoolSanity()
972 if (info->IsAliased()) { in CheckCorePoolSanity()
974 DCHECK_EQ(info->Master(), info); in CheckCorePoolSanity()
975 if (info->IsLive() && (info->SReg() != INVALID_SREG)) { in CheckCorePoolSanity()
977 for (RegisterInfo* p = info->GetAliasChain(); p != nullptr; p = p->GetAliasChain()) { in CheckCorePoolSanity()
981 } else if (!info->IsDead()) { in CheckCorePoolSanity()
984 for (RegisterInfo* p = info->GetAliasChain(); p != nullptr; p = p->GetAliasChain()) { in CheckCorePoolSanity()
990 if (info->IsLive() && (info->SReg() == INVALID_SREG)) { in CheckCorePoolSanity()
992 DCHECK(info->DefStart() == nullptr); in CheckCorePoolSanity()
993 DCHECK(info->DefEnd() == nullptr); in CheckCorePoolSanity()
1017 RegisterInfo* info = GetRegInfo(reg); in UpdateLoc() local
1019 match &= !info->IsWide(); in UpdateLoc()
1051 RegisterInfo* info = GetRegInfo(reg); in UpdateLocWide() local
1052 match &= info->IsWide(); in UpdateLocWide()
1053 match &= (info->GetReg().ExactlyEquals(info->Partner())); in UpdateLocWide()