| /arkcompiler/runtime_core/compiler/optimizer/optimizations/regalloc/ |
| D | reg_alloc_resolver.h | 62 void PropagateCallerMasks(SaveStateInst *save_state); 64 void FillSaveStateRootsMask(SaveStateInst *save_state, Inst *user, SaveStateInst *target_ss); 68 …static inline void AddLocationToRoots(Location location, SaveStateInst *save_state, const Graph *g… in AddLocationToRoots() argument 71 save_state->GetRootsRegsMask().set(location.GetValue()); in AddLocationToRoots() 73 save_state->GetRootsStackMask()->SetBit(location.GetValue()); in AddLocationToRoots() 77 save_state->GetRootsStackMask()->SetBit(location.GetValue() + slot_offset); in AddLocationToRoots()
|
| D | reg_alloc_resolver.cpp | 198 void RegAllocResolver::PropagateCallerMasks(SaveStateInst *save_state) in PropagateCallerMasks() argument 200 save_state->CreateRootsStackMask(GetGraph()->GetAllocator()); in PropagateCallerMasks() 201 auto user = GetExplicitUser(GetFirstUserOrInst(save_state)); in PropagateCallerMasks() 204 FillSaveStateRootsMask(save_state, user, save_state); in PropagateCallerMasks() 205 for (auto caller_inst = save_state->GetCallerInst(); caller_inst != nullptr; in PropagateCallerMasks() 208 FillSaveStateRootsMask(caller_ss, user, save_state); in PropagateCallerMasks() 212 void RegAllocResolver::FillSaveStateRootsMask(SaveStateInst *save_state, Inst *user, SaveStateInst … in FillSaveStateRootsMask() argument 216 for (size_t i = 0; i < save_state->GetInputsCount(); ++i) { in FillSaveStateRootsMask() 217 auto input_inst = save_state->GetDataFlowInput(i); in FillSaveStateRootsMask()
|
| /arkcompiler/runtime_core/compiler/optimizer/ir/ |
| D | instructions.yaml | 253 signature: [d-ref, ref, int-ngc, save_state] 261 signature: [d-ref, ref, save_state] 269 signature: [d-ref, real-dyn, save_state] 331 signature: [d-real, ref-nc, save_state] 348 signature: [ref-nc, real, save_state] 365 signature: [d-real, save_state] 382 signature: [real, save_state] 397 signature: [d-ref, save_state] 403 signature: [d-ref, save_state] 409 signature: [ref, save_state] [all …]
|
| D | ir_constructor.h | 1073 auto save_state = graph_->CreateInstSaveState(); in CreateSaveStates() local 1074 save_state->SetId(static_cast<int>(graph_->GetCurrentInstructionId()) + 1); in CreateSaveStates() 1075 graph_->SetCurrentInstructionId(save_state->GetId() + 1); in CreateSaveStates() 1076 inst->GetBasicBlock()->InsertBefore(save_state, inst); in CreateSaveStates() 1077 inst->SetSaveState(save_state); in CreateSaveStates()
|
| D | graph_checker.cpp | 1744 … std::cerr << "Some inpust from save_state were deleted, but the user requireRegMap:\n" in CheckDataFlow() 1795 [[maybe_unused]] auto save_state = inst->GetInput(2).GetInst(); in CheckDataFlow() local 1796 ASSERT_DO((save_state != nullptr && save_state->GetOpcode() == Opcode::SaveState), in CheckDataFlow() 1807 [[maybe_unused]] auto save_state = inst->GetInput(2).GetInst(); in CheckDataFlow() local 1808 ASSERT_DO((save_state != nullptr && save_state->GetOpcode() == Opcode::SaveState), in CheckDataFlow()
|
| /arkcompiler/runtime_core/compiler/optimizer/ir_builder/ |
| D | inst_builder-inl.h | 23 Inst *InstBuilder::BuildAnyTypeCheckInst(size_t bc_addr, Inst *input, Inst *save_state, AnyBaseType… in BuildAnyTypeCheckInst() argument 27 any_check->SetInput(1, save_state); in BuildAnyTypeCheckInst() 41 auto save_state = CreateSaveState(Opcode::SaveState, GetPc(bc_inst->GetAddress())); in BuildLoadFromPool() local 65 inst->SetInput(0, save_state); in BuildLoadFromPool() 67 AddInstruction(save_state); in BuildLoadFromPool()
|
| D | inst_builder.cpp | 201 void InstBuilder::RemoveNotDominateInputs(SaveStateInst *save_state) in RemoveNotDominateInputs() argument 204 size_t inputs_count = save_state->GetInputsCount(); in RemoveNotDominateInputs() 206 auto input_inst = save_state->GetInput(idx).GetInst(); in RemoveNotDominateInputs() 207 // We can don't call IsDominate, if save_state and input_inst in one basic block. in RemoveNotDominateInputs() 209 if (!input_inst->InSameBlockOrDominate(save_state)) { in RemoveNotDominateInputs() 210 save_state->RemoveInput(idx); in RemoveNotDominateInputs() 213 …ASSERT(input_inst->GetBasicBlock() != save_state->GetBasicBlock() || input_inst->IsDominate(save_s… in RemoveNotDominateInputs()
|
| D | phi_resolver.h | 58 auto save_state = static_cast<SaveStateInst *>(user); in Run() local 60 size_t inputs_count = save_state->GetInputsCount(); in Run() 62 auto input_inst = save_state->GetInput(idx).GetInst(); in Run() 64 save_state->RemoveInput(idx); in Run()
|
| D | inst_builder.h | 105 static void RemoveNotDominateInputs(SaveStateInst *save_state); 250 Inst *BuildAnyTypeCheckInst(size_t bc_addr, Inst *input, Inst *save_state,
|
| /arkcompiler/runtime_core/compiler/optimizer/templates/intrinsics/ |
| D | generate_operations_intrinsic_graph.inl.erb | 38 auto save_state = graph->CreateInstSaveState(); 39 block->AppendInst(save_state); 40 inst->AppendInput(save_state);
|
| D | intrinsics_flags.inl.erb | 30 …:inst_flags::REQUIRE_STATE) == 0, "<%= intrinsic.enum_name %> requires save_state because virtual …
|
| /arkcompiler/runtime_core/compiler/tests/ |
| D | reg_alloc_common_test.cpp | 238 auto save_state = null_check->GetSaveState(); in TEST_F() local 239 // Check that save_state's inputs are added to the roots in TEST_F() 240 auto roots = save_state->GetRootsRegsMask(); in TEST_F() 241 for (auto input : save_state->GetInputs()) { in TEST_F()
|
| D | inst_test.cpp | 543 auto save_state = graph->CreateInstSaveState(); in TEST_F() local 546 save_state->AppendInput(graph->FindOrCreateConstant(i)); in TEST_F() 547 save_state->SetVirtualRegister(i, VirtualRegister(i, false)); in TEST_F() 552 ASSERT_EQ(user, save_state); in TEST_F()
|
| D | lowering_test.cpp | 326 auto save_state = INS(8).CastToSaveState(); in TEST_F() local 329 EXPECT_EQ(save_state->GetInputsCount(), 2U); in TEST_F() 330 EXPECT_EQ(save_state->GetImmediatesCount(), 4U); in TEST_F() 331 EXPECT_EQ((*save_state->GetImmediates())[0].value, (bit_cast<uint64_t, uint64_t>(0))); in TEST_F() 332 EXPECT_EQ((*save_state->GetImmediates())[1].value, (bit_cast<uint64_t, uint64_t>(1))); in TEST_F() 333 EXPECT_EQ((*save_state->GetImmediates())[2].value, (bit_cast<uint64_t, double>(0.5))); in TEST_F() 334 EXPECT_EQ((*save_state->GetImmediates())[3].value, (bit_cast<uint64_t, uint64_t>(50))); in TEST_F() 335 EXPECT_EQ(save_state->GetInput(0).GetInst(), &INS(0)); in TEST_F() 336 EXPECT_EQ(save_state->GetInput(1).GetInst(), &INS(5)); in TEST_F() 337 EXPECT_EQ(save_state->GetVirtualRegister(0).Value(), 10); in TEST_F() [all …]
|
| D | inst_generator.cpp | 442 auto *save_state = static_cast<SaveStateInst *>(inst); in GenerateOperation() local 443 for (size_t i = 0; i < save_state->GetInputsCount(); ++i) { in GenerateOperation() 444 save_state->SetVirtualRegister(i, VirtualRegister(i, false)); in GenerateOperation() 446 SetNumVRegsArgs(0, save_state->GetInputsCount()); in GenerateOperation() 447 graph->SetVRegsCount(save_state->GetInputsCount() + 1); in GenerateOperation()
|
| /arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
| D | try_catch_resolving.cpp | 161 auto save_state = throw_inst->GetInput(1).GetInst(); in ConnectCatchHandlerAfterThrow() local 162 ASSERT(save_state->GetOpcode() == Opcode::SaveState); in ConnectCatchHandlerAfterThrow() 165 throw_block->RemoveInst(save_state); in ConnectCatchHandlerAfterThrow()
|
| /arkcompiler/runtime_core/compiler/optimizer/templates/ |
| D | instructions.rb | 45 SAVE_STATE = 'save_state' constant
|
| D | inst_checker_gen.h.erb | 60 % if operand.has('save_state')
|
| /arkcompiler/runtime_core/irtoc/lang/ |
| D | ir_generator.rb | 31 Output << "[[maybe_unused]] auto save_state = source_inst->GetSaveState();" 122 Output << "#{var_name}->SetSaveState(save_state);"
|
| /arkcompiler/runtime_core/compiler/optimizer/code_generator/ |
| D | codegen.cpp | 874 SaveStateInst *save_state = nullptr; in CreateStackMap() local 876 save_state = static_cast<SaveStateInst *>(inst); in CreateStackMap() 878 save_state = inst->GetSaveState(); in CreateStackMap() 880 ASSERT(save_state != nullptr); in CreateStackMap() 884 for (auto call_inst = save_state->GetCallerInst(); call_inst != nullptr; in CreateStackMap() 889 …code_builder_->BeginStackMap(outer_bpc, GetEncoder()->GetCursorOffset(), save_state->GetRootsStack… in CreateStackMap() 890 save_state->GetRootsRegsMask().to_ulong(), require_vreg_map, in CreateStackMap() 891 save_state->GetOpcode() == Opcode::SaveStateOsr); in CreateStackMap() 894 if (inst == save_state && inst->HasUsers()) { in CreateStackMap() 903 CreateStackMapRec(save_state, require_vreg_map, user); in CreateStackMap() [all …]
|
| D | codegen.h | 173 void CreateStackMapRec(SaveStateInst *save_state, bool require_vreg_map, Inst *target_site); 174 void CreateVRegMap(SaveStateInst *save_state, size_t vregs_count, Inst *target_site); 176 void FillVregIndices(SaveStateInst *save_state); 178 void CreateOsrEntry(SaveStateInst *save_state);
|
| /arkcompiler/runtime_core/compiler/optimizer/analysis/ |
| D | liveness_analyzer.cpp | 406 auto save_state = inst->GetSaveState(); in AdjustInputsLifetime() local 407 ASSERT(save_state != nullptr); in AdjustInputsLifetime() 409 for (auto ss_input : save_state->GetInputs()) { in AdjustInputsLifetime() 410 auto input_inst = save_state->GetDataFlowInput(ss_input.GetInst()); in AdjustInputsLifetime()
|