/arkcompiler/runtime_core/compiler/tools/ |
H A D | draw_cfg.py | 60 def __init__(self, method: str, blocks: List[BasicBlock]) -> None: 62 self.blocks = blocks 69 self.blocks = [] 74 self.blocks.append(self.block) 80 self.functions.append(Function(self.method, self.blocks)) 81 self.blocks = [] 134 for block in function.blocks: 136 for block in function.blocks:
|
/arkcompiler/runtime_core/libpandabase/utils/ |
H A D | murmur3_hash.h | 98 auto blocks = reinterpret_cast<uintptr_t>(key); in MurmurHash3() local 102 j = *reinterpret_cast<uint8_t *>(blocks); in MurmurHash3() 103 blocks += sizeof(uint8_t); in MurmurHash3() 118 // blocks is a pointer to the end of 32bits section in MurmurHash3() 119 auto tail = blocks; in MurmurHash3() 149 auto blocks = reinterpret_cast<uintptr_t>(mutf8_string); in MurmurHash3String() local 155 i = *reinterpret_cast<uint8_t *>(blocks); in MurmurHash3String() 156 blocks += sizeof(uint8_t); in MurmurHash3String()
|
/arkcompiler/runtime_core/static_core/libpandabase/utils/ |
H A D | murmur3_hash.h | 95 auto blocks = reinterpret_cast<uintptr_t>(key); in MurmurHash3() local 99 j = *reinterpret_cast<uint8_t *>(blocks); in MurmurHash3() 100 blocks += sizeof(uint8_t); in MurmurHash3() 115 // blocks is a pointer to the end of 32bits section in MurmurHash3() 116 auto tail = blocks; in MurmurHash3() 146 auto blocks = reinterpret_cast<uintptr_t>(mutf8String); in MurmurHash3String() local 152 i = *reinterpret_cast<uint8_t *>(blocks); in MurmurHash3String() 153 blocks += sizeof(uint8_t); in MurmurHash3String()
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/analysis/ |
H A D | reg_alloc_verifier.cpp | 142 void InitStates(ArenaUnorderedMap<uint32_t, BlockStates> *blocks, const Graph *graph) in InitStates() argument 150 [[maybe_unused]] auto res = blocks->try_emplace(bb->GetId(), usedRegs, usedVregs, MAX_NUM_STACK_SLOTS, in InitStates() 156 void CheckAllBlocksVisited([[maybe_unused]] const ArenaUnorderedMap<uint32_t, BlockStates> &blocks) in CheckAllBlocksVisited() argument 159 for (auto &blockState : blocks) { in CheckAllBlocksVisited() 218 /* Phi instructions are resolved into moves at the end of predecessor blocks, in Merge() 356 ArenaUnorderedMap<uint32_t, BlockStates> *blocks) in PropagateBlockState() 362 auto &succState = blocks->at(succ->GetId()); in PropagateBlockState() 376 ArenaUnorderedMap<uint32_t, BlockStates> blocks(GetGraph()->GetLocalAllocator()->Adapter()); in RunImpl() 377 InitStates(&blocks, GetGraph()); in RunImpl() 386 blocks in RunImpl() 354 PropagateBlockState(BasicBlock *currentBlock, BlockState *currentState, const ArenaVector<LocationState> &immediates, ArenaUnorderedMap<uint32_t, BlockStates> *blocks) PropagateBlockState() argument [all...] |
H A D | loop_analyzer.h | 181 static inline bool IsEqualBlocks(const ArenaVector<T> &blocks, const ArenaVector<T> &others) in IsEqualBlocks() argument 183 return blocks.size() == others.size() && std::is_permutation(blocks.begin(), blocks.end(), others.begin()); in IsEqualBlocks()
|
H A D | linear_order.h | 62 void MakeLinearOrder(const T &blocks); 69 // mark pre exit blocks without Retrurn and ReturnVoid instructions
|
/arkcompiler/runtime_core/static_core/compiler/tests/ |
H A D | linear_order_test.cpp | 73 auto blocks = GetGraph()->GetVectorBlocks(); in Reset() local 74 std::for_each(std::begin(blocks), std::end(blocks), [](BasicBlock *b) { in Reset() 83 const auto &blocks = GetGraph()->GetBlocksLinearOrder(); in GetOrderedBasicBlock() local 84 return *(std::find_if(std::begin(blocks), std::end(blocks), [id](BasicBlock *b) { return b->GetId() == id; }) + in GetOrderedBasicBlock() 91 const auto &blocks = GetGraph()->GetBlocksLinearOrder(); in CheckOrder() local 93 std::find_if(std::begin(blocks), std::end(blocks), [id](BasicBlock *b) { return b->GetId() == id; }) + 1U; in CheckOrder() 95 while (actualIt != std::end(blocks) in CheckOrder() 268 const auto &blocks = graph->GetBlocksLinearOrder(); TEST_F() local [all...] |
H A D | basicblock_test.cpp | 25 void CheckVectorEqualSet(Blocks blocks, std::set<T *> &&excepct) in CheckVectorEqualSet() argument 27 ASSERT_EQ(blocks.size(), excepct.size()); in CheckVectorEqualSet() 30 for (auto block : blocks) { in CheckVectorEqualSet() 37 void CheckVectorEqualBlocksIdSet(Blocks blocks, std::vector<int> &&bbIds) in CheckVectorEqualBlocksIdSet() argument 43 CheckVectorEqualSet(std::move(blocks), std::move(bbSet)); in CheckVectorEqualBlocksIdSet() 286 const auto &blocks = GetGraph()->GetBlocksLinearOrder(); in TEST_F() local 289 CheckBlockFalseSuccessorPosition(&BB(2U), blocks); in TEST_F() 290 CheckBlockFalseSuccessorPosition(&BB(3U), blocks); in TEST_F() 347 const auto &blocks = GetGraph()->GetBlocksLinearOrder(); in TEST_F() local 350 CheckBlockFalseSuccessorPosition(&BB(2U), blocks); in TEST_F() [all...] |
/arkcompiler/runtime_core/compiler/optimizer/optimizations/ |
H A D | move_constants.cpp | 130 // method does not mutate user but returns non const basic blocks in GetDominators() 153 for (auto blocks : user_dominating_blocks_) { in FindCommonDominator() 154 if (i >= blocks->size()) { in FindCommonDominator() 158 auto blk = (*blocks)[blocks->size() - i - 1]; in FindCommonDominator()
|
/arkcompiler/runtime_core/compiler/optimizer/ir/ |
H A 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() 244 * - Split loop-header into two blocks, header phis will not be cloned: 259 unroll_data->blocks = allocator->New<ArenaVector<BasicBlock *>>(allocator->Adapter()); in PrepareLoopToUnroll() 260 CHECK_NOT_NULL(unroll_data->blocks); in PrepareLoopToUnroll() 261 unroll_data->blocks->resize(loop->GetBlocks().size()); in PrepareLoopToUnroll() 262 std::copy(loop->GetBlocks().begin(), loop->GetBlocks().end(), unroll_data->blocks->begin()); in PrepareLoopToUnroll() 274 unroll_data->blocks in PrepareLoopToUnroll() [all...] |
H A D | graph_cloner.h | 53 ArenaVector<BasicBlock *> *blocks {nullptr}; 62 ArenaVector<BasicBlock *> *blocks {nullptr}; 128 ASSERT_PRINT(IsLoopSingleBackEdgeExitPoint(loop), "Cloning blocks doesn't have single entry/exit point"); in UnrollLoopBody() 135 CloneBlocksAndInstructions<InstCloneType::CLONE_ALL, true>(*unroll_data->blocks, GetGraph()); in UnrollLoopBody() 179 // Cloned blocks and instructions getters 218 void CloneBlocksAndInstructions(const ArenaVector<BasicBlock *> &blocks, Graph *target_graph) in CloneBlocksAndInstructions() argument 224 for (const auto &block : blocks) { in CloneBlocksAndInstructions()
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
H A D | move_constants.cpp | 156 // method does not mutate user but returns non const basic blocks in GetDominators() 179 for (auto blocks : userDominatingBlocks_) { in FindCommonDominator() 180 if (i >= blocks->size()) { in FindCommonDominator() 184 auto blk = (*blocks)[blocks->size() - i - 1]; in FindCommonDominator()
|
/arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
H A D | graph_cloner.cpp | 240 auto it = std::find(unrollData->blocks->begin(), unrollData->blocks->end(), backEdge); in SplitBackEdge() 241 ASSERT(it != unrollData->blocks->end()); in SplitBackEdge() 242 unrollData->blocks->erase(it); in SplitBackEdge() 251 * - Split loop-header into two blocks, header phis will not be cloned: 265 unrollData->blocks = allocator->New<ArenaVector<BasicBlock *>>(allocator->Adapter()); in PrepareLoopToUnroll() 266 unrollData->blocks->resize(loop->GetBlocks().size()); in PrepareLoopToUnroll() 267 std::copy(loop->GetBlocks().begin(), loop->GetBlocks().end(), unrollData->blocks->begin()); in PrepareLoopToUnroll() 279 unrollData->blocks->at(0) = headerSplit; in PrepareLoopToUnroll() 317 for (auto block : *unrollData->blocks) { in UpdateUsersAfterNoSideExitsUnroll() [all...] |
H A D | graph_cloner.h | 60 ArenaVector<BasicBlock *> *blocks {nullptr}; 70 ArenaVector<BasicBlock *> *blocks {nullptr}; 135 ASSERT_PRINT(IsLoopSingleBackEdgeExitPoint(loop), "Cloning blocks doesn't have single entry/exit point"); in UnrollLoopBody() 142 CloneBlocksAndInstructions<InstCloneType::CLONE_ALL, true>(*unrollData->blocks, GetGraph()); in UnrollLoopBody() 211 void CloneBlocksAndInstructions(const ArenaVector<BasicBlock *> &blocks, Graph *targetGraph) in CloneBlocksAndInstructions() argument 217 for (const auto &block : blocks) { in CloneBlocksAndInstructions() 283 // Cloned blocks and instructions getters
|
H A D | visualizer_printer.cpp | 64 void VisualizerPrinter::PrintDependences(const std::string &preffix, const T &blocks) in PrintDependences() argument 67 for (const auto &block : blocks) { in PrintDependences()
|
H A D | visualizer_printer.h | 54 void PrintDependences(const std::string &preffix, const T &blocks);
|
/arkcompiler/runtime_core/compiler/optimizer/analysis/ |
H A 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.begin()); in IsEqualBlocks()
|
H A 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() 188 // Make blocks order sorted by bytecode PC in RunImpl() 204 std::cerr << "There are unreachable blocks:\n"; in RunImpl()
|
H A D | linear_order.h | 62 void MakeLinearOrder(const T &blocks);
|
/arkcompiler/runtime_core/compiler/tests/ |
H A 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()
|
H A 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() 105 * blocks: B4, B5, B6 110 * blocks: B8, B9, B10, B11 115 * blocks: B3, B7, B12, B13, B14, B15, B16, B17, B18, B19
|
H A 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()
|
/arkcompiler/runtime_core/libark_defect_scan_aux/ |
H A D | graph.cpp | 193 auto &blocks = graph_->GetBlocksRPO(); in GetBasicBlockList() local 194 for (auto &bb : blocks) { in GetBasicBlockList()
|
/arkcompiler/ets_runtime/ecmascript/compiler/ |
H A D | bytecode_circuit_builder.h | 158 ChunkVector<BytecodeRegion *> preds; // List of predessesor blocks 159 ChunkVector<BytecodeRegion *> succs; // List of successors blocks 160 ChunkVector<BytecodeRegion *> trys; // List of trys blocks 161 ChunkVector<BytecodeRegion *> catches; // List of catches blocks 194 void EraseThisBlock(ChunkVector<BytecodeRegion *> &blocks) in EraseThisBlock() 196 auto it = std::find(blocks.begin(), blocks.end(), this); in EraseThisBlock() 197 if (it != blocks.end()) { in EraseThisBlock() 198 blocks.erase(it); in EraseThisBlock()
|
/arkcompiler/runtime_core/static_core/libllvmbackend/transforms/passes/ |
H A D | loop_peeling.cpp | 57 for (auto &block : loop->blocks()) { in ContainsDeoptimize()
|