/arkcompiler/ets_runtime/test/typeinfer/automatedcases/ |
D | binaryArithmeticControlFlowGraphNotTooLarge.ts | 25 …blocks = this.blocks; if (this.first) { a = blocks[0] - 1; a = (a << 3) | (a >>> … 28 let a, b, c, d, ab, bc, cd, da, blocks = this.blocks; 37 AssertType(blocks, "any"); 38 AssertType(this.blocks, "any"); 45 a = blocks[0] - 1; 46 AssertType(a = blocks[0] - 1, "number"); 48 AssertType(blocks[0] - 1, "number"); 49 AssertType(blocks[0], "any"); 50 AssertType(blocks, "any"); 67 d = ((a & 0xefcdab89) | (~a & 0x98badcfe)) + blocks[1] + 271733878; [all …]
|
/arkcompiler/runtime_core/libpandabase/utils/ |
D | murmur3_hash.h | 96 auto blocks = reinterpret_cast<uintptr_t>(key); in MurmurHash3() local 100 j = *reinterpret_cast<uint8_t *>(blocks); in MurmurHash3() 101 blocks += sizeof(uint8_t); in MurmurHash3() 117 auto tail = blocks; in MurmurHash3() 147 auto blocks = reinterpret_cast<uintptr_t>(mutf8_string); in MurmurHash3String() local 153 i = *reinterpret_cast<uint8_t *>(blocks); in MurmurHash3String() 154 blocks += sizeof(uint8_t); in MurmurHash3String()
|
/arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
D | move_constants.cpp | 155 for (auto blocks : user_dominating_blocks_) { in FindCommonDominator() local 156 if (i >= blocks->size()) { in FindCommonDominator() 160 auto blk = (*blocks)[blocks->size() - i - 1]; in FindCommonDominator()
|
/arkcompiler/runtime_core/compiler/docs/ |
D | try_catch_blocks_ir.md | 1 # Try-catch blocks IR building 64 `Try-begin` and `Try-end` - are try boundaries basic blocks. Both of them have one normal control-f… 66 …block to the catch-handlers are needed for correct linear order of basic blocks, since program flo… 142 …It contains pointer to the `Try-end` and maps exceptions types to the catch-handlers basic blocks. 148 - vector of try-begin blocks in order they are declared in the bytecode; 151 ## Try-catch blocks processing in the RegAlloc for bytecode-optimizer
|
D | ir_builder.md | 44 be entries to the basic blocks. 45 2. Create try catch blocks. 46 3. Connect the basic blocks, hereby making a CFG. 91 blocks = [] 93 blocks.resize(bytecode.instructions.size()) 97 blocks[inst.pc] = graph.new_bb() 100 blocks[inst.next.target_pc] = graph.new_bb() 102 # Add control flow edges between created basic blocks
|
D | cleanup_doc.md | 5 It also removes empty basic blocks when it is possible and merges a linear basic block sequence to … 20 Removing dead code reduces the number of instructions. Merging linear path of blocks in one big blo… 22 After any optimization which deletes instructions some basic blocks may become empty or may contain… 23 …rocessing such cases in other transformation passes it is better to remove such blocks immediately. 27 …cial triangle" situation, when there are actually two edges between same blocks, but our way to st… 55 ### Remove empty blocks 57 Walk through all basic blocks and check whether they are suitable to remove. If basic block contain… 72 At the same time removing dead instruction may create new empty basic blocks. That's why there are … 75 ### Merge linear blocks 77 Finally, we visits basic blocks once again, and if: [all …]
|
D | avoid-calculating-start-of-array.md | 21 a chain of basic blocks that comprise a single control flow path and are not
|
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
D | graph_cloner.cpp | 234 auto it = std::find(unroll_data->blocks->begin(), unroll_data->blocks->end(), back_edge); in SplitBackEdge() 235 ASSERT(it != unroll_data->blocks->end()); in SplitBackEdge() 236 unroll_data->blocks->erase(it); in SplitBackEdge() 258 unroll_data->blocks = allocator->New<ArenaVector<BasicBlock *>>(allocator->Adapter()); in PrepareLoopToUnroll() 259 unroll_data->blocks->resize(loop->GetBlocks().size()); in PrepareLoopToUnroll() 260 std::copy(loop->GetBlocks().begin(), loop->GetBlocks().end(), unroll_data->blocks->begin()); in PrepareLoopToUnroll() 272 unroll_data->blocks->at(0) = header_split; in PrepareLoopToUnroll() 312 for (auto block : *unroll_data->blocks) { in UpdateUsersAfterNoSideExitsUnroll() 396 auto front_block = unroll_data->blocks->front(); in BuildLoopUnrollControlFlow() 400 for (auto block : *unroll_data->blocks) { in BuildLoopUnrollControlFlow() [all …]
|
D | graph_cloner.h | 53 ArenaVector<BasicBlock *> *blocks {nullptr}; 62 ArenaVector<BasicBlock *> *blocks {nullptr}; 135 … CloneBlocksAndInstructions<InstCloneType::CLONE_ALL, true>(*unroll_data->blocks, GetGraph()); in UnrollLoopBody() 217 void CloneBlocksAndInstructions(const ArenaVector<BasicBlock *> &blocks, Graph *target_graph) in CloneBlocksAndInstructions() argument 223 for (const auto &block : blocks) { in CloneBlocksAndInstructions()
|
D | graph_checker.cpp | 607 auto blocks = GetGraph()->GetTryBeginBlocks(); in IsTryCatchDomination() local 609 …std::find_if(blocks.begin(), blocks.end(), [user_block](auto &bb) { return bb->IsDominate(user_blo… in IsTryCatchDomination() 610 return it != blocks.end(); in IsTryCatchDomination()
|
D | dump.cpp | 542 auto &blocks = GetAnalysis<LinearOrder>().IsValid() ? GetBlocksLinearOrder() : GetBlocksRPO(); in Dump() local 543 for (const auto &block_it : blocks) { in Dump()
|
/arkcompiler/runtime_core/compiler/optimizer/analysis/ |
D | loop_analyzer.h | 175 static inline bool IsEqualBlocks(const ArenaVector<T> &blocks, const ArenaVector<T> &others) in IsEqualBlocks() argument 177 …return blocks.size() == others.size() && std::is_permutation(blocks.begin(), blocks.end(), others.… in IsEqualBlocks()
|
D | linear_order.cpp | 100 void LinearOrder::MakeLinearOrder(const T &blocks) in MakeLinearOrder() argument 103 linear_blocks_.reserve(blocks.size()); in MakeLinearOrder() 106 for (auto block : blocks) { in MakeLinearOrder()
|
D | linear_order.h | 62 void MakeLinearOrder(const T &blocks);
|
/arkcompiler/runtime_core/compiler/tests/ |
D | loop_analyzer_test.cpp | 25 void CheckVectorEqualSet(ArenaVector<T *> blocks, std::set<T *> &&excepct) in CheckVectorEqualSet() argument 27 ASSERT_EQ(blocks.size(), excepct.size()); in CheckVectorEqualSet() 30 for (auto block : blocks) { in CheckVectorEqualSet() 36 void CheckVectorEqualBlocksIdSet(ArenaVector<BasicBlock *> blocks, std::vector<int> &&bb_ids) in CheckVectorEqualBlocksIdSet() argument 42 CheckVectorEqualSet(blocks, std::move(bb_set)); in CheckVectorEqualBlocksIdSet()
|
D | unit_test.h | 147 ArenaVector<BasicBlock *> blocks(graph->GetAllocator()->Adapter()); in GetBlocksById() 149 blocks.push_back(&BB(id)); in GetBlocksById() 151 return blocks; in GetBlocksById()
|
D | basicblock_test.cpp | 25 void CheckVectorEqualSet(ArenaVector<T *> blocks, std::set<T *> &&excepct) in CheckVectorEqualSet() argument 27 ASSERT_EQ(blocks.size(), excepct.size()); in CheckVectorEqualSet() 30 for (auto block : blocks) { in CheckVectorEqualSet() 36 void CheckVectorEqualBlocksIdSet(ArenaVector<BasicBlock *> blocks, std::vector<int> &&bb_ids) in CheckVectorEqualBlocksIdSet() argument 42 CheckVectorEqualSet(blocks, std::move(bb_set)); in CheckVectorEqualBlocksIdSet()
|
D | liveness_analyzer_test.cpp | 29 …void Check_Subsequence(const ArenaVector<BasicBlock *> &blocks, const ArenaVector<BasicBlock *> &&… in Check_Subsequence() argument 32 for (auto block : blocks) { in Check_Subsequence() 111 const auto &blocks = GetGraph()->GetAnalysis<LivenessAnalyzer>().GetLinearizedBlocks(); in TEST_F() local 112 …Check_Subsequence(blocks, GetBlocksById(GetGraph(), {0, 2, 4, 5, 11, 12, 13, 1, 3, 6, 7, 8, 9, 10,… in TEST_F() 182 const auto &blocks = GetGraph()->GetAnalysis<LivenessAnalyzer>().GetLinearizedBlocks(); in TEST_F() local 183 Check_Subsequence(blocks, in TEST_F()
|
/arkcompiler/runtime_core/tests/checked/ |
D | ifcvt.pa | 24 # Construction before is necessary for compare the quantity of base blocks after pass "MemoryCoal… 43 # Construction after is necessary for compare the quantity of base blocks after pass "MemoryCoale…
|
D | README.md | 36 * **BLOCK_COUNT** () equal to `IR_COUNT ("BB ")`, i.e. search specified basic blocks and counts the…
|
/arkcompiler/runtime_core/libark_defect_scan_aux/ |
D | graph.cpp | 188 auto &blocks = graph_->GetBlocksRPO(); in GetBasicBlockList() local 189 for (auto &bb : blocks) { in GetBasicBlockList()
|
/arkcompiler/runtime_core/docs/ |
D | ir_format.md | 119 Class **Graph** allows creating new instructions, adding and removing blocks, constructing RPO, Dom… 129 … adding and removing successors and predecessors, getting dominate block and dominated blocks e.t.c 146 Empty blocks pass covers this situation and do not remove such an empty block when there are `Phi` … 148 … form ideas and experiments show that this is less effective, as we keep to much `Mov`-only blocks. 236 …blocks list for reverse post-order traversal. In RPO iteration, a BasicBlock is visited before any… 238 Class **RPO** allows constructing RPO vector, adding or removing blocks to the vector. 243 …ach BasicBlock has a pointer on dominate block and vector of pointers to blocks which he dominates… 286 Class **GraphVisitor** allows to go through the blocks of the graph in RPO order and then all the i… 325 ### Create blocks and CFG 375 // Specify blocks to visit and their order
|
D | on-stack-replacement.md | 62 In OSR-methods special osr-entry flag is added to the loop-header basic blocks and some optimizatio…
|
D | file_format.md | 492 | `tries_size` | `uleb128` | Number of try blocks. | 494 | `try_blocks` | `TryBlock[]` | Array of try blocks. The array has `tries_size` elements in … 506 | `num_catches` | `uleb128` | Number of catch blocks associated with the `try` block. | 507 …y of `catch` blocks associated with the `try` block. The array has `num_catches` elements in [Catc…
|
/arkcompiler/ets_runtime/docs/ |
D | overview.md | 49 …s able to share immutable objects, methods, and bytecodes (built-in code blocks and constant strin…
|