Home
last modified time | relevance | path

Searched refs:blocks (Results 1 – 25 of 29) sorted by relevance

12

/arkcompiler/ets_runtime/test/typeinfer/automatedcases/
DbinaryArithmeticControlFlowGraphNotTooLarge.ts25blocks = 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/
Dmurmur3_hash.h96 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/
Dmove_constants.cpp155 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/
Dtry_catch_blocks_ir.md1 # 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
Dir_builder.md44 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
Dcleanup_doc.md5 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 …]
Davoid-calculating-start-of-array.md21 a chain of basic blocks that comprise a single control flow path and are not
/arkcompiler/runtime_core/compiler/optimizer/ir/
Dgraph_cloner.cpp234 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 …]
Dgraph_cloner.h53 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()
Dgraph_checker.cpp607 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()
Ddump.cpp542 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/
Dloop_analyzer.h175 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()
Dlinear_order.cpp100 void LinearOrder::MakeLinearOrder(const T &blocks) in MakeLinearOrder() argument
103 linear_blocks_.reserve(blocks.size()); in MakeLinearOrder()
106 for (auto block : blocks) { in MakeLinearOrder()
Dlinear_order.h62 void MakeLinearOrder(const T &blocks);
/arkcompiler/runtime_core/compiler/tests/
Dloop_analyzer_test.cpp25 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()
Dunit_test.h147 ArenaVector<BasicBlock *> blocks(graph->GetAllocator()->Adapter()); in GetBlocksById()
149 blocks.push_back(&BB(id)); in GetBlocksById()
151 return blocks; in GetBlocksById()
Dbasicblock_test.cpp25 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()
Dliveness_analyzer_test.cpp29 …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/
Difcvt.pa24 # 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…
DREADME.md36 * **BLOCK_COUNT** () equal to `IR_COUNT ("BB ")`, i.e. search specified basic blocks and counts the…
/arkcompiler/runtime_core/libark_defect_scan_aux/
Dgraph.cpp188 auto &blocks = graph_->GetBlocksRPO(); in GetBasicBlockList() local
189 for (auto &bb : blocks) { in GetBasicBlockList()
/arkcompiler/runtime_core/docs/
Dir_format.md119 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.
236blocks 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
Don-stack-replacement.md62 In OSR-methods special osr-entry flag is added to the loop-header basic blocks and some optimizatio…
Dfile_format.md492 | `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/
Doverview.md49 …s able to share immutable objects, methods, and bytecodes (built-in code blocks and constant strin…

12