| /arkcompiler/runtime_core/tests/cts-generator/cts-template/ |
| D | checkcast.yaml | 48 Resolve object type by specified id and if an object in accumulator can be cast to the 58 description: Check that null object reference can be cast to any type 61 'null' object reference can be cast to every type. 100 description: Check that null object reference can be cast to any type 103 'null' object reference can be cast to every type. 150 description: Check that null object reference can be cast to any array type 153 'null' object reference can be cast to every type. 193 description: Check that null object reference can be cast to any array type 196 'null' object reference can be cast to every type. 243 description: Check that any object can be cast to the base type [all …]
|
| /arkcompiler/runtime_core/docs/ |
| D | doxygen.config | 12 # For lists, items can also be appended using: 37 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This 43 # Using the PROJECT_BRIEF tag one can provide an optional one line description 49 # With the PROJECT_LOGO tag one can specify a logo or an icon that is included 66 # option can be useful when feeding doxygen a huge amount of source files, where 155 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. 157 # part of the path. The tag can be used to show relative paths in the file list. 161 # Note that you can specify absolute paths here, but also relative paths, which 167 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the 177 # less readable) file names. This can be useful is your file systems doesn't [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 …of some opcodes (about immediate number and accumulator), so that the bytecode can be more compact. 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. 46 4. The layout of literalarrays can be random.
|
| D | memory-management-SW-requirements.md | 12 Garbage collector(GC) automatically recycles memory that it can prove will never be used again. 21 - Arena Allocator (objects can be deallocated at once(list of arenas, almost at once - O(number of … 37 - Concurrent generational GC (optional - we can disable generational mode) 51 We can use profile to choose MM configuration for application (for example: we can choose non-compa…
|
| D | memory-management.md | 68 Mark word depends on configuration and can have different sizes and layout. So here all possible co… 107 However, we can also support such version of the object header(Hash is stored just after the object… 228 …pport for pool extension and reduction(i.e., we can add another memory chunk to the allocator, and… 240 It is a region-based allocator, i.e., all allocated in region/arena objects can be efficiently deal… 249 So, if we can hold JIT memory usage at some reasonable level - Arena Allocator ideally fits JIT req… 256 This allocator can be tuned to provide more performance. 257 For example, if we have some callgraph info, we can use it and allocate code for connected methods … 288 Humongous objects can be allocated just by proxying requests to the OS(but keep reference to it som… 301 We can use profile information about allocation size for improving main allocator metrics. 302 If we see a very popular allocation size in profile, we can add it as an explicit segregated size a… [all …]
|
| D | runtime-class.md | 5 …object (instance of `panda.Class` or other in case of plugin-related code) can be obtained using `… 11 …dereference to get `panda::Class` from mirror class and vice versa. But we can use composition to … 73 In common places where language context can be different we can use `panda::Class::GetManagedObject…
|
| D | design-of-interpreter.md | 55 with the machine-readable ISA we can re-use this information in many places already now, e.g.: 85 and foreign (declared elsewhere). Local entities can be accessed directly by the offset 132 1. Interpreters are by nature slower than native code execution. Slowdown can be explained by: 147 nature slower) can even beat sometimes a non-stackless interpreter for a register-based 172 and can be reduced for memory-constrained targets and to 64 bits (using NaN-tagging technique). 175 hardcoded by design, it can be reconfigured for platforms where performance may benefit from 192 constraint, which can be relaxed even further with the stackless interpreter (see above). 216 A general overview of managed assembly languages can be found [here](overview-of-managed-assemblers…
|
| D | glossary.md | 46 It can be used by both generational and concurrent collectors. 47 It can be used for tracking references from tenured generation to the young generation and 56 that it can prove will never be used again. 63 Safepoint is used as a point at which we can safely stop the thread, and at this point, all 68 * **Precise GC** deals only with exact/sure references, i.e. it knows object layout and can
|
| D | coding-style.md | 3 …google code style](https://google.github.io/styleguide/cppguide.html) (you can get google config l… 26 10. Always explicitly mark fall through in switch … case. Google uses its own macro, we can agree o… 49 Temporary you can use this:
|
| D | rationale-for-bytecode.md | 27 ones. A program written for such abstract CPU can be run on any real hardware with the help of a 40 Just as real CPUs can expose different instruction set architectures, there is no universal way of 73 can be represented with a single byte, while register-based `add reg_dst, reg_src1, reg_src2` may 81 According to our experiment, uncompressed register-based bytecode can be reduced by ~26% 100 by some bytecodes. With this tweak, our example can be rewritten as follows: 172 instruction lacks a wide-range form, we can prepare operands for it with moves that have all 175 With such approach, we can carefully introduce various "overloads" for instruction when it could
|
| /arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
| D | object_type_check_elimination.cpp | 77 // If we can't resolve klass in runtime we must throw exception, so we check NullPtr after in TryEliminateIsInstance() 78 // But we can't change the IsInstance to Deoptimize, because we can resolve after compilation in TryEliminateIsInstance() 80 // If we can't replace IsInstance, we should reset ObjectTypeInfo for input in TryEliminateIsInstance() 99 // If we can't replace IsInstance, we should reset ObjectTypeInfo for input in TryEliminateIsInstance() 112 // If we can't resolve klass in runtime we must throw exception, so we check NullPtr after in TryEliminateCheckCast() 113 // But we can't change the CheckCast to Deoptimize, because we can resolve after compilation in TryEliminateCheckCast() 115 // If we can't replace CheckCast, we should reset ObjectTypeInfo for input. in TryEliminateCheckCast() 119 // Null can be cast to every type. in TryEliminateCheckCast() 136 // If we can't replace CheckCast, we should reset ObjectTypeInfo for input. in TryEliminateCheckCast()
|
| D | code_sink.cpp | 46 * Generally we can move only instructions with no side-effects. 47 * We can't move: 50 * - Instructions that can throw an exception 64 // Iteratively sink instructions. On each iteration an instruction can be in RunImpl() 92 * If instruction can be sunk, it is erased from it's basic block and inserted 139 …* Check that an instruction can be sunk. Then check that dominated blocks are acceptable for sink… 151 // Check that instruction can be sunk in SinkInstruction() 153 …// We can't move instruction with REFERENCE input throw SaveState(GC can moved or delete the objec… in SinkInstruction() 216 ASSERT_PRINT(loop == cand_loop || loop->IsInside(cand_loop), "Can sink only into outer loop"); in IsAcceptableTarget() 222 …// We can't insert instruction before Phi, therefore do not sink into blocks where one of users is… in IsAcceptableTarget()
|
| /arkcompiler/ets_frontend/ts2panda/scripts/ |
| D | diagnosticMessages.json | 22 "The 'readonly' modifier can only appear on a property declaration or index signature.": { 102 "A 'continue' statement can only be used within an enclosing iteration statement.": { 106 "A 'break' statement can only be used within an enclosing iteration or switch statement.": { 114 "A 'return' statement can only be used within a function body.": { 126 "A 'continue' statement can only jump to a label of an enclosing iteration statement.": { 130 "A 'break' statement can only jump to a label of an enclosing statement.": { 170 "The 'const' declarations can only be declared inside a block.": { 178 "The 'let' declarations can only be declared inside a block.": { 202 "Classes can only extend a single class.": { 282 "An import declaration can only be used in a namespace or module.": { [all …]
|
| /arkcompiler/runtime_core/docs/bc_verification/ |
| D | absint_checks.md | 27 They can help to detect usage of inconsistent information in registers in exception handlers. 29 ### Checks of exceptions, that can be thrown in runtime 33 This is definitely not normal mode of control-flow in code, so verifier can detect such situations … 37 Can help inconsistency between method signature and type of actual return value
|
| /arkcompiler/runtime_core/docs/diagrams/ |
| D | static-analyzer-gc-func-list-gen.puactivity | 16 title Generation list of GC unsafe functions(can have GC happen during work) 20 :List of functions which can have GC inside; 33 :Generate list of all functions which can call GC (GC FUNCTION LIST);
|
| /arkcompiler/runtime_core/bytecode_optimizer/ |
| D | reg_acc_alloc.cpp | 84 * Return true if instruction can read the accumulator. 100 * Return true if instruction can write the accumulator. 108 * Decide if user can use accumulator as source. 111 * Return true, if user can be optimized. 149 * Check if all the Phi inputs and outputs can use the accumulator register. 151 * Return true, if Phi can be optimized. 157 // TODO(rtakacs): there can be cases when the input/output of a Phi is an other Phi. in IsPhiAccReady() 186 * For most insts we can use their src_reg on the acc-read position 245 // Mark Phi instructions if they can be optimized for acc. in RunImpl() 254 // Mark instructions if they can be optimized for acc. in RunImpl()
|
| /arkcompiler/runtime_core/runtime/coretypes/ |
| D | array.cpp | 57 // Order is matters here: GC can read data before it copied if we set length first. in Create() 63 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in Create() 81 …// Without full memory barrier it is possible that architectures with weak memory order can try fe… in Create() 100 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in Create() 115 // Order is matters here: GC can read data before it copied if we set length first. in CreateTagged() 123 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in CreateTagged()
|
| /arkcompiler/runtime_core/compiler/docs/ |
| D | object_type_check_elimination_doc.md | 18 `IsInstance` is replaced by 1 if an object in input can be cast to the resolved type, else replaced… 23 …an object in input can't be cast to the resolved type `CheckCast` is replaced by deoptimize, else …
|
| /arkcompiler/runtime_core/tests/cts-generator/ |
| D | README.md | 89 `CTS_TEST_SELECT_OPTION` variable can be used. 109 All test can be executed using `make cts-generated` command, test with `ignore` runner options will… 110 If you want to run all tests, you can do the following: 117 Also you can start test-runner.rb directly: 164 3. If all test passed, congrats! Now you can enable tests for regular 168 4. If some tests failed, you can update them, if there are problems with tests. If tests are correc…
|
| /arkcompiler/runtime_core/libpandabase/mem/ |
| D | pool_map.h | 48 // We can't create AllocatorInfo without correct pointer to the allocator header in AllocatorInfo() 73 // It can be used to find which allocator has been used to allocate an object. 103 // that we can have a data race here - concurrent in Initialize() 105 // However, we can't get an access for this fields in Initialize()
|
| /arkcompiler/ets_frontend/test262/ |
| D | README.md | 3 …e contains a list of ES5 test cases. If useful cases are found missing, you can add them as needed. 4 …cept those filtered out with'es6id'. If useful cases are found missing, you can add them as needed. 5 …cept those filtered out with'es6id'. If useful cases are found missing, you can add them as needed. 6 …t of internationalization test cases. If you find useful cases missing, you can add them as needed. 7 … that do not meet the requirements. If useful cases are found missing, you can add them according … 8 …ernationalization use cases. If useful cases are found to be missing, they can be added in the spe… 167 …hed, the following files are generated under directory `out/test262/` (you can specified it in `te…
|
| /arkcompiler/runtime_core/runtime/mem/gc/heap-space-misc/ |
| D | crossing_map.h | 33 // TODO(aemelenko): Now, we can't change the granularity parameter here 58 // This element (or map) can be used to get the first object address, which starts inside this page… 89 * @param next_obj_addr - pointer to the next object (object header). It can be nullptr. 90 * @param prev_obj_addr - pointer to the previous object (object header). It can be nullptr. 140 // According Status bits, we can use the offset value in such a way: 145 // We can start our range iteration from this element. 232 // We must be sure that we can use such type for all possible obj offsets inside one page
|
| /arkcompiler/runtime_core/runtime/mem/ |
| D | alloc_config.h | 31 …* we can cast void* to object and get the specific size of this object, otherwise we should believ… 32 …* can record only approximate size. Because of this we force allocators to use specific config for… 76 * @param next_obj_addr - pointer to the next object (object header). It can be nullptr. 77 * @param prev_obj_addr - pointer to the previous object (object header). It can be nullptr. 177 // We can't call CrossingMap when we don't use it in FindFirstObjInCrossingMap() 234 // We can't call CrossingMap when we don't use it in FindFirstObjInCrossingMap() 290 * @param next_obj_addr - pointer to the next object (object header). It can be nullptr. 291 * @param prev_obj_addr - pointer to the previous object (object header). It can be nullptr. 366 // We can't call CrossingMap when we don't use it in FindFirstObjInCrossingMap()
|
| /arkcompiler/ets_runtime/ecmascript/mem/ |
| D | concurrent_sweeper.h | 30 // REQUEST_DISABLE can be ragarded as enable and will be changed into disable after finishing sweep… 49 // Help to finish sweeping task. It can be called through js thread 51 // Ensure task finish. It can be called through js thread
|
| /arkcompiler/runtime_core/compiler/optimizer/code_generator/target/aarch64/ |
| D | regfile.cpp | 76 // We can safely skip saving THREAD_REG if it is in the regmask in SetCalleeSaved() 77 // of the regdescr (i.e. regalloc can not use it). in SetCalleeSaved() 94 // We can safely skip saving THREAD_REG if it is in the regmask in SetUsedRegs() 95 // of the regdescr (i.e. regalloc can not use it). in SetUsedRegs()
|