| /arkcompiler/runtime_core/static_core/bytecode_optimizer/ |
| H A D | codegen.cpp | 20 void DoLdaObj(compiler::Register reg, std::vector<pandasm::Ins> &result) in DoLdaObj() 22 if (reg != compiler::ACC_REG_ID) { in DoLdaObj() 27 void DoLda(compiler::Register reg, std::vector<pandasm::Ins> &result) in DoLda() 29 if (reg != compiler::ACC_REG_ID) { in DoLda() 34 void DoLda64(compiler::Register reg, std::vector<pandasm::Ins> &result) in DoLda64() 36 if (reg != compiler::ACC_REG_ID) { in DoLda64() 41 void DoStaObj(compiler::Register reg, std::vector<pandasm::Ins> &result) in DoStaObj() 43 if (reg != compiler::ACC_REG_ID) { in DoStaObj() 48 void DoSta(compiler::Register reg, std::vector<pandasm::Ins> &result) in DoSta() 50 if (reg != compiler in DoSta() [all...] |
| H A D | reg_encoder.cpp | 18 #include "compiler/optimizer/ir/basicblock.h" 22 static bool IsDstRegNeedRenumbering([[maybe_unused]] ark::compiler::Inst *inst) in IsDstRegNeedRenumbering() 27 [[maybe_unused]] ark::compiler::Inst *inst) in CheckWidthAbcKitIntrinsic() 37 if (inst->GetOpcode() != compiler::Opcode::Intrinsic) { in IsIntrinsicRange() 46 case compiler::RuntimeInterface::IntrinsicId::INTRINSIC_CALLI_RANGE_DYN: in IsIntrinsicRange() 47 case compiler::RuntimeInterface::IntrinsicId::INTRINSIC_CALLI_THIS_RANGE_DYN: in IsIntrinsicRange() 48 case compiler::RuntimeInterface::IntrinsicId::INTRINSIC_NEWOBJ_DYNRANGE: in IsIntrinsicRange() 49 case compiler::RuntimeInterface::IntrinsicId::INTRINSIC_SUPER_CALL: in IsIntrinsicRange() 51 case compiler::RuntimeInterface::IntrinsicId::ECMA_CALLIRANGEDYN_PREF_IMM16_V8: in IsIntrinsicRange() 52 case compiler in IsIntrinsicRange() [all...] |
| H A D | reg_encoder.h | 19 #include "compiler/optimizer/ir/graph.h" 20 #include "compiler/optimizer/pass.h" 21 #include "compiler/optimizer/ir/inst.h" 22 #include "compiler/optimizer/ir/graph_visitor.h" 27 * After compiler's register allocation layout of the virtual frame looks like: 74 compiler::Register reg; 76 compiler::DataType::Type type; 78 RegContent() : reg(compiler::INVALID_REG), type(compiler::DataType::NO_TYPE) {} in RegContent() 79 RegContent(compiler in RegContent() [all...] |
| H A D | reg_acc_alloc.cpp | 18 #include "compiler/optimizer/ir/basicblock.h" 19 #include "compiler/optimizer/ir/inst.h" 24 static std::pair<bool, compiler::BasicBlock *> IsAccWriteBetweenBlocks(compiler::BasicBlock *block, in IsAccWriteBetweenBlocks() 25 compiler::Inst *dstInst) in IsAccWriteBetweenBlocks() 44 static bool IsAccWriteInInst(compiler::Inst *inst) in IsAccWriteInInst() 55 if (inst->GetDstReg() == compiler::ACC_REG_ID) { in IsAccWriteInInst() 62 static bool IsAccReadFromReg(compiler::Inst *srcInst, compiler::Inst *inst) in IsAccReadFromReg() 67 compiler in IsAccReadFromReg() [all...] |
| H A D | check_resolver.cpp | 17 #include "compiler/optimizer/ir/basicblock.h" 18 #include "compiler/optimizer/ir/inst.h" 22 static void ReplaceCheck(compiler::Inst *inst) in ReplaceCheck() 25 size_t i = (op == compiler::Opcode::BoundsCheck || op == compiler::Opcode::RefTypeCheck) ? 1U : 0U; in ReplaceCheck() 28 user.GetInst()->SetFlag(compiler::inst_flags::CAN_THROW); in ReplaceCheck() 31 inst->ClearFlag(compiler::inst_flags::NO_DCE); // DCE will remove the check inst in ReplaceCheck() 34 static void MarkLenArray(compiler::Inst *inst) in MarkLenArray() 44 inst->SetFlag(compiler::inst_flags::NO_DCE); in MarkLenArray() 46 inst->SetFlag(compiler in MarkLenArray() [all...] |
| H A D | reg_acc_alloc.h | 25 class RegAccAlloc : public compiler::Optimization { 29 explicit RegAccAlloc(compiler::Graph *graph) : compiler::Optimization(graph), accMarker_(graph->NewMarker()) {}; in RegAccAlloc() 37 return compiler::g_options.IsCompilerRegAccAlloc(); 48 bool IsPhiOptimizable(compiler::Inst *phi) const; 49 bool IsAccRead(compiler::Inst *inst) const; 50 bool IsAccWrite(compiler::Inst *inst) const; 52 bool CanUserReadAcc(compiler::Inst *inst, compiler::Inst *user) const; 53 bool IsPhiAccReady(compiler [all...] |
| H A D | common.h | 19 #include "compiler/optimizer/ir/constants.h" 20 #include "compiler/optimizer/ir/inst.h" 22 namespace ark::compiler { namespace in ark 24 } // namespace ark::compiler 27 constexpr compiler::Register MIN_REGISTER_NUMBER = 0; 28 constexpr compiler::Register MAX_NUM_SHORT_CALL_ARGS = 2; 29 constexpr compiler::Register MAX_NUM_NON_RANGE_ARGS = 4; 30 constexpr compiler::Register MAX_NUM_INPUTS = MAX_NUM_NON_RANGE_ARGS; 31 constexpr ark::compiler::Register NUM_COMPACTLY_ENCODED_REGS = 16; 32 [[maybe_unused]] constexpr compiler [all...] |
| H A D | codegen.h | 23 #include "compiler/optimizer/pass.h" 24 #include "compiler/optimizer/ir/basicblock.h" 25 #include "compiler/optimizer/ir/graph.h" 26 #include "compiler/optimizer/ir/graph_visitor.h" 32 using compiler::BasicBlock; 33 using compiler::Inst; 34 using compiler::Opcode; 36 void DoLdaObj(compiler::Register reg, std::vector<pandasm::Ins> &result); 37 void DoLda(compiler::Register reg, std::vector<pandasm::Ins> &result); 38 void DoLda64(compiler [all...] |
| H A D | common.cpp | 17 #include "compiler/optimizer/ir/basicblock.h" 18 #include "compiler/optimizer/ir/graph.h" 22 uint8_t AccReadIndex(const compiler::Inst *inst) in AccReadIndex() 29 case compiler::Opcode::LoadArray: in AccReadIndex() 30 case compiler::Opcode::StoreObject: in AccReadIndex() 31 case compiler::Opcode::StoreStatic: in AccReadIndex() 32 case compiler::Opcode::NewArray: in AccReadIndex() 34 case compiler::Opcode::StoreArray: in AccReadIndex() 54 bool IsAbcKitIntrinsicRange([[maybe_unused]] compiler::RuntimeInterface::IntrinsicId intrinsicId) in IsAbcKitIntrinsicRange() 58 bool IsAbcKitIntrinsic([[maybe_unused]] compiler in IsAbcKitIntrinsicRange() [all...] |
| H A D | optimize_bytecode.cpp | 28 #include "compiler/optimizer/ir/constants.h" 29 #include "compiler/optimizer/ir_builder/ir_builder.h" 30 #include "compiler/optimizer/ir_builder/pbc_iterator.h" 31 #include "compiler/optimizer/optimizations/branch_elimination.h" 32 #include "compiler/optimizer/optimizations/code_sink.h" 33 #include "compiler/optimizer/optimizations/cse.h" 34 #include "compiler/optimizer/optimizations/cleanup.h" 35 #include "compiler/optimizer/optimizations/if_merging.h" 36 #include "compiler/optimizer/optimizations/licm.h" 37 #include "compiler/optimize [all...] |
| /arkcompiler/runtime_core/static_core/irtoc/backend/ |
| H A D | function.cpp | 17 #include "compiler/codegen_boundary.h" 18 #include "compiler/codegen_fastpath.h" 19 #include "compiler/codegen_interpreter.h" 20 #include "compiler/optimizer_run.h" 21 #include "compiler/dangling_pointers_checker.h" 22 #include "compiler/optimizer/code_generator/target_info.h" 23 #include "compiler/optimizer/optimizations/balance_expressions.h" 24 #include "compiler/optimizer/optimizations/branch_elimination.h" 25 #include "compiler/optimizer/optimizations/checks_elimination.h" 26 #include "compiler/optimize [all...] |
| /arkcompiler/runtime_core/bytecode_optimizer/ |
| H A D | reg_encoder.h | 19 #include "compiler/optimizer/ir/graph.h" 20 #include "compiler/optimizer/pass.h" 21 #include "compiler/optimizer/ir/inst.h" 22 #include "compiler/optimizer/ir/graph_visitor.h" 27 * After compiler's register allocation layout of the virtual frame looks like: 73 compiler::Register reg; 74 compiler::DataType::Type type; 76 RegContent() : reg(compiler::INVALID_REG), type(compiler::DataType::NO_TYPE) {} in RegContent() 77 RegContent(compiler in RegContent() [all...] |
| H A D | reg_encoder.cpp | 18 #include "compiler/optimizer/ir/basicblock.h" 24 if (inst->GetOpcode() != compiler::Opcode::Intrinsic) { in IsIntrinsicRange() 29 case compiler::RuntimeInterface::IntrinsicId::CALLRANGE_IMM8_IMM8_V8: in IsIntrinsicRange() 30 case compiler::RuntimeInterface::IntrinsicId::WIDE_CALLRANGE_PREF_IMM16_V8: in IsIntrinsicRange() 31 case compiler::RuntimeInterface::IntrinsicId::CALLTHISRANGE_IMM8_IMM8_V8: in IsIntrinsicRange() 32 case compiler::RuntimeInterface::IntrinsicId::WIDE_CALLTHISRANGE_PREF_IMM16_V8: in IsIntrinsicRange() 33 case compiler::RuntimeInterface::IntrinsicId::NEWOBJRANGE_IMM8_IMM8_V8: in IsIntrinsicRange() 34 case compiler::RuntimeInterface::IntrinsicId::NEWOBJRANGE_IMM16_IMM8_V8: in IsIntrinsicRange() 35 case compiler::RuntimeInterface::IntrinsicId::WIDE_NEWOBJRANGE_PREF_IMM16_V8: in IsIntrinsicRange() 36 case compiler in IsIntrinsicRange() [all...] |
| H A D | reg_acc_alloc.h | 25 class RegAccAlloc : public compiler::Optimization { 29 explicit RegAccAlloc(compiler::Graph *graph) : compiler::Optimization(graph), acc_marker_(graph->NewMarker()) {}; in RegAccAlloc() 35 return compiler::options.IsCompilerRegAccAlloc(); 46 bool IsPhiOptimizable(compiler::Inst *phi) const; 47 bool IsAccRead(compiler::Inst *inst) const; 48 bool IsAccWrite(compiler::Inst *inst) const; 50 bool CanUserReadAcc(compiler::Inst *inst, compiler::Inst *user) const; 51 bool IsPhiAccReady(compiler [all...] |
| H A D | reg_acc_alloc.cpp | 18 #include "compiler/optimizer/ir/basicblock.h" 19 #include "compiler/optimizer/ir/inst.h" 26 bool IsAccWriteBetween(compiler::Inst *src_inst, compiler::Inst *dst_inst) in IsAccWriteBetween() 30 compiler::BasicBlock *block = src_inst->GetBasicBlock(); in IsAccWriteBetween() 31 compiler::Inst *inst = src_inst->GetNext(); in IsAccWriteBetween() 59 compiler::Inst *input = inst->GetInput(AccReadIndex(inst)).GetInst(); in IsAccWriteBetween() 61 if (input->GetDstReg() != compiler::ACC_REG_ID) { in IsAccWriteBetween() 76 inline bool RegAccAlloc::IsPhiOptimizable(compiler::Inst *phi) const in IsPhiOptimizable() 78 ASSERT(phi->GetOpcode() == compiler in IsPhiOptimizable() [all...] |
| H A D | codegen.h | 24 #include "compiler/optimizer/pass.h" 25 #include "compiler/optimizer/ir/basicblock.h" 26 #include "compiler/optimizer/ir/graph.h" 27 #include "compiler/optimizer/ir/graph_visitor.h" 32 using compiler::BasicBlock; 33 using compiler::Inst; 34 using compiler::Opcode; 36 void DoLda(compiler::Register reg, std::vector<pandasm::Ins> &result); 37 void DoSta(compiler::Register reg, std::vector<pandasm::Ins> &result); 39 class BytecodeGen : public compiler [all...] |
| H A D | codegen.cpp | 24 void DoLda(compiler::Register reg, std::vector<pandasm::Ins> &result) in DoLda() 26 if (reg != compiler::ACC_REG_ID) { in DoLda() 31 void DoSta(compiler::Register reg, std::vector<pandasm::Ins> &result) in DoSta() 33 if (reg != compiler::ACC_REG_ID) { in DoSta() 38 void BytecodeGen::AppendCatchBlock(uint32_t type_id, const compiler::BasicBlock *try_begin, in AppendCatchBlock() 39 const compiler::BasicBlock *try_end, const compiler::BasicBlock *catch_begin, in AppendCatchBlock() 40 const compiler::BasicBlock *catch_end) in AppendCatchBlock() 54 void BytecodeGen::VisitTryBegin(const compiler::BasicBlock *bb) in VisitTryBegin() 127 ASSERT(bb->GetSuccsBlocks().size() == compiler in EmitJump() [all...] |
| H A D | module_constant_analyzer.h | 21 #include "compiler/optimizer/pass.h" 22 #include "compiler/optimizer/ir/graph.h" 23 #include "compiler/optimizer/ir/graph_visitor.h" 28 using compiler::BasicBlock; 29 using compiler::Inst; 30 using compiler::Opcode; 31 using compiler::RuntimeInterface; 43 class ModuleConstantAnalyzer : public compiler::Analysis, public compiler::GraphVisitor { 45 explicit ModuleConstantAnalyzer(compiler [all...] |
| /arkcompiler/runtime_core/compiler/optimizer/ir/ |
| H A D | ir-dyn-base-types.h | 19 #include "compiler/optimizer/ir/datatype.h" 24 namespace panda::compiler { namespace in panda 25 inline AnyBaseType NumericDataTypeToAnyType(panda::compiler::DataType::Type type, in NumericDataTypeToAnyType() 26 [[maybe_unused]] panda::compiler::SourceLanguage language) in NumericDataTypeToAnyType() 29 case panda::compiler::DataType::Type::INT32: in NumericDataTypeToAnyType() 30 return panda::compiler::AnyBaseType::ECMASCRIPT_INT_TYPE; in NumericDataTypeToAnyType() 31 case panda::compiler::DataType::Type::UINT32: in NumericDataTypeToAnyType() 32 case panda::compiler::DataType::Type::INT64: in NumericDataTypeToAnyType() 33 case panda::compiler::DataType::Type::UINT64: in NumericDataTypeToAnyType() 34 return panda::compiler in NumericDataTypeToAnyType() [all...] |
| /arkcompiler/ets_frontend/ets2panda/checker/ |
| H A D | ETSchecker.cpp | 73 compiler::Signatures::BUILTIN_BOOLEAN_CLASS, 74 compiler::Signatures::BUILTIN_BYTE_CLASS, 75 compiler::Signatures::BUILTIN_CHAR_CLASS, 76 compiler::Signatures::BUILTIN_SHORT_CLASS, 77 compiler::Signatures::BUILTIN_INT_CLASS, 78 compiler::Signatures::BUILTIN_LONG_CLASS, 79 compiler::Signatures::BUILTIN_FLOAT_CLASS, 80 compiler::Signatures::BUILTIN_DOUBLE_CLASS, 81 compiler::Signatures::BUILTIN_FUNCTION0_CLASS, 82 compiler [all...] |
| /arkcompiler/runtime_core/static_core/libllvmbackend/ |
| H A D | llvm_aot_compiler.cpp | 16 #include "compiler/aot/compiled_method.h" 17 #include "compiler/code_info/code_info.h" 18 #include "compiler/generated/pipeline_includes.h" 75 #define DEBUG_TYPE "llvm-aot-compiler" 85 ScopedCompilerThread(ark::compiler::RuntimeInterface::ThreadPtr parent, in ScopedCompilerThread() 86 ark::compiler::RuntimeInterface *runtimeInterface) in ScopedCompilerThread() 109 ark::compiler::RuntimeInterface::ThreadPtr old_ {nullptr}; 110 ark::compiler::RuntimeInterface::ThreadPtr compiler_ {nullptr}; 111 ark::compiler::RuntimeInterface *runtimeInterface_; 135 bool MonitorsCorrect(ark::compiler [all...] |
| /arkcompiler/ets_frontend/ets2panda/compiler/core/ |
| H A D | JSCompiler.cpp | 19 #include "compiler/base/catchTable.h" 20 #include "compiler/base/condition.h" 21 #include "compiler/base/lreference.h" 22 #include "compiler/core/pandagen.h" 23 #include "compiler/core/switchBuilder.h" 24 #include "compiler/function/functionBuilder.h" 27 namespace ark::es2panda::compiler { namespace in ark::es2panda 38 compiler::LocalRegScope lrs(pg, st->Scope()->ParamScope()); in Compile() 41 auto lref = compiler::JSLReference::Create(pg, st->Param(), true); in Compile() 49 static compiler [all...] |
| /arkcompiler/ets_frontend/es2panda/ir/statements/ |
| H A D | forOfStatement.cpp | 20 #include <compiler/base/catchTable.h> 21 #include <compiler/base/iterators.h> 22 #include <compiler/base/lreference.h> 23 #include <compiler/core/labelTarget.h> 24 #include <compiler/core/pandagen.h> 43 void ForOfStatement::Compile(compiler::PandaGen *pg) const in Compile() 45 compiler::LocalRegScope regScope(pg, scope_); in Compile() 52 compiler::TryContext iterInitTryCtx(pg); in Compile() 60 compiler::VReg exception = pg->AllocReg(); in Compile() 74 compiler in Compile() [all...] |
| /arkcompiler/runtime_core/static_core/plugins/ets/runtime/interop_js/ |
| H A D | ets_interop_runtime_interface-inl.h | 18 static std::pair<IntrinsicId, compiler::DataType::Type> GetInfoForInteropConvert(panda_file::Type::TypeId typeId) in GetInfoForInteropConvert() 22 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_VOID_TO_LOCAL, compiler::DataType::NO_TYPE}; in GetInfoForInteropConvert() 24 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_U1_TO_LOCAL, compiler::DataType::BOOL}; in GetInfoForInteropConvert() 26 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_I8_TO_LOCAL, compiler::DataType::INT8}; in GetInfoForInteropConvert() 28 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_U8_TO_LOCAL, compiler::DataType::UINT8}; in GetInfoForInteropConvert() 30 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_I16_TO_LOCAL, compiler::DataType::INT16}; in GetInfoForInteropConvert() 32 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_U16_TO_LOCAL, compiler::DataType::UINT16}; in GetInfoForInteropConvert() 34 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_I32_TO_LOCAL, compiler::DataType::INT32}; in GetInfoForInteropConvert() 36 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_U32_TO_LOCAL, compiler::DataType::UINT32}; in GetInfoForInteropConvert() 38 return {IntrinsicId::INTRINSIC_COMPILER_CONVERT_I64_TO_LOCAL, compiler in GetInfoForInteropConvert() [all...] |
| /arkcompiler/runtime_core/static_core/bytecode_optimizer/tests/ |
| H A D | codegen_test.cpp | 26 #include "compiler/optimizer/optimizations/peepholes.h" 27 #include "compiler/optimizer/optimizations/cleanup.h" 28 #include "compiler/optimizer/optimizations/lowering.h" 29 #include "compiler/optimizer/optimizations/regalloc/reg_alloc_linear_scan.h" 109 EXPECT_TRUE(graph->RunPass<compiler::RegAllocLinearScan>(compiler::EmptyRegMask())); in TEST_F() 126 INST(2U, Opcode::Compare).b().CC(compiler::ConditionCode::CC_EQ).Inputs(0U, 1U); in TEST_F() 128 .SrcType(compiler::DataType::BOOL) in TEST_F() 129 .CC(compiler::ConditionCode::CC_NE) in TEST_F() 146 graph->RunPass<compiler in TEST_F() [all...] |