| /arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
| D | dump.cpp | 94 auto allocator = inst->GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpUsers() 95 auto arch = inst->GetBasicBlock()->GetGraph()->GetArch(); in DumpUsers() 207 const auto &allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpInputs() 208 auto arch = GetBasicBlock()->GetGraph()->GetArch(); in DumpInputs() 228 const auto &allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpInputs() 296 const auto &allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpInputs() 347 (*out) << sf_data::ToString(spillFill, GetBasicBlock()->GetGraph()->GetArch()); in DumpInputs() 355 auto allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpInputs() 363 auto allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpOpcode() 376 auto allocator = mixinInst->GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpOpcodeAnyTypeMixin() [all …]
|
| D | inst.cpp | 132 if (currInput->GetBasicBlock() != nullptr && currInput->HasUsers()) { in Remove() 258 GetBasicBlock()->GetGraph()->IsDynamicMethod(); in IsDynamicCast() 276 ASSERT(bbNum < GetBasicBlock()->GetPredsBlocks().size()); in OPCODE_CLASS_LIST() 277 return GetBasicBlock()->GetPredsBlocks()[bbNum]; in OPCODE_CLASS_LIST() 364 ASSERT(other != nullptr && GetBasicBlock() == other->GetBasicBlock()); in IsPrecedingInSameBlock() 384 auto thisBb = GetBasicBlock(); in IsDominate() 385 auto otherBb = other->GetBasicBlock(); in IsDominate() 391 return GetBasicBlock() == other->GetBasicBlock() || IsDominate(other); in InSameBlockOrDominate() 470 bool isSupportInt32 = GetBasicBlock()->GetGraph()->IsBytecodeOptimizer(); in Clone() 537 ASSERT(GetBasicBlock() != nullptr); in AppendImmediate() [all …]
|
| D | analysis.cpp | 97 auto bb = inst->GetBasicBlock(); in HasOsrEntryBetween() 103 return FindBlockBetween<IsOsrEntryBlock>(dominateInst->GetBasicBlock(), bb, marker.GetMarker()); in HasOsrEntryBetween() 120 auto bb = inst->GetBasicBlock(); in HasTryBlockBetween() 122 return FindBlockBetween<IsTryBlock>(dominateInst->GetBasicBlock(), bb, marker.GetMarker()); in HasTryBlockBetween() 189 auto arch = array->GetBasicBlock()->GetGraph()->GetArch(); in CanArrayAccessBeImplicit() 196 auto graph = inst->GetBasicBlock()->GetGraph(); in IsSuitableForImplicitNullCheck() 250 auto graph = inst->GetBasicBlock()->GetGraph(); in IsInstNotNull() 341 auto ifBlock = ifImm->GetBasicBlock(); in IsIfInverted() 454 if (targetInst->IsPhi() || targetInst->GetBasicBlock() != block) { in FixUsagePhiInBB() 470 if (targetInst->GetBasicBlock() == block) { in FixUsageInstInOtherBB() [all …]
|
| D | graph_cloner.cpp | 190 ASSERT(user->GetBasicBlock() != nullptr); in CreateResolverBlock() 191 if (user->GetBasicBlock()->GetLoop() != loop) { in CreateResolverBlock() 216 auto newCmp = compare->Clone(compare->GetBasicBlock()->GetGraph()); in SplitBackEdge() 313 ASSERT(user->GetBasicBlock() != nullptr); in UpdateUsersAfterNoSideExitsUnroll() 314 if (user->GetBasicBlock()->GetLoop() != loop) { in UpdateUsersAfterNoSideExitsUnroll() 327 if (headerPhi->IsPhi() && headerPhi->GetBasicBlock() == unrollData->header) { in UpdateUsersAfterNoSideExitsUnroll() 471 } else if (input->IsPhi() && input->GetBasicBlock()->GetLoop() == loop) { in BuildLoopUnrollDataFlow() 565 ASSERT(user->GetBasicBlock() != nullptr); in BuildClonedLoopHeaderDataFlow() 566 if (user->GetBasicBlock()->GetLoop() != block.GetLoop()) { in BuildClonedLoopHeaderDataFlow() 659 auto instBlock = inst->GetBasicBlock(); in UpdateUsersForClonedLoopHeader() [all …]
|
| /arkcompiler/runtime_core/compiler/optimizer/ir/ |
| D | inst.cpp | 122 if (curr_input->GetBasicBlock() != nullptr && curr_input->HasUsers()) { in Remove() 181 ASSERT(bb_num < GetBasicBlock()->GetPredsBlocks().size()); in GetPhiInputBb() 182 return GetBasicBlock()->GetPredsBlocks()[bb_num]; in GetPhiInputBb() 233 ASSERT(other != nullptr && GetBasicBlock() == other->GetBasicBlock()); in IsPrecedingInSameBlock() 253 auto this_bb = GetBasicBlock(); in IsDominate() 254 auto other_bb = other->GetBasicBlock(); in IsDominate() 260 return GetBasicBlock() == other->GetBasicBlock() || IsDominate(other); in InSameBlockOrDominate() 334 bool is_support_int32 = GetBasicBlock()->GetGraph()->IsBytecodeOptimizer(); in Clone() 383 ASSERT(GetBasicBlock() != nullptr); in AppendImmediate() 384 AllocateImmediates(GetBasicBlock()->GetGraph()->GetAllocator(), 0); in AppendImmediate() [all …]
|
| D | dump.cpp | 93 auto allocator = inst->GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpUsers() 94 auto arch = inst->GetBasicBlock()->GetGraph()->GetArch(); in DumpUsers() 187 const auto &allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpInputs() 188 auto arch = GetBasicBlock()->GetGraph()->GetArch(); in DumpInputs() 203 const auto &allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpInputs() 237 const auto &allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpInputs() 288 (*out) << sf_data::ToString(spill_fill, GetBasicBlock()->GetGraph()->GetArch()); in DumpInputs() 295 … (*out) << "arg " << IdToString(GetArgNumber(), GetBasicBlock()->GetGraph()->GetLocalAllocator()); in DumpInputs() 301 auto allocator = GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpOpcode() 314 auto allocator = mixin_inst->GetBasicBlock()->GetGraph()->GetLocalAllocator(); in DumpOpcodeAnyTypeMixin() [all …]
|
| D | graph_checker.cpp | 57 ASSERT(user_inst->GetBasicBlock() != nullptr); in UserInputCheck() 64 ASSERT(input_inst != nullptr && input_inst->GetBasicBlock() != nullptr); in UserInputCheck() 190 ASSERT_DO(inst->GetBasicBlock() == block, in CheckDataFlow() 215 … IsTryCatchDomination(inst->GetBasicBlock(), user_inst->GetBasicBlock())), in CheckDataFlow() 324 [[maybe_unused]] auto input_bb = phi_inst->CastToPhi()->GetPhiInput(pred)->GetBasicBlock(); in CheckPhiInputs() 338 auto graph = inst->GetBasicBlock()->GetGraph(); in CheckInstRegUsageSaved() 509 ASSERT(input->GetBasicBlock() != nullptr); in CheckInstHasInput() 510 ASSERT(input->GetBasicBlock()->GetGraph() != nullptr); in CheckInstHasInput() 522 ASSERT(user->GetBasicBlock() != nullptr); in CheckInstHasUser() 523 ASSERT(user->GetBasicBlock()->GetGraph() != nullptr); in CheckInstHasUser() [all …]
|
| D | basicblock.cpp | 55 ASSERT(inst->GetBasicBlock() == this); in SplitBlockAfterInstruction() 143 if (inst->GetBasicBlock() == bb) { // When INST is from empty basic block ... in RemovePhiProcessing() 425 …ASSERT_PRINT(inst_db->GetBasicBlock() == this, "Inst::SetBasicBlock() should be called beforehand"… in AppendRangeInst() 429 …ASSERT_PRINT(inst_db->GetBasicBlock() == this, "Inst::SetBasicBlock() should be called beforehand"… in AppendRangeInst() 452 ASSERT(after->GetBasicBlock() == this); in InsertAfter() 453 ASSERT(inst->GetBasicBlock() == nullptr); in InsertAfter() 471 ASSERT(before->GetBasicBlock() == this); in InsertBefore() 472 ASSERT(inst->GetBasicBlock() == nullptr); in InsertBefore() 496 ASSERT(before->GetBasicBlock() == this); in InsertRangeBefore() 500 …ASSERT_PRINT(inst_db->GetBasicBlock() == this, "Inst::SetBasicBlock() should be called beforehand"… in InsertRangeBefore() [all …]
|
| D | graph_cloner.cpp | 195 ASSERT(user->GetBasicBlock() != nullptr); in CreateResolverBlock() 196 if (user->GetBasicBlock()->GetLoop() != loop) { in CreateResolverBlock() 221 auto new_cmp = compare->Clone(compare->GetBasicBlock()->GetGraph()); in SplitBackEdge() 319 ASSERT(user->GetBasicBlock() != nullptr); in UpdateUsersAfterNoSideExitsUnroll() 320 if (user->GetBasicBlock()->GetLoop() != loop) { in UpdateUsersAfterNoSideExitsUnroll() 333 if (header_phi->IsPhi() && header_phi->GetBasicBlock() == unroll_data->header) { in UpdateUsersAfterNoSideExitsUnroll() 477 } else if (input->IsPhi() && input->GetBasicBlock()->GetLoop() == loop) { in BuildLoopUnrollDataFlow() 544 ASSERT(user->GetBasicBlock() != nullptr); in BuildClonedLoopHeaderDataFlow() 545 if (user->GetBasicBlock()->GetLoop() != block.GetLoop()) { in BuildClonedLoopHeaderDataFlow() 638 auto inst_block = inst->GetBasicBlock(); in UpdateUsersForClonedLoopHeader() [all …]
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
| D | licm.cpp | 163 inst->GetBasicBlock()->InsertAfter(target, inst); in MoveInstructions() 166 inst->GetBasicBlock()->EraseInst(inst); in MoveInstructions() 171 ASSERT(lastInst->GetBasicBlock() == preHeader); in MoveInstructions() 290 …if (FindUnsafeInstBetween(ss->GetBasicBlock(), resolver->GetBasicBlock(), visited.GetMarker(), res… in FindSaveStateForResolver() 305 auto instLoop = inst->GetBasicBlock()->GetLoop(); in InstInputDominatesPreheader() 310 auto inputLoop = input.GetInst()->GetBasicBlock()->GetLoop(); in InstInputDominatesPreheader() 321 if (!input.GetInst()->GetBasicBlock()->IsDominate(instLoop->GetPreHeader())) { in InstInputDominatesPreheader() 336 auto instLoop = inst->GetBasicBlock()->GetLoop(); in InstDominatesLoopExits() 338 if (IsBlockLoopExit(block) && !inst->GetBasicBlock()->IsDominate(block)) { in InstDominatesLoopExits() 359 …!BoundsAnalysis::IsInstNotNull(inst->GetDataFlowInput(0), inst->GetBasicBlock()->GetLoop()->GetHea… in IsInstHoistable()
|
| D | deoptimize_elimination.cpp | 44 auto block = inst->GetBasicBlock(); in ReplaceDeoptimizeIfByUnconditionalDeoptimize() 112 …inst->GetBasicBlock()->GetGraph()->GetEventWriter().EventDeoptimizeElimination(GetOpcodeString(ins… in VisitDefault() 131 …ss->GetBasicBlock()->GetGraph()->GetEventWriter().EventDeoptimizeElimination(GetOpcodeString(ss->G… in VisitSaveState() 147 auto block = inst->GetBasicBlock(); in VisitDeoptimizeIf() 164 !(graph->IsOsrMode() && block->GetLoop() != userInst->GetBasicBlock()->GetLoop()) && in VisitDeoptimizeIf() 176 auto block = inst->GetBasicBlock(); in TryToRemoveRedundantSaveState() 190 auto guardBlock = guard->GetBasicBlock(); in CanRemoveGuard() 270 auto block = guard->GetBasicBlock(); in RemoveGuard() 283 auto block = inst->GetBasicBlock(); in RemoveDeoptimizeIf() 295 savestate->GetBasicBlock()->ReplaceInst(savestate, graph->CreateInstNOP()); in RemoveDeoptimizeIf()
|
| D | code_sink.cpp | 174 BasicBlock *block = inst->GetBasicBlock(); in SinkInstruction() 190 ASSERT(inst->GetBasicBlock() != candidate); in IsAcceptableTarget() 191 ASSERT(inst->GetBasicBlock()->IsDominate(candidate)); in IsAcceptableTarget() 203 BasicBlock *block = inst->GetBasicBlock(); in IsAcceptableTarget() 220 auto ublock = uinst->GetBasicBlock(); in IsAcceptableTarget()
|
| D | checks_elimination.cpp | 257 auto block = hclassCheck.value()->GetBasicBlock(); in TryRemoveDominatedHclassCheck() 347 auto block = inst->GetBasicBlock(); in VisitBoundsCheck() 396 auto block = inst->GetBasicBlock(); in VisitCheckCast() 410 auto block = inst->GetBasicBlock(); in VisitIsInstance() 457 auto block = instDel->GetBasicBlock(); in ReplaceUsersAndRemoveCheck() 459 if (graph->IsOsrMode() && block->GetLoop() != instRep->GetBasicBlock()->GetLoop()) { in ReplaceUsersAndRemoveCheck() 492 auto indexBlock = parentIndex->GetBasicBlock(); in GetLoopForBoundsCheck() 501 if (loopInfo->index == parentIndex && input->GetBasicBlock()->IsDominate(indexBlock)) { in GetLoopForBoundsCheck() 648 auto block = inst->GetBasicBlock(); in TryRemoveCheckByBounds() 706 auto block = inst->GetBasicBlock(); in TryOptimizeOverflowCheck() [all …]
|
| D | lowering.cpp | 46 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitCastValueToAnyType() 98 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitCast() 115 …inputInst->GetBasicBlock()->GetGraph()->GetEventWriter().EventLowering(GetOpcodeString(inst->GetOp… in VisitCast() 263 if (inst->GetBasicBlock()->GetGraph()->IsBytecodeOptimizer()) { in TryReplaceModPowerOfTwo() 304 auto graph = inst->GetBasicBlock()->GetGraph(); in ReplaceSignedModPowerOfTwo() 342 auto graph = inst->GetBasicBlock()->GetGraph(); in ReplaceUnsignedModPowerOfTwo() 376 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitLoadFromConstantPool() 384 inst->GetBasicBlock()->ReplaceInst(inst, newInst); in VisitLoadFromConstantPool() 429 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitCompare() 464 auto graph = inst->GetBasicBlock()->GetGraph(); in LowerShift() [all …]
|
| D | adjust_arefs.cpp | 70 if (!IsRefAdjustable(i) || i->GetBasicBlock()->GetLoop()->IsRoot()) { in RunImpl() 101 ASSERT(head->GetBasicBlock() != nullptr); in ProcessArrayUses() 102 loop_ = head->GetBasicBlock()->GetLoop(); in ProcessArrayUses() 106 ASSERT(!head->GetBasicBlock()->IsMarked(blockProcessed_)); in ProcessArrayUses() 107 WalkChainDown(head->GetBasicBlock(), head, head); in ProcessArrayUses() 124 i->GetBasicBlock()->SetMarker(blockEntered_); in GetHeads() 225 org->GetBasicBlock()->ReplaceInst(org, ldst); in InsertMem()
|
| D | move_constants.cpp | 72 targetBb = userInst->GetBasicBlock(); in MoveFromStartBlock() 108 if (firstInst->GetBasicBlock() != userInst->GetBasicBlock()) { in SingleBlockNoPhiDominatingUser() 145 auto firstDominator = const_cast<BasicBlock *>(inst->GetBasicBlock()); in GetDominators()
|
| D | escape.cpp | 324 if (phiInput->GetBasicBlock() != block && DataType::IsReference(phiInput->GetType())) { in ProcessBlock() 680 auto blockState = GetState(ss->GetBasicBlock()); in MaterializeDeoptSaveState() 765 auto blockState = GetState(before->GetBasicBlock()); in Materialize() 781 if (targetInst->GetBasicBlock() == before->GetBasicBlock()) { in Materialize() 787 if (ss->GetBasicBlock() == before->GetBasicBlock()) { in Materialize() 827 GetState(inst->GetBasicBlock())->SetStateId(inst, EscapeAnalysis::MATERIALIZED_ID); in Materialize() 865 auto blockState = GetState(ss->GetBasicBlock()); in RegisterVirtualObjectFieldsForMaterialization() 904 auto blockState = GetState(inst->GetBasicBlock()); in VisitCmpRef() 951 GetState(inst->GetBasicBlock())->Materialize(inst); in VisitNewObject() 956 GetState(inst->GetBasicBlock())->SetState(inst, vstate); in VisitNewObject() [all …]
|
| D | lse.cpp | 116 if (hvalue->origin->GetBasicBlock() == inst->GetBasicBlock()) { in VisitStore() 128 auto &blockHeap = heaps_.at(GetEquivClass(inst)).first.at(inst->GetBasicBlock()); in VisitStore() 178 … heaps_.at(GetEquivClass(inst)).first.at(inst->GetBasicBlock())[inst] = {inst, inst, true, false}; in VisitLoad() 201 auto &blockHeap = heaps_.at(eqClass).first.at(inv->GetBasicBlock()); in VisitIntrinsic() 316 auto val = heap.at((*it)->GetBasicBlock())[(*it)].val; in ProcessBackedges() 432 auto marker = inst->GetBasicBlock()->GetGraph()->NewMarker(); in FinalizeShadowedStores() 435 shadow->GetBasicBlock()->SetMarker(marker); in FinalizeShadowedStores() 437 … if (!ExistsPathWithoutShadowingStores(inst->GetBasicBlock(), inst->GetBasicBlock(), marker)) { in FinalizeShadowedStores() 447 inst->GetBasicBlock()->GetGraph()->EraseMarker(marker); in FinalizeShadowedStores() 455 auto &blockHeap = heaps_.at(GetEquivClass(inst)).first.at(inst->GetBasicBlock()); in GetHeapValue() [all …]
|
| D | peepholes.cpp | 628 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitShr() 660 if (inst->GetBasicBlock()->GetGraph()->IsBytecodeOptimizer()) { in VisitAShr() 937 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitCompare() 939 auto bb = inst->GetBasicBlock(); in VisitCompare() 998 auto graph = inst->GetBasicBlock()->GetGraph(); in TrySimplifyCompareAnyTypeCase2() 1037 auto graph = inst->GetBasicBlock()->GetGraph(); in TrySimplifyCompareAnyType() 1125 auto graph = inst->GetBasicBlock()->GetGraph(); in TryReplaceCompareAnyType() 1134 auto cnst = inst->GetBasicBlock()->GetGraph()->FindOrCreateConstant(constValue); in TryReplaceCompareAnyType() 1235 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitCastCase2() 1270 auto graph = inst->GetBasicBlock()->GetGraph(); in VisitCastCase3() [all …]
|
| D | object_type_check_elimination.cpp | 56 auto block = inst->GetBasicBlock(); in ReplaceCheckMustThrowByUnconditionalDeoptimize() 76 auto block = inst->GetBasicBlock(); in TryEliminateIsInstance() 127 auto block = inst->GetBasicBlock(); in TryEliminateCheckCast() 202 … if (trueBlock->GetPredsBlocks().size() == 1 && trueBlock->IsDominate(refUser->GetBasicBlock())) { in IsSuccessfulIsInstance()
|
| /arkcompiler/runtime_core/static_core/bytecode_optimizer/ |
| D | bytecodeopt_peepholes.cpp | 29 auto *graph = newObject->GetBasicBlock()->GetGraph(); in FindCtorCall() 87 auto graph = newObject->GetBasicBlock()->GetGraph(); in ReplaceNewObjectUsers() 100 if (inst->GetBasicBlock() != callInit->GetBasicBlock()) { in VisitNewObject() 112 if (inst->GetBasicBlock()->IsTry() && callInit->GetPc() - inst->GetPc() > newobjSize) { in VisitNewObject() 148 nullCheck->GetBasicBlock()->ReplaceInst(nullCheck, in VisitNewObject()
|
| /arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/ |
| D | ets_intrinsics_peephole.cpp | 31 auto bb = intrinsic->GetBasicBlock(); in PeepholeStringEquals() 54 if (inst->GetBasicBlock()->GetGraph()->GetRuntime()->IsCompressedStringsEnabled()) { in GetStringFromLength() 101 auto graph = intrinsic->GetBasicBlock()->GetGraph(); in TryInsertFieldInst() 145 auto graph = intrinsic->GetBasicBlock()->GetGraph(); in TryInsertCallInst() 174 auto graph = intrinsic->GetBasicBlock()->GetGraph(); in PeepholeLdObjByName() 198 auto graph = intrinsic->GetBasicBlock()->GetGraph(); in PeepholeStObjByName()
|
| /arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
| D | move_constants.cpp | 59 target_bb = user_inst->GetBasicBlock(); in MoveFromStartBlock() 95 if (first_inst->GetBasicBlock() != user_inst->GetBasicBlock()) { in SingleBlockNoPhiDominatingUser() 132 auto first_dominator = const_cast<BasicBlock *>(inst->GetBasicBlock()); in GetDominators()
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/ir_builder/ |
| D | phi_resolver.h | 201 if (phiInst->GetInputsCount() != phiInst->GetBasicBlock()->GetPredsBlocks().size()) { in CheckPhiInputs() 205 auto pred = phiInst->GetBasicBlock()->GetPredBlockByIndex(index); in CheckPhiInputs() 206 auto inputBb = phiInst->GetInput(index).GetInst()->GetBasicBlock(); in CheckPhiInputs() 246 MarkInstsOnPaths(userInst->GetBasicBlock(), inst, userInst); in TryRemoveFromSaveStates() 250 if (!userInst->IsSaveState() || userInst->GetBasicBlock()->IsMarked(marker_) || in TryRemoveFromSaveStates() 307 inst->GetBasicBlock()->RemoveInst(inst); in RemovePhiInst() 310 phi->GetBasicBlock()->RemoveInst(phi); in RemovePhiInst()
|
| /arkcompiler/runtime_core/compiler/optimizer/ir_builder/ |
| D | phi_resolver.h | 74 inst->GetBasicBlock()->RemoveInst(inst); in Run() 77 phi->GetBasicBlock()->RemoveInst(phi); in Run() 159 if (phi_inst->GetInputsCount() != phi_inst->GetBasicBlock()->GetPredsBlocks().size()) { in CheckPhiInputs() 163 auto pred = phi_inst->GetBasicBlock()->GetPredBlockByIndex(index); in CheckPhiInputs() 164 auto input_bb = phi_inst->GetInput(index).GetInst()->GetBasicBlock(); in CheckPhiInputs()
|