/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/aarch64/ |
D | aarch64_reg_info.cpp | 25 for (regno_t regNO = kRinvalid; regNO < kMaxRegNum; ++regNO) { in Init() local 27 if (IsYieldPointReg(regNO)) { in Init() 30 if (regNO == R29 && !GetCurrFunction()->UseFP()) { in Init() 31 AddToAllRegs(regNO); in Init() 34 if (!AArch64Abi::IsAvailableReg(static_cast<AArch64reg>(regNO))) { in Init() 37 if (AArch64isa::IsGPRegister(static_cast<AArch64reg>(regNO))) { in Init() 38 AddToIntRegs(regNO); in Init() 40 AddToFpRegs(regNO); in Init() 42 AddToAllRegs(regNO); in Init() 77 bool AArch64RegInfo::IsSpillRegInRA(regno_t regNO, bool has3RegOpnd) in IsSpillRegInRA() argument [all …]
|
D | aarch64_reaching.cpp | 157 AArch64reg regNO = static_cast<AArch64CGFunc *>(cgFunc)->GetReturnRegisterNumber(); in AddRetPseudoInsn() local 158 if (regNO == kInvalidRegNO) { in AddRetPseudoInsn() 162 if (regNO == R0) { in AddRetPseudoInsn() 164 …static_cast<AArch64CGFunc *>(cgFunc)->GetOrCreatePhysicalRegisterOperand(regNO, k64BitSize, kRegTy… in AddRetPseudoInsn() 168 } else if (regNO == V0) { in AddRetPseudoInsn() 170 …static_cast<AArch64CGFunc *>(cgFunc)->GetOrCreatePhysicalRegisterOperand(regNO, k64BitSize, kRegTy… in AddRetPseudoInsn() 227 bool AArch64ReachingDefinition::IsRegKilledByCallInsn(const Insn &insn, regno_t regNO) const in IsRegKilledByCallInsn() 232 return callerSaveRegs.find(regNO) != callerSaveRegs.end(); in IsRegKilledByCallInsn() 234 return AArch64Abi::IsCallerSaveReg(static_cast<AArch64reg>(regNO)); in IsRegKilledByCallInsn() 239 regno_t regNO) const in KilledByCallBetweenInsnInSameBB() [all …]
|
D | aarch64_abi.cpp | 49 bool IsCallerSaveReg(AArch64reg regNO) in IsCallerSaveReg() argument 51 …return (R0 <= regNO && regNO <= R18) || (V0 <= regNO && regNO <= V7) || (V16 <= regNO && regNO <= … in IsCallerSaveReg() 52 (regNO == kRFLAG); in IsCallerSaveReg() 159 bool IsSpillRegInRA(AArch64reg regNO, bool has3RegOpnd) in IsSpillRegInRA() argument 163 return AArch64Abi::IsSpillReg(regNO) || AArch64Abi::IsExtraSpillReg(regNO); in IsSpillRegInRA() 165 return AArch64Abi::IsSpillReg(regNO); in IsSpillRegInRA()
|
D | aarch64_dependence.cpp | 81 void AArch64DepAnalysis::AppendRegUseList(Insn &insn, regno_t regNO) in AppendRegUseList() argument 86 if (regUses[regNO] == nullptr) { in AppendRegUseList() 87 regUses[regNO] = regList; in AppendRegUseList() 89 Insn *defInsn = regDefs[regNO]; in AppendRegUseList() 94 defNode->SetRegDefs(regNO, regList); in AppendRegUseList() 98 RegList *lastRegList = regUses[regNO]; in AppendRegUseList() 166 void AArch64DepAnalysis::BuildDepsUseReg(Insn &insn, regno_t regNO) in BuildDepsUseReg() argument 169 node->AddUseReg(regNO); in BuildDepsUseReg() 170 if (regDefs[regNO] != nullptr) { in BuildDepsUseReg() 172 AddDependence(*regDefs[regNO]->GetDepNode(), *insn.GetDepNode(), kDependenceTypeTrue); in BuildDepsUseReg() [all …]
|
D | aarch64_color_ra.cpp | 441 for (regno_t regNO = kInvalidRegNO; regNO < kMaxRegNum; ++regNO) { in PrintBBAssignInfo() local 442 if (bbInfo->GetGlobalsAssigned(regNO)) { in PrintBBAssignInfo() 443 LogInfo::MapleLogger() << regNO << ","; in PrintBBAssignInfo() 564 bool GraphColorRegAllocator::IsReservedReg(AArch64reg regNO) const in IsReservedReg() 567 return (regNO == R16) || (regNO == R17); in IsReservedReg() 569 return (regNO == R16); in IsReservedReg() 586 for (regno_t regNO = kRinvalid; regNO < kMaxRegNum; ++regNO) { in InitFreeRegPool() local 587 if (!AArch64Abi::IsAvailableReg(static_cast<AArch64reg>(regNO))) { in InitFreeRegPool() 595 … if (JAVALANG && AArch64Abi::IsSpillRegInRA(static_cast<AArch64reg>(regNO), needExtraSpillReg)) { in InitFreeRegPool() 596 if (AArch64isa::IsGPRegister(static_cast<AArch64reg>(regNO))) { in InitFreeRegPool() [all …]
|
D | aarch64_live.cpp | 52 regno_t regNO = reg + R0; in CleanupBBIgnoreReg() local 53 if (regNO < R8 || (RLR <= regNO && regNO <= RZR)) { in CleanupBBIgnoreReg()
|
D | aarch64_reg_coalesce.cpp | 47 LiveInterval *AArch64LiveIntervalAnalysis::GetOrCreateLiveInterval(regno_t regNO) in GetOrCreateLiveInterval() argument 49 LiveInterval *lr = GetLiveInterval(regNO); in GetOrCreateLiveInterval() 52 vregIntervals[regNO] = lr; in GetOrCreateLiveInterval() 53 lr->SetRegNO(regNO); in GetOrCreateLiveInterval() 75 uint32 regNO = regOpnd.GetRegisterNumber(); in SetupLiveIntervalByOp() local 79 LiveInterval *lr = GetOrCreateLiveInterval(regNO); in SetupLiveIntervalByOp() 81 lr->AddRange(insn.GetBB()->GetId(), point, vregLive.find(regNO) != vregLive.end()); in SetupLiveIntervalByOp() 85 if (candidates.find(regNO) != candidates.end()) { in SetupLiveIntervalByOp() 89 vregLive.erase(regNO); in SetupLiveIntervalByOp() 91 vregLive.insert(regNO); in SetupLiveIntervalByOp()
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/aarch64/ |
D | aarch64_reg_info.h | 31 bool IsGPRegister(regno_t regNO) const override in IsGPRegister() argument 33 return AArch64isa::IsGPRegister(static_cast<AArch64reg>(regNO)); in IsGPRegister() 36 bool IsPreAssignedReg(regno_t regNO) const override in IsPreAssignedReg() argument 38 return AArch64Abi::IsParamReg(static_cast<AArch64reg>(regNO)); in IsPreAssignedReg() 50 bool IsAvailableReg(regno_t regNO) const override in IsAvailableReg() argument 53 if (regNO == R9 || regNO == R29) { in IsAvailableReg() 56 return AArch64Abi::IsAvailableReg(static_cast<AArch64reg>(regNO)); in IsAvailableReg() 59 bool IsUntouchableReg(regno_t regNO) const override in IsUntouchableReg() argument 61 if ((regNO == RSP) || (regNO == RFP) || regNO == RZR) { in IsUntouchableReg() 65 if (GetCurrFunction()->GetCG()->GenYieldPoint() && (regNO == RYP)) { in IsUntouchableReg() [all …]
|
D | aarch64_reaching.h | 27 …std::vector<Insn *> FindRegDefBetweenInsnGlobal(uint32 regNO, Insn *startInsn, Insn *endInsn) cons… 29 …bool FindRegUseBetweenInsn(uint32 regNO, Insn *startInsn, Insn *endInsn, InsnSet &useInsnSet) cons… 30 …bool FindRegUseBetweenInsnGlobal(uint32 regNO, Insn *startInsn, Insn *endInsn, BB *movBB) const fi… 32 bool HasRegDefBetweenInsnGlobal(uint32 regNO, Insn &startInsn, Insn &endInsn) const; 33 bool DFSFindRegDefBetweenBB(const BB &startBB, const BB &endBB, uint32 regNO, 38 bool FindRegUsingBetweenInsn(uint32 regNO, Insn *startInsn, const Insn *endInsn) const; 47 bool IsRegKilledByCallInsn(const Insn &insn, regno_t regNO) const final; 48 …bool KilledByCallBetweenInsnInSameBB(const Insn &startInsn, const Insn &endInsn, regno_t regNO) co… 51 bool IsCallerSavedReg(uint32 regNO) const final; 52 void FindRegDefInBB(uint32 regNO, BB &bb, InsnSet &defInsnSet) const final; [all …]
|
D | aarch64_color_ra.h | 256 return regNO; in GetRegNO() 261 regNO = val; in SetRegNO() 403 void SetConflictBitArrElem(regno_t regNO) in SetConflictBitArrElem() argument 405 uint32 index = regNO / kU64; in SetConflictBitArrElem() 406 uint64 bit = regNO % kU64; in SetConflictBitArrElem() 414 void UnsetConflictBitArrElem(regno_t regNO) in UnsetConflictBitArrElem() argument 416 uint32 index = regNO / kU64; in UnsetConflictBitArrElem() 417 uint64 bit = regNO % kU64; in UnsetConflictBitArrElem() 570 void InsertElemToPrefs(regno_t regNO) in InsertElemToPrefs() argument 572 (void)prefs.insert(regNO); in InsertElemToPrefs() [all …]
|
D | aarch64_schedule.h | 154 static RegType GetRegisterType(CGFunc &f, regno_t regNO); 155 void VaryLiveRegSet(CGFunc &f, regno_t regNO, bool isInc); 231 for (auto regNO : intLiveRegSet) { in SizeOfCalleeSaveLiveRegister() local 232 if (regNO > static_cast<regno_t>(R19)) { in SizeOfCalleeSaveLiveRegister() 237 for (auto regNO : fpLiveRegSet) { in SizeOfCalleeSaveLiveRegister() local 238 if (regNO > static_cast<regno_t>(V16)) { in SizeOfCalleeSaveLiveRegister()
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/ |
D | reaching.cpp | 140 uint32 regNO = indexOrRegNO; in FindUseForRegOpnd() local 144 regNO = regOpnd.GetRegisterNumber(); in FindUseForRegOpnd() 147 …bool findFinish = FindRegUseBetweenInsn(regNO, insn.GetNext(), insn.GetBB()->GetLastInsn(), useIns… in FindUseForRegOpnd() 149 if (findFinish || !regOut[insn.GetBB()->GetId()]->TestBit(regNO)) { in FindUseForRegOpnd() 151 DFSFindUseForRegOpnd(*insn.GetBB(), regNO, visitedBB, useInsnSet, true); in FindUseForRegOpnd() 154 DFSFindUseForRegOpnd(*insn.GetBB(), regNO, visitedBB, useInsnSet, false); in FindUseForRegOpnd() 158 if (regUse[firstCleanUpBB->GetId()]->TestBit(regNO)) { in FindUseForRegOpnd() 160 …FindRegUseBetweenInsn(regNO, firstCleanUpBB->GetFirstInsn(), firstCleanUpBB->GetLastInsn(), useIns… in FindUseForRegOpnd() 161 if (findFinish || !regOut[firstCleanUpBB->GetId()]->TestBit(regNO)) { in FindUseForRegOpnd() 165 DFSFindUseForRegOpnd(*firstCleanUpBB, regNO, visitedBB, useInsnSet, false); in FindUseForRegOpnd() [all …]
|
D | reg_alloc_lsra.cpp | 83 …anRegAllocator::CheckForReg(Operand &opnd, const Insn &insn, const LiveInterval &li, regno_t regNO, in CheckForReg() argument 93 if (regOpnd.GetRegisterNumber() == regNO) { in CheckForReg() 173 uint32 regNO = li->GetRegNO(); in PrintLiveRangesGraph() local 177 if (regNO < minY) { in PrintLiveRangesGraph() 178 minY = regNO; in PrintLiveRangesGraph() 180 if (regNO > maxY) { in PrintLiveRangesGraph() 181 maxY = regNO; in PrintLiveRangesGraph() 185 graph[regNO - minVregNum][n] = 0; in PrintLiveRangesGraph() 189 graph[regNO - minVregNum][n] = regNO; in PrintLiveRangesGraph() 193 graph[regNO - minVregNum][n] = 0; in PrintLiveRangesGraph() [all …]
|
D | reg_alloc_basic.cpp | 54 regno_t regNO = 0; in HandleRegOpnd() local 55 … return &cgFunc->GetOpndBuilder()->CreatePReg(regNO, regOpnd.GetSize(), regOpnd.GetRegisterType()); in HandleRegOpnd() 130 regno_t regNO = 0; in AllocDestOpnd() local 131 … return &cgFunc->GetOpndBuilder()->CreatePReg(regNO, regOpnd.GetSize(), regOpnd.GetRegisterType()); in AllocDestOpnd() 219 regno_t regNO = regOpnd.GetRegisterNumber(); in SaveCalleeSavedReg() local 220 auto phyReg = regInfo->IsVirtualRegister(regOpnd) ? regMap[regNO] : regNO; in SaveCalleeSavedReg() 372 regno_t regNO = regOpnd.GetRegisterNumber(); in AllocHandleDest() local 373 rememberRegs.push_back(regInfo->IsVirtualRegister(regOpnd) ? regMap[regNO] : regNO); in AllocHandleDest()
|
D | insn.cpp | 218 bool Insn::IsRegDefined(regno_t regNO) const in IsRegDefined() 220 return GetDefRegs().count(regNO); in IsRegDefined() 343 bool Insn::ScanReg(regno_t regNO) const in ScanReg() 353 if (regNO == regOpnd->GetRegisterNumber()) { in ScanReg() 361 if ((base != nullptr && base->GetRegisterNumber() == regNO) || in ScanReg() 362 (index != nullptr && index->GetRegisterNumber() == regNO)) { in ScanReg() 366 if (static_cast<RegOperand &>(opnd).GetRegisterNumber() == regNO) { in ScanReg()
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/x86_64/ |
D | x64_reg_info.h | 38 bool IsYieldPointReg(regno_t regNO) const override; 39 bool IsUnconcernedReg(regno_t regNO) const override; 41 …RegOperand *GetOrCreatePhyRegOperand(regno_t regNO, uint32 size, RegType kind, uint32 flag) overri… 51 bool IsGPRegister(regno_t regNO) const override in IsGPRegister() argument 53 return x64::IsGPRegister(static_cast<X64reg>(regNO)); in IsGPRegister() 56 bool IsUntouchableReg(regno_t regNO) const override in IsUntouchableReg() argument 98 bool IsPreAssignedReg(regno_t regNO) const override in IsPreAssignedReg() argument 100 … return x64::IsParamReg(static_cast<X64reg>(regNO)) || regNO == x64::RAX || regNO == x64::RDX; in IsPreAssignedReg() 102 uint32 GetIntParamRegIdx(regno_t regNO) const override in GetIntParamRegIdx() argument 105 return static_cast<uint32>(regNO - *GetIntRegs().begin()); in GetIntParamRegIdx() [all …]
|
D | x64_reaching.h | 26 …bool FindRegUseBetweenInsn(uint32 regNO, Insn *startInsn, Insn *endInsn, InsnSet &useInsnSet) cons… 27 …std::vector<Insn *> FindRegDefBetweenInsnGlobal(uint32 regNO, Insn *startInsn, Insn *endInsn) cons… 29 …bool FindRegUseBetweenInsnGlobal(uint32 regNO, Insn *startInsn, Insn *endInsn, BB *movBB) const fi… 31 bool HasRegDefBetweenInsnGlobal(uint32 regNO, Insn &startInsn, Insn &endInsn); 32 bool DFSFindRegDefBetweenBB(const BB &startBB, const BB &endBB, uint32 regNO, 37 bool FindRegUsingBetweenInsn(uint32 regNO, Insn *startInsn, const Insn *endInsn) const; 46 bool IsRegKilledByCallInsn(const Insn &insn, regno_t regNO) const final; 47 …bool KilledByCallBetweenInsnInSameBB(const Insn &startInsn, const Insn &endInsn, regno_t regNO) co… 51 bool IsCallerSavedReg(uint32 regNO) const final; 52 void FindRegDefInBB(uint32 regNO, BB &bb, InsnSet &defInsnSet) const final; [all …]
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/x86_64/ |
D | x64_reaching.cpp | 24 bool X64ReachingDefinition::FindRegUseBetweenInsn(uint32 regNO, Insn *startInsn, Insn *endInsn, in FindRegUseBetweenInsn() argument 37 if (insn->IsCall() && IsRegKilledByCallInsn(*insn, regNO)) { in FindRegUseBetweenInsn() 41 if (IsDiv(*insn) && regNO == x64::RAX) { in FindRegUseBetweenInsn() 53 (static_cast<RegOperand &>(opnd).GetRegisterNumber() == regNO)) { in FindRegUseBetweenInsn() 62 if (regNO == regOpnd->GetRegisterNumber()) { in FindRegUseBetweenInsn() 77 if ((base != nullptr && base->GetRegisterNumber() == regNO) || in FindRegUseBetweenInsn() 78 (index != nullptr && index->GetRegisterNumber() == regNO)) { in FindRegUseBetweenInsn() 84 if (rflagReg.GetRegisterNumber() == regNO) { in FindRegUseBetweenInsn() 87 … } else if (opnd.IsRegister() && (static_cast<RegOperand &>(opnd).GetRegisterNumber() == regNO)) { in FindRegUseBetweenInsn() 98 std::vector<Insn *> X64ReachingDefinition::FindRegDefBetweenInsnGlobal(uint32 regNO, Insn *startIns… in FindRegDefBetweenInsnGlobal() argument [all …]
|
D | x64_reg_info.cpp | 25 for (regno_t regNO = kRinvalid; regNO < kMaxRegNum; ++regNO) { in Init() local 27 if (IsYieldPointReg(static_cast<X64reg>(regNO))) { in Init() 30 if (!x64::IsAvailableReg(static_cast<X64reg>(regNO))) { in Init() 33 if (x64::IsGPRegister(static_cast<X64reg>(regNO))) { in Init() 34 AddToIntRegs(regNO); in Init() 36 AddToFpRegs(regNO); in Init() 38 AddToAllRegs(regNO); in Init() 75 bool X64RegInfo::IsUnconcernedReg(regno_t regNO) const in IsUnconcernedReg() 78 if (IsYieldPointReg(static_cast<X64reg>(regNO))) { in IsUnconcernedReg() 90 uint32 regNO = regOpnd.GetRegisterNumber(); in IsUnconcernedReg() local [all …]
|
D | x64_abi.cpp | 138 bool IsSpillRegInRA(X64reg regNO, bool has3RegOpnd) in IsSpillRegInRA() argument 142 return IsSpillReg(regNO) || IsExtraSpillReg(regNO); in IsSpillRegInRA() 144 return IsSpillReg(regNO); in IsSpillRegInRA()
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/cg/ |
D | reaching.h | 73 bool CheckRegGen(const BB &bb, uint32 regNO) const in CheckRegGen() argument 75 return regGen[bb.GetId()]->TestBit(regNO); in CheckRegGen() 81 bool RegIsUsedIncaller(uint32 regNO, Insn &startInsn, Insn &endInsn) const; 82 bool CheckRegLiveinReturnBB(uint32 regNO, const BB &bb) const; 83 bool RegIsLiveBetweenInsn(uint32 regNO, Insn &startInsn, Insn &endInsn, bool isBack = false, 85 bool RegIsUsedOrDefBetweenInsn(uint32 regNO, Insn &startInsn, Insn &endInsn) const; 86 …bool IsLiveInAllPathBB(uint32 regNO, const BB &startBB, const BB &endBB, std::vector<bool> &visite… 88 …bool IsUseOrDefInAllPathBB(uint32 regNO, const BB &startBB, const BB &endBB, std::vector<bool> &vi… 89 …bool IsUseOrDefBetweenInsn(uint32 regNO, const BB &curBB, const Insn &startInsn, Insn &endInsn) co… 91 …std::vector<Insn *> FindRegDefBetweenInsn(uint32 regNO, Insn *startInsn, Insn *endInsn, bool findA… [all …]
|
D | reg_info.h | 72 …virtual RegOperand *GetOrCreatePhyRegOperand(regno_t regNO, uint32 size, RegType kind, uint32 flag… 75 virtual bool IsGPRegister(regno_t regNO) const = 0; 76 virtual bool IsPreAssignedReg(regno_t regNO) const = 0; 77 virtual uint32 GetIntParamRegIdx(regno_t regNO) const = 0; 78 virtual uint32 GetFpParamRegIdx(regno_t regNO) const = 0; 80 virtual bool IsAvailableReg(regno_t regNO) const = 0; 82 virtual bool IsYieldPointReg(regno_t regNO) const = 0; 83 virtual bool IsUntouchableReg(uint32 regNO) const = 0; 84 virtual bool IsUnconcernedReg(regno_t regNO) const = 0; 102 virtual bool IsSpillRegInRA(regno_t regNO, bool has3RegOpnd) = 0;
|
D | reg_alloc.h | 30 VirtualRegNode(RegType type, uint32 size) : regType(type), size(size), regNO(kInvalidRegNO) {} in VirtualRegNode() 36 regNO = phyRegNO; in AssignPhysicalRegister() 52 regno_t regNO = kInvalidRegNO; /* physical register assigned by register allocation */ variable 63 bool IsYieldPointReg(regno_t regNO) const; 64 bool IsUntouchableReg(regno_t regNO) const;
|
D | dependence.h | 63 virtual void AppendRegUseList(Insn &insn, regno_t regNO) = 0; 66 virtual void BuildDepsUseReg(Insn &insn, regno_t regNO) = 0; 67 virtual void BuildDepsDefReg(Insn &insn, regno_t regNO) = 0; 83 virtual bool IfInAmbiRegs(regno_t regNO) const = 0;
|
D | call_conv.h | 102 regNO(0), in LmbcFormalParamInfo() 157 return regNO; in GetRegNO() 161 regNO = reg; in SetRegNO() 230 regno_t regNO = 0; /* param reg num or starting reg num if numRegs > 0 */ variable
|