| /arkcompiler/ets_runtime/ecmascript/compiler/ |
| D | early_elimination.cpp | 97 DependChainInfo* that = new (chunk_) DependChainInfo(*this); in UpdateProperty() local 99 that->propertyMap_ = new ChunkMap<PropertyInfo, GateRef>(*propertyMap_); in UpdateProperty() 101 that->propertyMap_ = new ChunkMap<PropertyInfo, GateRef>(chunk_); in UpdateProperty() 103 that->propertyMap_->insert(std::make_pair(*info, gate)); in UpdateProperty() 104 return that; in UpdateProperty() 109 DependChainInfo* that = new (chunk_) DependChainInfo(*this); in UpdateElement() local 111 that->elementMap_ = new ChunkMap<ElementInfo, GateRef>(*elementMap_); in UpdateElement() 113 that->elementMap_ = new ChunkMap<ElementInfo, GateRef>(chunk_); in UpdateElement() 115 that->elementMap_->insert(std::make_pair(*info, gate)); in UpdateElement() 116 return that; in UpdateElement() [all …]
|
| /arkcompiler/runtime_core/docs/ |
| D | doxygen.config | 14 # Values that contain spaces should be placed between quotes (\" \"). 21 # that follow. The default is UTF-8 which is also the encoding used for all text 30 # double-quotes, unless you are using Doxywizard) that should identify the 44 # for a project that appears at the top of each page and should give viewer a 49 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included 97 # descriptions after the members that are listed in the file and class 112 # This tag implements a quasi-intelligent brief description abbreviator that is 141 # inherited members of a class in the documentation of that class as if those 150 # shortest path that makes the file name unique will be used 161 # Note that you can specify absolute paths here, but also relative paths, which [all …]
|
| D | rationale-for-bytecode.md | 13 There is a central processing unit (CPU) that reads commands (or _instructions_) from 17 operands are _stack operands_ that reside in a special data structure called _stack_. The program 23 that the number and purpose of registers differs, too. Some nuances of working with stack may also 79 more _dispatch overhead_. Which means that the stack-based bytecode is slower by nature. 86 interpreter is very important, that's why 117 * Sometimes you might want to write directly into virtual register. e.g. for register moves (that 133 Let's take a closer look at `adda arg1, arg2`. Assume that arguments map to virtual registers on 148 It easy to see that to address virtual registers 4 and 5 we need just 3 bits which allows to encode 157 to the stack-based approach. Of course, if virtual registers have large numbers that do no fit 165 How to make sure that we benefit from the shorter encoding most of the time? An observation shows [all …]
|
| D | assembly_format.md | 5 …mbler, a dedicated tool that translates them to binary files that can be executed by the Panda vir… 11 …that is (or intended to be) supported by the platform. Instead, Panda assembly can be thought as a… 19 Comments are marked with the `#` character. All characters that follow it (including the `#` charac… 28 …that can be represented with IEEE 754. Hexadecimal floating-point literals are prefixed with `0x`.… 86 There are keys that indicate that a function must not have an implementation. The absence of these … 158 | `java.interface` | Used to specify that the record represents Java interface. | 159 | `java.enum` | Used to specify that the record and its fields represent Java enum. | 160 | `java.annotation` | Used to specify that the record represents Java annotation. | 162 …tion class. Allowed multiple definitions. Value is the name of the record that represent Java anno… 205 | `void` | Type for the result of a function that returns normally, but does not provide a result v… [all …]
|
| D | code_metainfo.md | 5 Metainfo is an information that aims to provide reg-to-stack mapping for virtual registers. It is n… 8 When native code calls runtime or another code that can call runtime, we must provide approach to r… 44 First row is a BitTable's header, that describe rows count and columns width. 53 Column width can't be greater than 32 bits, because `BitTableBuilder` class, that aims to build bit… 73 Row size is 25 bits, that is sum of columns width: 2 + 0 + 15 + 8. 74 Column width is determined by maximum value in a table, e.g. for 2th column it is zero row, that ha… 80 Bitmap table is a Bit table with one column, that doesn't have 32-bits limitation for the width. 106 | CALLEE_REG_MASK | Specifies registers mask that is saved in the method | 107 | CALLEE_FP_REG_MASK | Specifies fp registers mask that is saved in the method | 120 | ROOTS_REG_MASK_INDEX | Mask of the CPU registers that hold managed objects | [all …]
|
| D | 2022-08-18-isa-changelog.md | 14 2. We remove the prefix of ecmascript specific opcodes, such that most of the bytecode opcode can b… 18 6. We adjust the format of some opcodes (about immediate number and accumulator), so that the bytec… 24 such that runtime can distinguish the "define-function" operations of different kinds. 25 We also add header index in function such that runtime can access IndexHeader more efficiently. 34 such that the instructions can get consective indexes for methodId, stringId and literalarrayId. 36 As the method number in a class is not limited, we release the constraint that all methodId, 38 Instead, we only ask that all methodId, stringId and literalarrayId in a method should be put in on…
|
| D | glossary.md | 5 During the development of Panda Runtime, we faced the fact that terminology related to the 12 compilation" are used to indicate that the source code or bytecode is compiled before actual 17 * **Compiler** is a tool that performs source code or bytecode translation, optimization and 25 compilation" are used to indicate that the source code or bytecode is compiled during program 29 * **Panda Assembler** is a tool that translates **Panda Assembly Language** 42 * **Allocator** is a part of the system that servicing allocation and deallocation requests. 56 that it can prove will never be used again. 66 It means that all objects which are currently in use are known and we know how to get value
|
| /arkcompiler/ets_runtime/ |
| D | LICENSE | 14 the copyright owner that is granting the License. 17 other entities that control, are controlled by, or are under common 18 control with that entity. For the purposes of this definition, 38 copyright notice that is included in or attached to the work 42 form, that is based on (or derived from) the Work and for which the 45 of this License, Derivative Works shall not include works that remain 51 to that Work or Derivative Works thereof, that is intentionally 58 and issue tracking systems that are managed by, or on behalf of, the 60 excluding communication that is conspicuously marked or otherwise 80 by such Contributor that are necessarily infringed by their [all …]
|
| /arkcompiler/toolchain/ |
| D | LICENSE | 14 the copyright owner that is granting the License. 17 other entities that control, are controlled by, or are under common 18 control with that entity. For the purposes of this definition, 38 copyright notice that is included in or attached to the work 42 form, that is based on (or derived from) the Work and for which the 45 of this License, Derivative Works shall not include works that remain 51 to that Work or Derivative Works thereof, that is intentionally 58 and issue tracking systems that are managed by, or on behalf of, the 60 excluding communication that is conspicuously marked or otherwise 80 by such Contributor that are necessarily infringed by their [all …]
|
| /arkcompiler/runtime_core/compiler/docs/ |
| D | reg_alloc_graph_coloring_doc.md | 17 This paper describes register allocation algorithm that is based on ideas of Chordal-graph coloring… 18 …sed on observation that programs in a strict SSA form produce a Chordal interference graphs. Main … 19 …ementation was used alternative algorithm that is LexBFS. It uses little bit more compact data str… 20 …call-site crossing will interfere with fixed-intervals (special intervals that are placeholders of… 23 …ally for nodes is collected number or fixed-intervals intersections that tell us that this interva… 27 Here additionally to the built graph with regular edges that represent interference, it is built af… 31 …s by MCS or LexBFS (that is reverse PEO), one by one is colored by a Greedy coloring algorithm. Gr… 32 …ve situations when different cliques are colored in parallel that at the end collides, that may ca… 36 There are two classes of approaches for coalescing, that is: 37 …that happens before or after coloring respectively. Pre-coalescing is known to potentially can inc… [all …]
|
| D | aot_resolve_string.md | 4 mode such runtime calls could be replaced with load from a special PLT-slot in AOT file. In that ca… 5 loads a value from a slot associated with a string and checks if that value is valid pointer. If it… 6 application have to perform `ResolveStringAot` runtime call that will return a pointer. That runtim… 20 emits load from that slot, followed by the check that the loaded value is a valid pointer and the s… 22 The slow path performs `ResolveStringAot` runtime call that returns resolved string. 36 …or it reaches `PANDA_32BITS_HEAP_START_ADDRESS - 1` (after that invocations will not increment slo… 51 PLT-slot is referencing to an object in young space. That information allow to significantly reduce…
|
| D | ir_builder.md | 13 We choose a simple algorithm, that is used in many Virtual Machines. It may produce dead phis, but … 16 …he Panda bytecode, IR builder has responsibility to handle various situation that is not common for 22 - if constant is `0` and it is used in instruction that expects object(f.e. `mov.obj`), we need to … 25 Resolving these things requires addition actions in the builder, that, in turn, can require additio… 43 … bytecode instructions and make basic block for all target instructions, i.e. instructions that can 60 `Virtual register map` is a map, where key is virtual register, value is an IR instruction that cur… 66 1. Split constants: for all constants that are used in instructions with different types, split con… 68 2. Fix instructions that can't be fully completed in building process: 71 …- Check all instructions that have no type and fix it. Type is got from instructions with known in…
|
| D | code_sink_doc.md | 4 The optimization moves instructions into successor blocks, when possible, so that they are not exec… 8 This optimization allows to avoid execution of statements that are not used on execution path. This… 39 …s. It is possible if all users of the instruction is dominated by a block that the instruction is … 41 Instructions that cannot sink: 45 * Instructions that can throw an exception 53 To determine which load instruction can be sunk we keep a list of store instructions that have been… 55 Blocks that instruction cannot be sunk into: 56 * Blocks that do not dominate all users of the instruction 87 // Save stores to be sure we do not sink a load instruction that may be aliased 92 // Check that instruction can be sunk [all …]
|
| D | aot_cha.md | 7 The class order in class path influences on resulting class hierarchy that would be available for a… 21 … with class hierarchy requires the complete conformity of class path with runtime. It means that we 37 The wrong usage. Some classes were omitted during AOT compilation due to the fact that they are not… 68 …that for boot aot files the entire --boot-panda-files must match between `ark_aot` and `ark`. It m…
|
| /arkcompiler/runtime_core/tests/cts-generator/cts-template/ |
| D | checkcast.yaml | 58 description: Check that null object reference can be cast to any type 71 jnez.obj set_failure # check that acc == null 100 description: Check that null object reference can be cast to any type 116 jnez.obj set_failure # check that acc == null 150 description: Check that null object reference can be cast to any array type 164 jnez.obj set_failure # check that acc == null 193 description: Check that null object reference can be cast to any array type 209 jnez.obj set_failure # check that acc == null 243 description: Check that any object can be cast to the base type 257 jne.obj v1, set_failure # check that acc isn't changed [all …]
|
| D | throw.yaml | 48 description: Check that compilation fails if register is invalid 78 description: Check that verifier report error when the register is not initialized 101 description: Check that compiler reports error when 'a' register is not initialized 135 description: Check that NullPointerException is thrown when register value is null 167 description: Check that NullPointerException is thrown when register value is null 200 description: "Check that VM thread fails when register contains not a Throwable" 253 description: "Check that VM thread fails when register contains not a Throwable" 307 description: "Check that correct catch block is selected" 309 … register. The current method is searched for the first exception handler that matches the class o… 392 description: "Check that correct catch block is selected" [all …]
|
| D | ldobj.64.yaml | 98 …description: Check that verifier reports error if source registers are not initialized in Panda co… 125 …description: Check that verifier reports error if source registers are not initialized in PandaAss… 148 … description: Check that NullPointerException is thrown if object ref is null in Panda context. 180 …description: Check that NullPointerException is thrown if object ref is null in PandaAssembly cont… 211 …description: Check that verifier reports an error when the 1st operand is not a ref to an object (… 248 …description: Check that verifier reports an error when the 1st operand is not a ref to an object (… 282 …Check that verifier reports an error when the field doesn't resolve to a non-static valid object f… 337 …Check that verifier reports an error when the field doesn't resolve to a non-static valid object f… 393 …description: Check that verifier reports an error when the field resolves to a field with size or … 435 …description: Check that verifier reports an error when the field resolves to a field with size or … [all …]
|
| D | ldobj.v.64.yaml | 98 …description: Check that verifier reports error if source registers are not initialized in Panda co… 123 …description: Check that verifier reports error if source registers are not initialized in PandaAss… 146 … description: Check that NullPointerException is thrown if object ref is null in Panda context. 178 …description: Check that NullPointerException is thrown if object ref is null in PandaAssembly cont… 209 …description: Check that verifier reports an error when the 2nd operand is not a ref to an object (… 247 …description: Check that verifier reports an error when the 2nd operand is not a ref to an object (… 282 …Check that verifier reports an error when the field doesn't resolve to a non-static valid object f… 337 …Check that verifier reports an error when the field doesn't resolve to a non-static valid object f… 393 …description: Check that verifier reports an error when the field resolves to a field with size or … 435 …description: Check that verifier reports an error when the field resolves to a field with size or … [all …]
|
| /arkcompiler/runtime_core/ |
| D | LICENSE | 14 the copyright owner that is granting the License. 17 other entities that control, are controlled by, or are under common 18 control with that entity. For the purposes of this definition, 38 copyright notice that is included in or attached to the work 42 form, that is based on (or derived from) the Work and for which the 45 of this License, Derivative Works shall not include works that remain 51 to that Work or Derivative Works thereof, that is intentionally 58 and issue tracking systems that are managed by, or on behalf of, the 60 excluding communication that is conspicuously marked or otherwise 80 by such Contributor that are necessarily infringed by their [all …]
|
| /arkcompiler/ets_frontend/ |
| D | LICENSE | 14 the copyright owner that is granting the License. 17 other entities that control, are controlled by, or are under common 18 control with that entity. For the purposes of this definition, 38 copyright notice that is included in or attached to the work 42 form, that is based on (or derived from) the Work and for which the 45 of this License, Derivative Works shall not include works that remain 51 to that Work or Derivative Works thereof, that is intentionally 58 and issue tracking systems that are managed by, or on behalf of, the 60 excluding communication that is conspicuously marked or otherwise 80 by such Contributor that are necessarily infringed by their [all …]
|
| /arkcompiler/ets_runtime/ecmascript/napi/ |
| D | jsnapi_helper.h | 97 auto that = reinterpret_cast<NativeReferenceHelper*>(ref); in FirstPassCallBack() local 98 that->obj_.FreeGlobalHandleAddr(); in FirstPassCallBack() 103 auto that = reinterpret_cast<NativeReferenceHelper*>(ref); in SecondPassCallBack() local 104 if (that->callback_ != nullptr) { in SecondPassCallBack() 105 that->callback_(that->vm_); in SecondPassCallBack() 107 that->callback_ = nullptr; in SecondPassCallBack()
|
| /arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
| D | code_sink.cpp | 28 * Code sinking optimization attempts to sink operations that is needed only in 29 * a particular execution path but are performed on paths that do not need 50 * - Instructions that can throw an exception 56 * - Loads that may be aliased by following stores in a basic block 108 // Ensures that we do not move in or out monitored section in ProcessBlock() 139 …* Check that an instruction can be sunk. Then check that dominated blocks are acceptable for sink… 145 // Save stores to be sure we do not sink a load instruction that may be in SinkInstruction() 151 // Check that instruction can be sunk in SinkInstruction() 185 * Check that candidate dominates all users of inst. 218 // Check that all uses are dominated by the candidate in IsAcceptableTarget()
|
| /arkcompiler/ets_runtime/ecmascript/napi/include/ |
| D | jsnapi.h | 153 inline CopyableGlobal(const CopyableGlobal &that) in CopyableGlobal() argument 155 Copy(that); in CopyableGlobal() 158 inline CopyableGlobal &operator=(const CopyableGlobal &that) 160 Copy(that); 164 inline CopyableGlobal(CopyableGlobal &&that) in CopyableGlobal() argument 166 Move(that); in CopyableGlobal() 169 inline CopyableGlobal &operator=(CopyableGlobal &&that) 171 Move(that); 181 CopyableGlobal(const CopyableGlobal<S> &that) in CopyableGlobal() argument 183 Copy(that); in CopyableGlobal() [all …]
|
| /arkcompiler/runtime_core/tests/checked/ |
| D | README.md | 3 Checked tests is the tests that have additional functionality to check result of the test being run. 29 * **METHOD** (name: string) start check of specified method, all following checks that require spec… 31 * **PASS_BEFORE** (pass_name: string) select pass that is right before the specified one 33 * **INST_NOT** (inst: pattern) equal to `NOT INST`, i.e. check that instruction is not exist 38 * **SKIP_IF** (condition) if condition is `true`, skip all commands from that to end of this checker
|
| /arkcompiler/ets_runtime/docs/ |
| D | overview.md | 26 …system consists of an interpreter that executes bytecodes, inline caching that stores hidden class… 45 … ensure security and performance, ArkCompiler JS Runtime selects the code that supports strict but… 49 …e. ArkCompiler JS Runtime is required to provide the Actor implementation that features fast start… 51 …Compiler JS Runtime is planned to statically generate a C/C++ header file that contains the TS obj…
|