Home
last modified time | relevance | path

Searched refs:intrinsic (Results 1 - 25 of 32) sorted by relevance

12

/arkcompiler/runtime_core/static_core/plugins/ets/compiler/optimizer/
H A Dets_intrinsics_peephole.cpp23 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 Dintrinsics_peephole_ets.inl.h18 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 Dets_inst_builder.cpp98 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 Dinline_intrinsics.cpp135 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 Dinline_intrinsics.h32 * 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 Dstring_builder_utils.h58 auto intrinsic = inst->CastToIntrinsic(); in IsStringBuilderAppend() local
59 return runtime->IsIntrinsicStringBuilderAppend(intrinsic->GetIntrinsicId()); in IsStringBuilderAppend()
H A Dlocations_builder.cpp243 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 Dreserve_string_builder_buffer.cpp182 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 Dstring_builder_utils.cpp88 auto intrinsic = inst->CastToIntrinsic(); in IsStringBuilderToString() local
89 return runtime->IsIntrinsicStringBuilderToString(intrinsic->GetIntrinsicId()); in IsStringBuilderToString()
H A Dsimplify_string_builder.cpp296 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 Dcompiler_intrinsics.rb71 @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 Dcompiler_intrinsics.rb84 @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 Djs_interop_inst_builder.cpp62 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 Dintrinsics.rb69 @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 Dintrinsics.rb125 @data.intrinsics.map do |intrinsic|
126 Intrinsic.new(intrinsic)
H A Druntime.rb112 @data.intrinsics.map do |intrinsic|
113 Intrinsic.new(intrinsic)
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_ir/include/
H A Dmir_nodes.h85 // 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 Dcmpl.h333 MIRIntrinsicID intrinsic; member
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/maple/maple_be/src/cg/x86_64/
H A Dx64_MPIsel.cpp335 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 Dmethod_test.cpp126 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 Dlower.h159 /* 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 Ddump.cpp374 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 Dinst_generator_test.cpp90 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 Ddump_test.cpp625 auto intrinsic = inst->CastToIntrinsic(); in HWTEST_F()
626 intrinsic->DumpOpcode(&data); in HWTEST_F()
/arkcompiler/runtime_core/static_core/runtime/include/
H A Dmethod.h622 void SetIntrinsic(intrinsics::Intrinsic intrinsic) in SetIntrinsic() argument
628 auto result = ACC_INTRINSIC | static_cast<uint32_t>(intrinsic) << INTRINSIC_SHIFT; in SetIntrinsic()

Completed in 22 milliseconds

12