/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
H A D | peepholes.cpp | 53 auto input = inst->GetInput(0).GetInst(); in VisitNeg() 69 if (SkipThisPeepholeInOSR(inst, input->GetInput(0).GetInst())) { in VisitNeg() 72 inst->ReplaceUsers(input->GetInput(0).GetInst()); in VisitNeg() 84 if (SkipThisPeepholeInOSR(inst, input->GetInput(0).GetInst()) || in VisitNeg() 85 SkipThisPeepholeInOSR(inst, input->GetInput(1).GetInst())) { in VisitNeg() 88 CreateAndInsertInst(Opcode::Sub, inst, input->GetInput(1).GetInst(), input->GetInput(0).GetInst()); in VisitNeg() 97 if (SkipThisPeepholeInOSR(inst, inst->GetInput(0).GetInst())) { in VisitAbs() 100 inst->ReplaceUsers(inst->GetInput(0).GetInst()); in VisitAbs() 247 auto input0 = inst->GetInput( in VisitAdd() [all...] |
H A D | memory_barriers.cpp | 147 static_cast<OptimizeMemoryBarriers *>(v)->CheckTwoInputs(inst->GetInput(0).GetInst(), inst->GetInput(1).GetInst()); in VisitSelect() 152 static_cast<OptimizeMemoryBarriers *>(v)->CheckTwoInputs(inst->GetInput(0).GetInst(), inst->GetInput(1).GetInst()); in VisitSelectImm() 157 static_cast<OptimizeMemoryBarriers *>(v)->CheckInput(inst->GetInput(inst->GetInputsCount() - 1).GetInst()); in VisitStoreObject() 162 static_cast<OptimizeMemoryBarriers *>(v)->CheckTwoInputs(inst->GetInput(0).GetInst(), inst->GetInput(1).GetInst()); in VisitStoreObjectPair() 167 static_cast<OptimizeMemoryBarriers *>(v)->CheckInput(inst->GetInput(inst->GetInputsCount() - 1).GetInst()); in VisitStoreObjectDynamic() 172 static_cast<OptimizeMemoryBarriers *>(v)->CheckInput(inst->GetInput(inst->GetInputsCount() - 1).GetInst()); in VisitStoreArray() 177 static_cast<OptimizeMemoryBarriers *>(v)->CheckInput(inst->GetInput(ins in VisitStoreArrayI() [all...] |
H A D | lowering.cpp | 75 auto input = inst->GetInput(0).GetInst(); in VisitCastValueToAnyType() 110 auto inputInst = inst->GetInput(0).GetInst(); in VisitCast() 249 if (inst->GetInput(1).GetInst()->GetOpcode() != Opcode::Constant) { in VisitMul() 284 auto input0 = inst->GetInput(0).GetInst(); in ReplaceSignedDivPowerOfTwo() 324 auto input0 = inst->GetInput(0).GetInst(); in ReplaceUnsignedDivPowerOfTwo() 343 auto c = inst->GetInput(1).GetInst(); in SatisfyReplaceDivMovConditions() 353 uint64_t uValue = inst->GetInput(1).GetInst()->CastToConstant()->GetInt64Value(); in TryReplaceDivPowerOfTwo() 356 auto input0 = inst->GetInput(0).GetInst(); in TryReplaceDivPowerOfTwo() 377 uint64_t uValue = inst->GetInput(1).GetInst()->CastToConstant()->GetInt64Value(); in TryReplaceDivModNonPowerOfTwo() 379 auto input0 = inst->GetInput( in TryReplaceDivModNonPowerOfTwo() [all...] |
H A D | branch_elimination.cpp | 106 auto conditionInst = ifBlock->GetLastInst()->GetInput(0).GetInst(); in BranchEliminationConst() 130 auto conditionInst = ifBlock->GetLastInst()->GetInput(0).GetInst(); in BranchEliminationCompare() 144 ConditionOps ops {conditionInst->GetInput(0).GetInst(), conditionInst->GetInput(1).GetInst()}; in BranchEliminationCompare() 153 auto compareAny = ifBlock->GetLastInst()->GetInput(0).GetInst()->CastToCompareAnyType(); in BranchEliminationCompareAnyType() 169 Inst *input = compareAny->GetInput(0).GetInst(); in BranchEliminationCompareAnyType() 185 auto conditionInst = ifBlock->GetLastInst()->GetInput(0).GetInst(); in VisitBlock() 324 ConditionOps ops {condition->GetInput(0).GetInst(), condition->GetInput(1).GetInst()}; in GetConditionResult() 351 auto compareAny = ifImm->GetInput( in GetCompareAnyTypeResult() [all...] |
H A D | checks_elimination.cpp | 71 auto ref = inst->GetInput(0).GetInst(); in VisitNullCheck() 111 auto storeInst = inst->GetDataFlowInput(inst->GetInput(1).GetInst()); in VisitRefTypeCheck() 118 auto ref = inst->GetInput(1).GetInst(); in VisitRefTypeCheck() 123 return userInst->GetDataFlowInput(0) == arrayInst && userInst->GetInput(1) == ref; in VisitRefTypeCheck() 249 auto object = inst->GetInput(0).GetInst()->GetInput(0).GetInst()->GetInput(0).GetInst(); in TryRemoveDominatedHclassCheck() 273 auto inputInst = inst->GetInput(0).GetInst(); in VisitAnyTypeCheck() 350 auto lenArray = inst->GetInput(0).GetInst(); in VisitBoundsCheck() 351 auto index = inst->GetInput( in VisitBoundsCheck() [all...] |
H A D | const_folding.cpp | 253 auto input = inst->GetInput(0).GetInst(); in ConstFoldingCast() 267 auto input = inst->GetInput(0); in ConstFoldingNeg() 294 auto input = inst->GetInput(0); in ConstFoldingAbs() 329 auto input = inst->GetInput(0); in ConstFoldingNot() 343 auto input0 = inst->GetInput(0); in ConstFoldingAdd() 344 auto input1 = inst->GetInput(1); in ConstFoldingAdd() 373 auto input0 = inst->GetInput(0); in ConstFoldingSub() 374 auto input1 = inst->GetInput(1); in ConstFoldingSub() 409 auto input0 = inst->GetInput(0).GetInst(); in ConstFoldingMul() 410 auto input1 = inst->GetInput( in ConstFoldingMul() [all...] |
H A D | adjust_arefs.cpp | 57 auto def = inst->GetInput(0).GetInst(); in RunImpl() 171 Inst *def = head->GetInput(0).GetInst(); in ProcessChain() 178 InsertMem(inst, arrData, inst->GetInput(1).GetInst(), scale); in ProcessChain() 209 ldst->SetInput(VALUE_IDX, org->GetInput(VALUE_IDX).GetInst()); in InsertMem() 233 Inst *index = mem->GetInput(1).GetInst(); in ProcessIndex() 247 Inst *base = mem->GetInput(0).GetInst(); in ProcessIndex() 268 InsertMem(mem, newBase, index->GetInput(0).GetInst(), scale); in ProcessIndex()
|
H A D | memory_coalescing.cpp | 488 Inst *obj = inst->GetDataFlowInput(inst->GetInput(0).GetInst()); in HandleArrayAccessI() 502 Inst *candObj = cand->GetDataFlowInput(cand->GetInput(0).GetInst()); in HandleArrayAccessI() 545 Inst *obj = inst->GetDataFlowInput(inst->GetInput(0).GetInst()); in HandleArrayAccess() 546 Inst *idx = inst->GetDataFlowInput(inst->GetInput(1).GetInst()); in HandleArrayAccess() 559 Inst *candObj = cand->GetDataFlowInput(cand->GetInput(0).GetInst()); in HandleArrayAccess() 560 auto candIdx = cand->GetDataFlowInput(cand->GetInput(1).GetInst()); in HandleArrayAccess() 591 Inst *obj = inst->GetDataFlowInput(inst->GetInput(0).GetInst()); in CheckForObjectCandidates() 598 Inst *candObj = cand->GetDataFlowInput(cand->GetInput(0).GetInst()); in CheckForObjectCandidates() 698 auto pload = graph_->CreateInstLoadArrayPair(first->GetType(), INVALID_PC, first->GetInput(0).GetInst(), in ReplaceLoadArray() 699 first->GetInput( in ReplaceLoadArray() [all...] |
H A D | if_merging.cpp | 80 auto input = ifImm->GetInput(0).GetInst(); in TryRemoveConstantPhiIf() 85 auto lhs = compare->GetInput(0).GetInst(); in TryRemoveConstantPhiIf() 86 auto rhs = compare->GetInput(1).GetInst(); in TryRemoveConstantPhiIf() 124 if (domIf == nullptr || domIf->GetInput(0).GetInst() != ifImm->GetInput(0).GetInst()) { in TryMergeEquivalentIfs() 279 auto inst = phi->GetInput(i - 1).GetInst(); in SplitBlockWithConstantPhi() 301 trueBranchPhi->ReplaceUsers(trueBranchPhi->GetInput(0).GetInst()); in SplitBlockWithConstantPhi() 307 phi->ReplaceUsers(phi->GetInput(0).GetInst()); in SplitBlockWithConstantPhi()
|
H A D | cse.h | 137 Exp exp = {inst->GetOpcode(), inst->GetType(), inst->GetDataFlowInput(inst->GetInput(0).GetInst()), in GetExp() 138 inst->GetDataFlowInput(inst->GetInput(1).GetInst())}; in GetExp() 145 Exp exp = {inst->GetOpcode(), inst->GetType(), inst->GetDataFlowInput(inst->GetInput(1).GetInst()), in GetExpCommutative() 146 inst->GetDataFlowInput(inst->GetInput(0).GetInst())}; in GetExpCommutative()
|
H A D | phi_type_resolving.cpp | 121 phi->SetInput(idx, inputInst->GetInput(0).GetInst()); in PropagateTypeToPhi() 122 } else if (phi->GetInput(idx).GetInst() != inputInst) { in PropagateTypeToPhi() 127 ASSERT(phi->GetInput(idx).GetInst()->GetOpcode() == Opcode::AnyTypeCheck); in PropagateTypeToPhi()
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/ |
H A D | countable_loop_parser.cpp | 74 auto loopExitCmp = loopInfo_.ifImm->GetInput(0).GetInst(); in ParseLoopExit() 78 if (isHeadLoopExit_ && !loopExitCmp->GetInput(0).GetInst()->IsPhi() && in ParseLoopExit() 79 !loopExitCmp->GetInput(1).GetInst()->IsPhi()) { in ParseLoopExit() 91 if (loopInfo_.index->GetInput(backEdgeIdx).GetInst() != loopInfo_.update) { in TryProcessBackEdge() 95 loopInfo_.init = loopInfo_.index->GetInput(1 - backEdgeIdx).GetInst(); in TryProcessBackEdge() 110 auto preHeaderCmp = preHeaderIfImm->GetInput(0).GetInst(); in HasPreHeaderCompare() 114 auto backEdgeCmp = loopInfo.ifImm->GetInput(0).GetInst(); in HasPreHeaderCompare() 135 if (backEdgeCmp->GetInput(0) == loopInfo.test) { in HasPreHeaderCompare() 138 ASSERT(backEdgeCmp->GetInput(1) == loopInfo.test); in HasPreHeaderCompare() 141 return preHeaderCmp->GetInput(testInputId in HasPreHeaderCompare() [all...] |
H A D | bounds_analysis.cpp | 31 if (inst->GetOpcode() != Opcode::Shr || inst->GetInput(0).GetInst()->GetOpcode() != Opcode::LenArray) { in IsStringLength() 34 auto c = inst->GetInput(1).GetInst(); in IsStringLength() 873 auto input = inst->GetInput(0).GetInst(); in VisitIfImm() 882 auto op0 = compare->GetInput(0).GetInst(); in VisitIfImm() 883 auto op1 = compare->GetInput(1).GetInst(); in VisitIfImm() 936 auto input0 = inst->GetInput(0).GetInst(); in MergePhiPredecessors() 938 auto input1 = inst->GetInput(1).GetInst(); in MergePhiPredecessors() 1293 ASSERT(isInstance == ifImm->GetInput(0).GetInst()); in CalcNewBoundsRangeForIsInstanceInput() 1298 auto ref = isInstance->GetInput(0).GetInst(); in CalcNewBoundsRangeForIsInstanceInput() 1344 auto input0 = inst->GetInput( in CalcNewBoundsRangeUnary() [all...] |
/arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
H A D | lowering.cpp | 40 auto in0 = cmp->GetInput(0).GetInst(); in BetterToSwapCompareInputs() 41 auto in1 = cmp->GetInput(1).GetInst(); in BetterToSwapCompareInputs() 62 compiler::Inst *input_0 = if_inst->GetInput(0).GetInst(); in OptimizeIfInput() 63 compiler::Inst *input_1 = if_inst->GetInput(1).GetInst(); in OptimizeIfInput() 84 auto input = inst->GetInput(0).GetInst(); in LowerIf() 97 auto in0 = input->GetInput(0).GetInst(); in LowerIf() 98 auto in1 = input->GetInput(1).GetInst(); in LowerIf() 106 auto cst = input->GetInput(1).GetInst(); in LowerIf() 123 replace->SetInput(0, input->GetInput(0).GetInst()); in LowerIf() 124 replace->SetInput(1, input->GetInput( in LowerIf() [all...] |
/arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/ |
H A D | ets_intrinsics_peephole.cpp | 25 auto input0 = intrinsic->GetInput(0).GetInst(); in ReplaceWithCompareEQ() 26 auto input1 = intrinsic->GetInput(1).GetInst(); in ReplaceWithCompareEQ() 49 auto loadString = intrinsic->GetInput(1).GetInst(); in ReplaceTypeofWithIsInstance() 80 auto saveState = typeOf->GetInput(1U).GetInst(); in ReplaceTypeofWithIsInstance() 86 auto isInstance = graph->CreateInstIsInstance(DataType::BOOL, pc, typeOf->GetInput(0).GetInst(), loadClass, in ReplaceTypeofWithIsInstance() 100 auto input0 = intrinsic->GetInput(0).GetInst(); in PeepholeStringEquals() 101 auto input1 = intrinsic->GetInput(1).GetInst(); in PeepholeStringEquals() 117 auto input1 = inst->GetInput(1).GetInst(); in GetStringFromLength() 121 lenArray = inst->GetInput(0).GetInst(); in GetStringFromLength() 139 auto begin = intrinsic->GetInput( in PeepholeStringSubstring() [all...] |
/arkcompiler/runtime_core/static_core/compiler/tests/ |
H A D | const_folding_test.cpp | 66 ASSERT_EQ(INS(3U).GetInput(0U).GetInst(), inst); in CmpTest() 96 ASSERT_EQ(INS(2U).GetInput(0U).GetInst(), inst); in CastTest() 116 ASSERT_EQ(INS(2U).GetInput(0U).GetInst(), inst); in CheckCompareEqualInputs() 138 ASSERT_EQ(INS(3U).GetInput(0U).GetInst(), inst); in CheckCompareLoadImmediate() 187 ASSERT_EQ(INS(7U).GetInput(0U).GetInst(), result ? &INS(8U) : &INS(9U)); in CheckCompareWithNan() 226 ASSERT_EQ(INS(7U).GetInput(0U).GetInst(), isOptimized ? &INS(input) : &INS(6U)); in CheckNegNan() 266 ASSERT_EQ(INS(7U).GetInput(0U).GetInst()->IsConst(), true); in CheckBinaryMathWithNan() 267 ASSERT_EQ(INS(7U).GetInput(0U).GetInst()->CastToConstant()->IsNaNConst(), true); in CheckBinaryMathWithNan() 269 ASSERT_EQ(INS(7U).GetInput(0U).GetInst(), &INS(6U)); in CheckBinaryMathWithNan() 364 ASSERT_EQ(INS(2U).GetInput( in TEST_F() [all...] |
/arkcompiler/runtime_core/static_core/bytecode_optimizer/ |
H A D | canonicalization.cpp | 39 auto input0 = inst->GetInput(0U).GetInst(); in IsDominateReverseInputs() 40 auto input1 = inst->GetInput(1U).GetInst(); in IsDominateReverseInputs() 75 auto input0 = inst->GetInput(0U).GetInst(); in SwapInputsIfNecessary() 76 auto input1 = inst->GetInput(1U).GetInst(); in SwapInputsIfNecessary() 87 return SwapInputsIfNecessary(inst, inst->GetInput(0U).GetInst()->IsConst()); in TrySwapConstantInput() 109 auto input1 = inst->GetInput(1U).GetInst(); in AllowSwap()
|
H A D | reg_acc_alloc.cpp | 67 compiler::Inst *input = inst->GetInput(AccReadIndex(inst)).GetInst(); in IsAccReadFromReg() 132 return user->GetInput(AccReadIndex(user)).GetInst() != inst; in UserNeedSwapInputs() 197 return CanIntrinsicReadAcc(user->CastToIntrinsic()) && user->GetInput(AccReadIndex(user)).GetInst() == inst; in CanUserReadAcc() 208 return user->GetInput(AccReadIndex(user)).GetInst() == inst || IsCommutative(user); in CanUserReadAcc() 395 compiler::Inst *input = inst->GetInput(AccReadIndex(inst)).GetInst(); in MarkInstructions()
|
H A D | bytecodeopt_peepholes.cpp | 40 auto callFirstArg = call->GetInput(0U).GetInst(); in FindCtorCall() 65 auto inputInst = callInit->GetInput(i).GetInst(); in CreateInitObject() 137 auto load = static_cast<compiler::ClassInst *>(inst->GetInput(0U).GetInst()); in VisitNewObject()
|
/arkcompiler/runtime_core/static_core/irtoc/backend/compiler/ |
H A D | dangling_pointers_checker.cpp | 109 auto instInput = inst->GetInput(0).GetInst(); in IsFrameDef() 165 auto instInput = inst->GetInput(0).GetInst(); in GetAccAndFrameDefs() 173 return std::make_pair(inst, instInput->GetInput(0).GetInst()); in GetAccAndFrameDefs() 196 auto instInput = inst->GetInput(0).GetInst(); in IsAccTagDef() 222 auto accPtrInst = inst->GetInput(0).GetInst(); in IsAccTagPtr() 237 auto frameInst = inst->GetInput(0).GetInst(); in IsAccPtr() 324 auto inputInst = phiInst->GetInput(inputIdx).GetInst(); in GetPhiAccDef() 330 (inputInst->GetOpcode() == Opcode::Bitcast && inputInst->GetInput(0).GetInst()->IsConst())) { in GetPhiAccDef() 356 auto inputInst = inst->GetInput(inputIdx).GetInst(); in GetAccDefFromInputs() 363 (inputInst->GetOpcode() == Opcode::Bitcast && inputInst->GetInput( in GetAccDefFromInputs() [all...] |
/arkcompiler/runtime_core/static_core/tools/sampler/ |
H A D | args_parser.h | 40 if (options_.GetInput().empty()) { in Parse() 50 if (!ark::os::IsFileExists(options_.GetInput())) { in Parse() 51 std::cerr << "[Error] File \"" << options_.GetInput() << "\" not found." << std::endl; in Parse()
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
H A D | analysis.cpp | 164 return inst->GetInput(1).GetInst(); in IntrinsicStoredValue() 186 val = inst->GetInput(inst->GetInputsCount() - 1).GetInst(); in InstStoredValue() 190 val = inst->GetInput(1).GetInst(); in InstStoredValue() 193 val = inst->GetInput(0).GetInst(); in InstStoredValue() 197 val = inst->GetInput(inst->GetInputsCount() - 2U).GetInst(); in InstStoredValue() 198 auto secondInst = inst->GetInput(inst->GetInputsCount() - 1U).GetInst(); in InstStoredValue() 203 val = inst->GetInput(1).GetInst(); in InstStoredValue() 204 auto secondInst = inst->GetInput(2).GetInst(); in InstStoredValue() 235 copy->AppendInput(inst->GetInput(inputIdx)); in CopySaveState() 310 auto inputInst = inst->GetInput(inputInde in IsInputTypeMismatch() [all...] |
H A D | graph_cloner.cpp | 212 auto compare = ifimm->GetInput(0).GetInst(); in GetCompareInst() 217 newCmp->SetInput(0, compare->GetInput(0).GetInst()); in GetCompareInst() 218 newCmp->SetInput(1, compare->GetInput(1).GetInst()); in GetCompareInst() 311 auto input = compare->GetInput(i).GetInst(); in UpdateUsersAfterNoSideExitsUnroll() 464 auto inst = phi->GetInput(0).GetInst(); in BuildLoopUnrollDataFlow() 498 unrollData->phiReplacedInputs->emplace(phi, phi->GetInput(phiUpdateInputIdx).GetInst()); in BuildLoopUnrollDataFlow() 529 auto remainingInst = phi->GetInput(0).GetInst(); in RemoveLoopBackEdge() 941 auto initInput = checkPhi->GetInput(initIdx).GetInst(); in GetPhiResolver() 942 auto updateInput = checkPhi->GetInput(1 - initIdx).GetInst(); in GetPhiResolver() 946 if (phi->GetInput(id in GetPhiResolver() [all...] |
/arkcompiler/runtime_core/bytecode_optimizer/ |
H A D | codegen.cpp | 279 if (!cvat_inst->GetInput(0).GetInst()->IsConst()) { in IsEcmaConstTemplate() 282 auto const_inst = cvat_inst->GetInput(0).GetInst()->CastToConstant(); in IsEcmaConstTemplate() 308 auto test_lhs = IsEcmaConstTemplate(inst->GetInput(0).GetInst()); in IfEcma() 309 auto test_rhs = IsEcmaConstTemplate(inst->GetInput(1).GetInst()); in IfEcma() 408 auto test_arg = IsEcmaConstTemplate(inst->GetInput(0).GetInst()); in VisitReturn() 443 ASSERT(cvat->GetInput(0).GetInst()->IsConst()); in VisitCastValueToAnyType() 444 auto input = cvat->GetInput(0).GetInst()->CastToConstant(); in VisitCastValueToAnyType() 449 ASSERT(cvat->GetInput(0).GetInst()->IsConst()); in VisitCastValueToAnyType() 450 auto input = cvat->GetInput(0).GetInst()->CastToConstant(); in VisitCastValueToAnyType() 455 ASSERT(cvat->GetInput( in VisitCastValueToAnyType() [all...] |
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
H A D | graph_cloner.cpp | 217 auto compare = ifimm->GetInput(0).GetInst(); in SplitBackEdge() 222 new_cmp->SetInput(0, compare->GetInput(0).GetInst()); in SplitBackEdge() 223 new_cmp->SetInput(1, compare->GetInput(1).GetInst()); in SplitBackEdge() 309 auto input = compare->GetInput(i).GetInst(); in UpdateUsersAfterNoSideExitsUnroll() 457 auto inst = phi->GetInput(0).GetInst(); in BuildLoopUnrollDataFlow() 491 unroll_data->phi_replaced_inputs->emplace(phi, phi->GetInput(phi_update_input_idx).GetInst()); in BuildLoopUnrollDataFlow() 522 auto remaining_inst = phi->GetInput(0).GetInst(); in RemoveLoopBackEdge() 783 auto compare = ifimm->GetInput(0).GetInst(); in PrepareLoopToClone() 787 new_cmp->SetInput(0, compare->GetInput(0).GetInst()); in PrepareLoopToClone() 788 new_cmp->SetInput(1, compare->GetInput( in PrepareLoopToClone() [all...] |