/arkcompiler/runtime_core/static_core/compiler/optimizer/code_generator/ |
H A D | spill_fill_encoder.cpp | 119 auto sf = *it; in EncodeSpillFill() local 136 switch (sf.SrcType()) { in EncodeSpillFill() 138 adv = EncodeImmToX(sf); in EncodeSpillFill() 143 adv = EncodeRegisterToX(sf, next, consecutiveOpsHint); in EncodeSpillFill() 148 adv = EncodeStackToX(sf, next, consecutiveOpsHint); in EncodeSpillFill() 182 size_t SpillFillEncoder::EncodeImmToX(const SpillFillData &sf) in EncodeImmToX() argument 184 auto constInst = graph_->GetSpilledConstant(sf.SrcValue()); in EncodeImmToX() 187 if (sf.GetDst().IsAnyRegister()) { // imm -> register in EncodeImmToX() 188 auto type = sf.GetType(); in EncodeImmToX() 210 auto dstReg = GetDstReg(sf in EncodeImmToX() 222 EncodeRegisterToX(const SpillFillData &sf, const SpillFillData *next, int consecutiveOpsHint) EncodeRegisterToX() argument 262 EncodeStackToX(const SpillFillData &sf, const SpillFillData *next, int consecutiveOpsHint) EncodeStackToX() argument [all...] |
H A D | method_properties.cpp | 81 auto sf = static_cast<const ParameterInst *>(inst)->GetLocationData(); in CheckAndSetStackParams() local 82 if (sf.DstValue() != INVALID_REG && sf.SrcType() == LocationType::STACK_PARAMETER) { in CheckAndSetStackParams()
|
H A D | spill_fill_encoder.h | 59 size_t EncodeImmToX(const SpillFillData &sf); 60 size_t EncodeRegisterToX(const SpillFillData &sf, const SpillFillData *next, int consecutiveOpsHint = 0); 61 size_t EncodeStackToX(const SpillFillData &sf, const SpillFillData *next, int consecutiveOpsHint = 0);
|
/arkcompiler/runtime_core/compiler/optimizer/optimizations/regalloc/ |
H A D | spill_fills_resolver.cpp | 134 for (const auto &sf : spill_fills) { in NeedToResolve() 135 if (sf.DstType() == sf.SrcType() && sf.DstValue() == sf.SrcValue()) { in NeedToResolve() 139 bool paired = IsPairedReg(GetGraph()->GetArch(), sf.GetType()); in NeedToResolve() 141 if (sf.GetDst().IsAnyRegister()) { in NeedToResolve() 142 MarkRegWrite(sf.GetDst(), ®_write_, paired, VREGS_TABLE_OFFSET); in NeedToResolve() 146 if (sf.GetSrc().IsAnyRegister()) { in NeedToResolve() 147 if (IsRegWrite(sf in NeedToResolve() [all...] |
H A D | reg_alloc_base.cpp | 176 auto sf = inst->CastToParameter()->GetLocationData(); in SetPreassignedRegisters() local 177 if (sf.GetSrc().IsAnyRegister()) { in SetPreassignedRegisters() 178 auto &mask = sf.GetSrc().IsFpRegister() ? vregs_mask_ : regs_mask_; in SetPreassignedRegisters() 179 if (GetGraph()->GetArch() != Arch::AARCH32 || !mask.IsSet(sf.SrcValue())) { in SetPreassignedRegisters() 180 interval->SetPreassignedReg(sf.SrcValue()); in SetPreassignedRegisters() 182 } else if (sf.GetSrc().IsStackParameter()) { in SetPreassignedRegisters() 183 interval->SetLocation(sf.GetSrc()); in SetPreassignedRegisters()
|
H A D | split_resolver.h | 50 auto sf = inst->CastToSpillFill(); in Is() local 51 ASSERT(sf->GetSpillFillType() != SpillFillType::UNKNOWN); in Is() 52 return sf->GetSpillFillType() == expected_type; in Is()
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/regalloc/ |
H A D | spill_fills_resolver.cpp | 135 for (const auto &sf : spillFills) { in NeedToResolve() 136 if (sf.DstType() == sf.SrcType() && sf.DstValue() == sf.SrcValue()) { in NeedToResolve() 140 bool paired = IsPairedReg(GetGraph()->GetArch(), sf.GetType()); in NeedToResolve() 142 if (sf.GetDst().IsAnyRegister()) { in NeedToResolve() 143 MarkRegWrite(sf.GetDst(), ®Write_, paired, vregsTableOffset_); in NeedToResolve() 147 if (sf.GetSrc().IsAnyRegister()) { in NeedToResolve() 148 if (IsRegWrite(sf in NeedToResolve() [all...] |
H A D | split_resolver.h | 50 auto sf = inst->CastToSpillFill(); in Is() local 51 ASSERT(sf->GetSpillFillType() != SpillFillType::UNKNOWN); in Is() 52 return sf->GetSpillFillType() == EXPECTED_TYPE; in Is()
|
H A D | reg_alloc_base.cpp | 193 auto sf = inst->CastToParameter()->GetLocationData(); in SetPreassignedRegisters() local 194 if (sf.GetSrc().IsAnyRegister()) { in SetPreassignedRegisters() 195 auto &mask = sf.GetSrc().IsFpRegister() ? vregsMask_ : regsMask_; in SetPreassignedRegisters() 196 if (GetGraph()->GetArch() != Arch::AARCH32 || !mask.IsSet(sf.SrcValue())) { in SetPreassignedRegisters() 197 interval->SetPreassignedReg(sf.SrcValue()); in SetPreassignedRegisters() 199 } else if (sf.GetSrc().IsStackParameter()) { in SetPreassignedRegisters() 200 interval->SetLocation(sf.GetSrc()); in SetPreassignedRegisters()
|
/arkcompiler/runtime_core/static_core/compiler/tests/ |
H A D | reg_alloc_linear_scan_test.cpp | 65 for (auto sf : sfInst->CastToSpillFill()->GetSpillFills()) { in CheckImmediateSpillFill() 66 if (sf.SrcType() == LocationType::IMMEDIATE && (graph->GetSpilledConstant(sf.SrcValue()) == constInput) && in CheckImmediateSpillFill() 67 sf.DstValue() == srcReg) { in CheckImmediateSpillFill() 75 void TestPhiMovesOverwriting(Graph *graph, SpillFillInst *sf, SpillFillInst *expectedSf); 77 void TestPhiMovesOverwritingCyclic(Graph *graph, SpillFillsResolver &resolver, SpillFillInst *sf, 80 void TestPhiMovesOverwritingNotApplied(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf); 82 void TestPhiMovesOverwritingComplex(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf); 83 void PhiMovesOverwritingMixed(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf); 84 void PhiMovesOverwriting2(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillIns 361 TestPhiMovesOverwriting(Graph *graph, SpillFillInst *sf, SpillFillInst *expectedSf) TestPhiMovesOverwriting() argument 390 TestPhiMovesOverwritingCyclic(Graph *graph, SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf) TestPhiMovesOverwritingCyclic() argument 440 TestPhiMovesOverwritingNotApplied(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf) TestPhiMovesOverwritingNotApplied() argument 455 TestPhiMovesOverwritingComplex(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf) TestPhiMovesOverwritingComplex() argument 493 PhiMovesOverwritingMixed(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf) PhiMovesOverwritingMixed() argument 547 PhiMovesOverwriting2(SpillFillsResolver &resolver, SpillFillInst *sf, SpillFillInst *expectedSf) PhiMovesOverwriting2() argument 615 auto sf = GetGraph()->CreateInstSpillFill(); TEST_F() local 617 TestPhiMovesOverwriting<DataType::UINT32>(GetGraph(), sf, expectedSf); TEST_F() local 618 TestPhiMovesOverwriting<DataType::UINT64>(GetGraph(), sf, expectedSf); TEST_F() local 619 TestPhiMovesOverwriting<DataType::FLOAT64>(GetGraph(), sf, expectedSf); TEST_F() local 662 auto sf = graph->CreateInstSpillFill(); TEST_F() local 1456 auto sf = spillFill->CastToSpillFill()->GetSpillFill(0U); TEST_F() local 1636 auto sf = INS(5U).GetPrev()->CastToSpillFill(); TEST_F() local [all...] |
H A D | reg_alloc_resolver_test.cpp | 126 auto sf = prev->CastToSpillFill(); in TEST_F() local 127 auto sfData = sf->GetSpillFills(); in TEST_F()
|
H A D | reg_alloc_verifier_test.cpp | 295 auto sf = INS(2U).CastToSpillFill(); in TEST_F() local 297 sf->AddMove(1U, 0U, DataType::UINT64); in TEST_F() 298 sf->AddMove(0U, 16U, DataType::UINT64); in TEST_F() 299 sf->AddMove(16U, 1U, DataType::UINT64); in TEST_F()
|
H A D | reg_alloc_common_test.cpp | 305 auto it = std::find_if(sfs.cbegin(), sfs.cend(), [reg](auto sf) { in TEST_F() 306 return sf.DstValue() == reg && sf.DstType() == LocationType::REGISTER; in TEST_F()
|
/arkcompiler/runtime_core/bytecode_optimizer/ |
H A D | codegen.cpp | 153 void BytecodeGen::EncodeSpillFillData(const compiler::SpillFillData &sf) in EncodeSpillFillData() argument 155 if (sf.SrcType() != compiler::LocationType::REGISTER || sf.DstType() != compiler::LocationType::REGISTER) { in EncodeSpillFillData() 157 << static_cast<int>(sf.SrcType()) in EncodeSpillFillData() 158 << " dst_type: " << static_cast<int>(sf.DstType()); in EncodeSpillFillData() 163 ASSERT(sf.GetType() != compiler::DataType::NO_TYPE); in EncodeSpillFillData() 164 ASSERT(sf.SrcValue() != compiler::INVALID_REG && sf.DstValue() != compiler::INVALID_REG); in EncodeSpillFillData() 166 if (sf.SrcValue() == sf in EncodeSpillFillData() [all...] |
H A D | reg_encoder.cpp | 160 for (auto &sf : inst->GetSpillFills()) { in RenumberSpillFillRegs() 161 if (sf.SrcType() == compiler::LocationType::REGISTER && sf.SrcValue() >= min_reg) { in RenumberSpillFillRegs() 162 sf.SetSrc(compiler::Location::MakeRegister(RenumberReg(sf.SrcValue(), delta))); in RenumberSpillFillRegs() 164 if (sf.DstType() == compiler::LocationType::REGISTER && sf.DstValue() >= min_reg) { in RenumberSpillFillRegs() 165 sf.SetDst(compiler::Location::MakeRegister(RenumberReg(sf.DstValue(), delta))); in RenumberSpillFillRegs()
|
H A D | codegen.h | 94 void EncodeSpillFillData(const compiler::SpillFillData &sf);
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/ |
H A D | reg_alloc_verifier.cpp | 467 auto sf = inst->GetLocationData(); in HandleParameter() local 468 UpdateLocation(sf.GetDst(), inst->GetType(), inst->GetId()); in HandleParameter() 480 for (auto sf : inst->GetSpillFills()) { in HandleSpillFill() 483 sf.GetSrc(), sf.GetType(), [&state, &sf, inst, arch = GetGraph()->GetArch()](LocationState &st) { in HandleSpillFill() 487 COMPILER_LOG(ERROR, REGALLOC) << "SpillFill is accessing " << sf.GetSrc().ToString(arch) in HandleSpillFill() 496 << inst->GetId() << " read from " << sf.GetSrc().ToString(arch); in HandleSpillFill() 500 UpdateLocation(sf.GetDst(), sf in HandleSpillFill() [all...] |
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
H A D | spill_fill_data.h | 101 inline auto ToString(const SpillFillData &sf, Arch arch) in ToString() argument 104 sf.Dump(ss, arch); in ToString()
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
H A D | spill_fill_data.h | 99 inline auto ToString(const SpillFillData &sf, Arch arch) in ToString() argument 102 sf.Dump(ss, arch); in ToString()
|
/arkcompiler/runtime_core/static_core/bytecode_optimizer/ |
H A D | codegen.cpp | 200 void BytecodeGen::EncodeSpillFillData(const compiler::SpillFillData &sf) in EncodeSpillFillData() argument 202 if (sf.SrcType() != compiler::LocationType::REGISTER || sf.DstType() != compiler::LocationType::REGISTER) { in EncodeSpillFillData() 204 << static_cast<int>(sf.SrcType()) in EncodeSpillFillData() 205 << " dst_type: " << static_cast<int>(sf.DstType()); in EncodeSpillFillData() 210 ASSERT(sf.GetType() != compiler::DataType::NO_TYPE); in EncodeSpillFillData() 211 ASSERT(sf.SrcValue() != compiler::INVALID_REG && sf.DstValue() != compiler::INVALID_REG); in EncodeSpillFillData() 213 if (sf.SrcValue() == sf in EncodeSpillFillData() [all...] |
H A D | reg_encoder.cpp | 191 for (auto &sf : inst->GetSpillFills()) { in RenumberSpillFillRegs() 192 if (sf.SrcType() == compiler::LocationType::REGISTER && sf.SrcValue() >= minReg) { in RenumberSpillFillRegs() 193 sf.SetSrc(compiler::Location::MakeRegister(RenumberReg(sf.SrcValue(), delta))); in RenumberSpillFillRegs() 195 if (sf.DstType() == compiler::LocationType::REGISTER && sf.DstValue() >= minReg) { in RenumberSpillFillRegs() 196 sf.SetDst(compiler::Location::MakeRegister(RenumberReg(sf.DstValue(), delta))); in RenumberSpillFillRegs()
|
H A D | codegen.h | 104 void EncodeSpillFillData(const compiler::SpillFillData &sf);
|
/arkcompiler/runtime_core/compiler/tests/ |
H A D | reg_alloc_common_test.cpp | 260 auto it = std::find_if(sfs.cbegin(), sfs.cend(), [reg](auto sf) { in TEST_F() 261 return sf.DstValue() == reg && sf.DstType() == LocationType::REGISTER; in TEST_F()
|
H A D | split_resolver_test.cpp | 66 auto sf = inst->CastToSpillFill(); in CheckSpillFills() local 70 for (auto &sf_data : sf->GetSpillFills()) { in CheckSpillFills()
|
/arkcompiler/ets_runtime/ecmascript/compiler/assembler/aarch64/ |
H A D | assembler_aarch64.cpp | 108 bool sf = !rt.IsW(); in Ldp() local 110 if (sf) { in Ldp() 115 uint32_t instructionCode = Sf(sf) | op | LoadAndStorePairImm(imm) | Rt2(rt2.GetId()) | in Ldp() 142 bool sf = !rt.IsW(); in Stp() local 144 if (sf) { in Stp() 149 uint32_t instructionCode = Sf(sf) | op | LoadAndStorePairImm(imm) | Rt2(rt2.GetId()) | in Stp() 744 bool sf = !rd.IsW(); in Ubfm() local 745 uint32_t n = (sf << BITWISE_OP_N_LOWBITS) & BITWISE_OP_N_MASK; in Ubfm() 748 uint32_t code = Sf(sf) | UBFM | n | immr_field | imms_field | Rn(rn.GetId()) | Rd(rd.GetId()); in Ubfm() 754 bool sf in Bfm() local [all...] |