/arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/ |
H A D | ets_intrinsics_peephole.cpp | 23 static void ReplaceWithCompareEQ(IntrinsicInst *intrinsic) in ReplaceWithCompareEQ() argument 25 auto input0 = intrinsic->GetInput(0).GetInst(); in ReplaceWithCompareEQ() 26 auto input1 = intrinsic->GetInput(1).GetInst(); in ReplaceWithCompareEQ() 28 auto bb = intrinsic->GetBasicBlock(); in ReplaceWithCompareEQ() 33 compare->SetType(intrinsic->GetType()); in ReplaceWithCompareEQ() 39 bb->InsertAfter(compare, intrinsic); in ReplaceWithCompareEQ() 40 intrinsic->ReplaceUsers(compare); in ReplaceWithCompareEQ() 43 static bool ReplaceTypeofWithIsInstance(IntrinsicInst *intrinsic) in ReplaceTypeofWithIsInstance() argument 45 if (intrinsic->GetBasicBlock()->GetGraph()->IsAotMode()) { in ReplaceTypeofWithIsInstance() 48 auto typeOf = intrinsic in ReplaceTypeofWithIsInstance() 93 PeepholeStringEquals([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeStringEquals() argument 130 PeepholeStringSubstring([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeStringSubstring() argument 157 TryInsertFieldInst(IntrinsicInst *intrinsic, RuntimeInterface::ClassPtr klassPtr, RuntimeInterface::FieldPtr rawField, size_t fieldId) TryInsertFieldInst() argument 202 TryInsertCallInst(IntrinsicInst *intrinsic, RuntimeInterface::ClassPtr klassPtr, RuntimeInterface::FieldPtr rawField) TryInsertCallInst() argument 228 PeepholeLdObjByName([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeLdObjByName() argument 250 PeepholeStObjByName([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeStObjByName() argument 272 ReplaceWithCompareNullish(IntrinsicInst *intrinsic, Inst *input) ReplaceWithCompareNullish() argument 292 PeepholeEquals([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeEquals() argument 323 PeepholeDoubleToString([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeDoubleToString() argument 372 TryFuseGetPropertyAndCast(IntrinsicInst *intrinsic, RuntimeInterface::IntrinsicId newId) TryFuseGetPropertyAndCast() argument 396 PeepholeJSRuntimeGetValueString([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeJSRuntimeGetValueString() argument 402 PeepholeJSRuntimeGetValueDouble([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeJSRuntimeGetValueDouble() argument 408 PeepholeJSRuntimeGetValueBoolean([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeJSRuntimeGetValueBoolean() argument 414 TryFuseCastAndSetProperty(IntrinsicInst *intrinsic, RuntimeInterface::IntrinsicId newId) TryFuseCastAndSetProperty() argument 439 PeepholeJSRuntimeNewJSValueString(GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeJSRuntimeNewJSValueString() argument 445 PeepholeJSRuntimeNewJSValueDouble(GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeJSRuntimeNewJSValueDouble() argument 451 PeepholeJSRuntimeNewJSValueBoolean(GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeJSRuntimeNewJSValueBoolean() argument 457 BuildLoadPropertyChain(IntrinsicInst *intrinsic, uint64_t qnameStart, uint64_t qnameLen) BuildLoadPropertyChain() argument 502 PeepholeResolveQualifiedJSCall([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) PeepholeResolveQualifiedJSCall() argument [all...] |
/arkcompiler/runtime_core/static_core/plugins/ets/compiler/ |
H A D | intrinsics_peephole_ets.inl.h | 18 static bool PeepholeStringEquals(GraphVisitor *v, IntrinsicInst *intrinsic); 19 static bool PeepholeStringSubstring(GraphVisitor *v, IntrinsicInst *intrinsic); 20 static bool PeepholeLdObjByName(GraphVisitor *v, IntrinsicInst *intrinsic); 21 static bool PeepholeStObjByName(GraphVisitor *v, IntrinsicInst *intrinsic); 22 static bool PeepholeEquals(GraphVisitor *v, IntrinsicInst *intrinsic); 23 static bool PeepholeDoubleToString(GraphVisitor *v, IntrinsicInst *intrinsic); 26 bool TryFuseGetPropertyAndCast(IntrinsicInst *intrinsic, RuntimeInterface::IntrinsicId newId); 27 static bool PeepholeJSRuntimeGetValueString(GraphVisitor *v, IntrinsicInst *intrinsic); 28 static bool PeepholeJSRuntimeGetValueDouble(GraphVisitor *v, IntrinsicInst *intrinsic); 29 static bool PeepholeJSRuntimeGetValueBoolean(GraphVisitor *v, IntrinsicInst *intrinsic); [all...] |
/arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/ir_builder/ |
H A D | ets_inst_builder.cpp | 98 auto intrinsic = GetGraph()->CreateInstIntrinsic(type, pc, id); in BuildLdObjByName() local 99 intrinsic->AllocateInputTypes(GetGraph()->GetAllocator(), 2_I); in BuildLdObjByName() 101 intrinsic->AppendInput(nullCheck); in BuildLdObjByName() 102 intrinsic->AddInputType(DataType::REFERENCE); in BuildLdObjByName() 104 intrinsic->AppendInput(saveState); in BuildLdObjByName() 105 intrinsic->AddInputType(DataType::NO_TYPE); in BuildLdObjByName() 107 intrinsic->AddImm(GetGraph()->GetAllocator(), fieldId); in BuildLdObjByName() 108 intrinsic->AddImm(GetGraph()->GetAllocator(), pc); in BuildLdObjByName() 110 intrinsic->SetMethodFirstInput(); in BuildLdObjByName() 111 intrinsic in BuildLdObjByName() 152 auto *intrinsic = GetGraph()->CreateInstIntrinsic(DataType::VOID, pc, id); CreateStObjByNameIntrinsic() local 179 auto *intrinsic = CreateStObjByNameIntrinsic(pc, type); BuildStObjByName() local 201 auto intrinsic = GetGraph()->CreateInstIntrinsic(DataType::BOOL, pc, BuildEquals() local [all...] |
/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
H A D | inline_intrinsics.cpp | 135 bool InlineIntrinsics::DoInline(IntrinsicInst *intrinsic) in DoInline() argument 138 switch (intrinsic->GetIntrinsicId()) { in DoInline() 162 bool InlineIntrinsics::TryInline(IntrinsicInst *intrinsic) in TryInline() argument 164 if (!IsIntrinsicInlinedByInputTypes(intrinsic->GetIntrinsicId())) { in TryInline() 165 return DoInline(intrinsic); in TryInline() 170 for (auto &input : intrinsic->GetInputs()) { in TryInline() 181 // Any deduced type will also cause deoptimization. So avoid intrinsic inline here. in TryInline() 189 ASSERT(types_.size() + 1 == intrinsic->GetInputsCount()); in TryInline() 201 if (DoInline(intrinsic)) { in TryInline()
|
H A D | inline_intrinsics.h | 32 * Next, optimization tries to replace the intrinsic with static instructions, taking into account the types of inputs. 33 * In case of success, the corresponding types are put in AnyTypeCheck, which are the inputs of the intrinsic 54 bool TryInline(IntrinsicInst *intrinsic); 55 bool DoInline(IntrinsicInst *intrinsic);
|
H A D | string_builder_utils.h | 58 auto intrinsic = inst->CastToIntrinsic(); in IsStringBuilderAppend() local 59 return runtime->IsIntrinsicStringBuilderAppend(intrinsic->GetIntrinsicId()); in IsStringBuilderAppend()
|
H A D | locations_builder.cpp | 243 auto intrinsic = inst->CastToIntrinsic(); in LOCATIONS_BUILDER() local 244 auto id = intrinsic->GetIntrinsicId(); in LOCATIONS_BUILDER() 245 if (intrinsic->IsNativeCall() || IntrinsicNeedsParamLocations(id)) { in LOCATIONS_BUILDER() 247 if (intrinsic->IsMethodFirstInput()) { in LOCATIONS_BUILDER() 250 if (intrinsic->HasImms() && graph->SupportManagedCode()) { in LOCATIONS_BUILDER() 251 for ([[maybe_unused]] auto imm : intrinsic->GetImms()) { in LOCATIONS_BUILDER()
|
H A D | reserve_string_builder_buffer.cpp | 182 auto intrinsic = graph->CreateInstIntrinsic(graph->GetRuntime()->GetStringIsCompressedIntrinsicId()); in CreateIntrinsicStringIsCompressed() local 183 ASSERT(intrinsic->RequireState()); in CreateIntrinsicStringIsCompressed() 185 intrinsic->SetType(DataType::BOOL); in CreateIntrinsicStringIsCompressed() 186 intrinsic->SetInputs(graph->GetAllocator(), {{arg, arg->GetType()}, {saveState, saveState->GetType()}}); in CreateIntrinsicStringIsCompressed() 188 return intrinsic; in CreateIntrinsicStringIsCompressed()
|
H A D | string_builder_utils.cpp | 88 auto intrinsic = inst->CastToIntrinsic(); in IsStringBuilderToString() local 89 return runtime->IsIntrinsicStringBuilderToString(intrinsic->GetIntrinsicId()); in IsStringBuilderToString()
|
H A D | simplify_string_builder.cpp | 296 auto intrinsic = inst->CastToIntrinsic(); 297 match.appendIntrinsics[match.appendCount++] = intrinsic; 370 << ") append-intrinsics with concat intrinsic (id=" << concatIntrinsic->GetId() 604 auto intrinsic = graph->CreateInstIntrinsic(intrinsicId); 606 intrinsic->SetType(type); 607 intrinsic->SetInputs(graph->GetAllocator(), args); 609 return intrinsic; 1787 << " intrinsic id=" << appendNIntrinsic->GetId(); 1879 COMPILER_LOG(DEBUG, SIMPLIFY_SB) << "One consecutive append string intrinsic found id=" << calls[from]->GetId()
|
/arkcompiler/runtime_core/compiler/optimizer/templates/intrinsics/ |
H A D | compiler_intrinsics.rb | 71 @data.intrinsics.select { |i| !@exclude_list.include?(i.name) }.map do |intrinsic| 72 Intrinsic.new(intrinsic) 78 @ext_intrinsic_spaces = Compiler::intrinsics.collect {|intrinsic| intrinsic.space}.select {|space| space != 'core'}.uniq
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/templates/intrinsics/ |
H A D | compiler_intrinsics.rb | 84 @data.intrinsics.select { |i| !@exclude_list.include?(i.name) }.map do |intrinsic| 85 Intrinsic.new(intrinsic) 91 @ext_intrinsic_spaces = Compiler::intrinsics.collect {|intrinsic| intrinsic.space}.select {|space| space != 'core'}.uniq
|
/arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/ir_builder/js_interop/ |
H A D | js_interop_inst_builder.cpp | 62 auto intrinsic = GetGraph()->CreateInstIntrinsic(retType, pc, id); in BuildInteropIntrinsic() local 63 intrinsic->AllocateInputTypes(GetGraph()->GetAllocator(), N + 1); in BuildInteropIntrinsic() 65 intrinsic->AppendInput(inputs[i], types[i]); in BuildInteropIntrinsic() 67 intrinsic->AppendInput(inputs[N], DataType::NO_TYPE); // SaveState input in BuildInteropIntrinsic() 68 AddInstruction(intrinsic); in BuildInteropIntrinsic() 69 return intrinsic; in BuildInteropIntrinsic()
|
/arkcompiler/runtime_core/static_core/libllvmbackend/templates/ |
H A D | intrinsics.rb | 69 @data.intrinsics.select { |i| !@exclude_list.include?(i.name) }.map do |intrinsic| 70 Intrinsic.new(intrinsic)
|
/arkcompiler/runtime_core/static_core/runtime/templates/ |
H A D | intrinsics.rb | 125 @data.intrinsics.map do |intrinsic| 126 Intrinsic.new(intrinsic)
|
H A D | runtime.rb | 112 @data.intrinsics.map do |intrinsic| 113 Intrinsic.new(intrinsic)
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_ir/include/ |
H A D | mir_nodes.h | 85 // Made public so that other modules (such as maplebe) can print intrinsic names 790 : NaryNode(allocator, o), intrinsic(INTRN_UNDEFINED), tyIdx(typeIdx) 800 : NaryNode(allocator, o, typ), intrinsic(INTRN_UNDEFINED), tyIdx(typeIdx) 810 : NaryNode(allocator, node), intrinsic(node.GetIntrinsic()), tyIdx(node.GetTyIdx()) 839 return intrinsic; in GetIntrinsic() 844 intrinsic = intrinsicID; in SetIntrinsic() 860 return IntrinDesc::intrinTable[intrinsic]; in GetIntrinDesc() 864 MIRIntrinsicID intrinsic; member 2369 intrinsic(INTRN_UNDEFINED), 2378 intrinsic(i [all...] |
H A D | cmpl.h | 333 MIRIntrinsicID intrinsic; member
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/x86_64/ |
H A D | x64_MPIsel.cpp | 335 MIRIntrinsicID intrinsic = intrnNode.GetIntrinsic(); in SelectOverFlowCall() local 342 intrnNode.Opnd(0)->GetPrimType()); /* first argument of intrinsic */ in SelectOverFlowCall() 344 intrnNode.Opnd(1)->GetPrimType()); /* first argument of intrinsic */ in SelectOverFlowCall() 347 if (intrinsic == INTRN_ADD_WITH_OVERFLOW) { in SelectOverFlowCall() 349 } else if (intrinsic == INTRN_SUB_WITH_OVERFLOW) { in SelectOverFlowCall() 351 } else if (intrinsic == INTRN_MUL_WITH_OVERFLOW) { in SelectOverFlowCall() 383 MIRIntrinsicID intrinsic = intrinsiccallNode.GetIntrinsic(); in SelectIntrinsicCall() local 384 if (intrinsic == INTRN_ADD_WITH_OVERFLOW || intrinsic == INTRN_SUB_WITH_OVERFLOW || in SelectIntrinsicCall() 385 intrinsic in SelectIntrinsicCall() [all...] |
/arkcompiler/runtime_core/static_core/runtime/tests/ |
H A D | method_test.cpp | 126 auto intrinsic = intrinsics::Intrinsic::MATH_COS_F64; in TEST_F() local 127 method.SetIntrinsic(intrinsic); in TEST_F() 130 ASSERT_EQ(method.GetIntrinsic(), intrinsic); in TEST_F()
|
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/include/be/ |
H A D | lower.h | 159 /* if it defines a built-in to use for the given intrinsic, return the name. otherwise, return nullptr */ 178 * true if the lower level (e.g. mplcg) can handle the intrinsic directly. 182 * and let mplcg handle the intrinsic results which are not return values. 184 bool IsIntrinsicCallHandledAtLowerLevel(MIRIntrinsicID intrinsic) const;
|
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
H A D | dump.cpp | 374 ArenaString intrinsic(ArenaString("Intrinsic.", adapter)); in DumpOpcode() 376 (*out) << std::setw(INDENT_OPCODE) << intrinsic + opcode << " "; in DumpOpcode()
|
/arkcompiler/runtime_core/static_core/compiler/tests/ |
H A D | inst_generator_test.cpp | 90 for (auto &intrinsic : intrinsics) { in GenerateIntrinsics() 92 auto graph = graphCreator_.GenerateGraph(intrinsic); in GenerateIntrinsics() 93 auto id = intrinsic->CastToIntrinsic()->GetIntrinsicId(); in GenerateIntrinsics()
|
/arkcompiler/runtime_core/compiler/tests/ |
H A D | dump_test.cpp | 625 auto intrinsic = inst->CastToIntrinsic(); in HWTEST_F() 626 intrinsic->DumpOpcode(&data); in HWTEST_F()
|
/arkcompiler/runtime_core/static_core/runtime/include/ |
H A D | method.h | 622 void SetIntrinsic(intrinsics::Intrinsic intrinsic) in SetIntrinsic() argument 628 auto result = ACC_INTRINSIC | static_cast<uint32_t>(intrinsic) << INTRINSIC_SHIFT; in SetIntrinsic()
|