Home
last modified time | relevance | path

Searched full:save_state (Results 1 – 22 of 22) sorted by relevance

/arkcompiler/runtime_core/compiler/optimizer/optimizations/regalloc/
Dreg_alloc_resolver.h62 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()
Dreg_alloc_resolver.cpp198 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/
Dinstructions.yaml253 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 …]
Dir_constructor.h1073 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()
Dgraph_checker.cpp1744 … 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/
Dinst_builder-inl.h23 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()
Dinst_builder.cpp201 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()
Dphi_resolver.h58 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()
Dinst_builder.h105 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/
Dgenerate_operations_intrinsic_graph.inl.erb38 auto save_state = graph->CreateInstSaveState();
39 block->AppendInst(save_state);
40 inst->AppendInput(save_state);
Dintrinsics_flags.inl.erb30 …:inst_flags::REQUIRE_STATE) == 0, "<%= intrinsic.enum_name %> requires save_state because virtual …
/arkcompiler/runtime_core/compiler/tests/
Dreg_alloc_common_test.cpp238 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()
Dinst_test.cpp543 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()
Dlowering_test.cpp326 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 …]
Dinst_generator.cpp442 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/
Dtry_catch_resolving.cpp161 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/
Dinstructions.rb45 SAVE_STATE = 'save_state' constant
Dinst_checker_gen.h.erb60 % if operand.has('save_state')
/arkcompiler/runtime_core/irtoc/lang/
Dir_generator.rb31 Output << "[[maybe_unused]] auto save_state = source_inst->GetSaveState();"
122 Output << "#{var_name}->SetSaveState(save_state);"
/arkcompiler/runtime_core/compiler/optimizer/code_generator/
Dcodegen.cpp874 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 …]
Dcodegen.h173 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/
Dliveness_analyzer.cpp406 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()