/third_party/mesa3d/src/compiler/nir/tests/ |
H A D | control_flow_tests.cpp | 90 /* Verify the successors and predecessors. */ in TEST_F() 99 EXPECT_EQ(0, block_0->predecessors->entries); in TEST_F() 100 EXPECT_EQ(1, block_1->predecessors->entries); in TEST_F() 101 EXPECT_EQ(1, block_2->predecessors->entries); in TEST_F() 102 EXPECT_EQ(1, block_3->predecessors->entries); in TEST_F() 103 EXPECT_TRUE(_mesa_set_search(block_1->predecessors, block_0)); in TEST_F() 104 EXPECT_TRUE(_mesa_set_search(block_2->predecessors, block_1)); in TEST_F() 105 EXPECT_TRUE(_mesa_set_search(block_3->predecessors, block_2)); in TEST_F() 131 * Re-verify the predecessors and successors. in TEST_F() 141 EXPECT_EQ(0, block_0->predecessors in TEST_F() [all...] |
/third_party/skia/third_party/externals/spirv-tools/source/reduce/ |
H A D | merge_blocks_reduction_opportunity.cpp | 38 // There are two opportunities: B and C can be merged with their predecessors. in PreconditionHolds() 43 const auto predecessors = context_->cfg()->preds(successor_block_->id()); in PreconditionHolds() local 44 assert(1 == predecessors.size() && in PreconditionHolds() 47 const uint32_t predecessor_id = predecessors[0]; in PreconditionHolds() 59 const auto predecessors = context_->cfg()->preds(successor_block_->id()); in Apply() local 60 assert(1 == predecessors.size() && in Apply() 63 const uint32_t predecessor_id = predecessors[0]; in Apply()
|
/third_party/skia/third_party/externals/swiftshader/third_party/SPIRV-Tools/source/reduce/ |
H A D | merge_blocks_reduction_opportunity.cpp | 38 // There are two opportunities: B and C can be merged with their predecessors. in PreconditionHolds() 43 const auto predecessors = context_->cfg()->preds(successor_block_->id()); in PreconditionHolds() local 44 assert(1 == predecessors.size() && in PreconditionHolds() 47 const uint32_t predecessor_id = predecessors[0]; in PreconditionHolds() 59 const auto predecessors = context_->cfg()->preds(successor_block_->id()); in Apply() local 60 assert(1 == predecessors.size() && in Apply() 63 const uint32_t predecessor_id = predecessors[0]; in Apply()
|
/third_party/spirv-tools/source/reduce/ |
H A D | merge_blocks_reduction_opportunity.cpp | 38 // There are two opportunities: B and C can be merged with their predecessors. in PreconditionHolds() 43 const auto predecessors = context_->cfg()->preds(successor_block_->id()); in PreconditionHolds() local 44 assert(1 == predecessors.size() && in PreconditionHolds() 47 const uint32_t predecessor_id = predecessors[0]; in PreconditionHolds() 59 const auto predecessors = context_->cfg()->preds(successor_block_->id()); in Apply() local 60 assert(1 == predecessors.size() && in Apply() 63 const uint32_t predecessor_id = predecessors[0]; in Apply()
|
/third_party/python/Lib/ |
H A D | graphlib.py | 16 # Number of predecessors, generally >= 0. When this value falls to 0, 51 for node, predecessors in graph.items(): 52 self.add(node, *predecessors) 59 def add(self, node, *predecessors): 60 """Add a new node and its predecessors to the graph. 62 Both the *node* and all elements in *predecessors* must be hashable. 67 It is possible to add a node with no dependencies (*predecessors* is not provided) 69 is included among *predecessors* it will be automatically added to the graph with 70 no predecessors of its own. 79 nodeinfo.npredecessors += len(predecessors) [all...] |
/third_party/skia/third_party/externals/spirv-tools/source/fuzz/ |
H A D | transformation_add_opphi_synonym.cpp | 51 // predecessors. in IsApplicable() 52 std::vector<uint32_t> predecessors = ir_context->cfg()->preds(block->id()); in IsApplicable() local 55 if (predecessors.empty()) { in IsApplicable() 69 for (uint32_t pred : predecessors) { in IsApplicable() 82 uint32_t first_id = preds_to_ids[predecessors[0]]; in IsApplicable() 88 // Check that the ids corresponding to predecessors are all synonymous, have in IsApplicable() 90 for (uint32_t pred : predecessors) { in IsApplicable() 112 // the predecessors list of |block|. in IsApplicable()
|
H A D | transformation_merge_blocks.cpp | 40 auto predecessors = ir_context->cfg()->preds(second_block->id()); in IsApplicable() local 41 if (predecessors.size() != 1) { in IsApplicable() 44 auto first_block = ir_context->cfg()->block(predecessors.at(0)); in IsApplicable()
|
H A D | transformation_replace_opselect_with_conditional_branch.cpp | 82 auto predecessors = ir_context->cfg()->preds(block->id()); in IsApplicable() local 83 if (predecessors.size() != 1) { in IsApplicable() 87 uint32_t pred_id = predecessors[0]; in IsApplicable()
|
H A D | fuzzer_pass.cpp | 624 auto predecessors = GetIRContext()->cfg()->preds(header_id); in GetOrCreateSimpleLoopPreheader() local 626 assert(predecessors.size() >= 2 && in GetOrCreateSimpleLoopPreheader() 631 if (predecessors.size() == 2) { in GetOrCreateSimpleLoopPreheader() 638 header_id, predecessors[0])) { in GetOrCreateSimpleLoopPreheader() 641 maybe_preheader = &*function->FindBlock(predecessors[1]); in GetOrCreateSimpleLoopPreheader() 644 maybe_preheader = &*function->FindBlock(predecessors[0]); in GetOrCreateSimpleLoopPreheader() 663 if (predecessors.size() > 2) { in GetOrCreateSimpleLoopPreheader()
|
H A D | transformation_propagate_instruction_up.cpp | 137 // A block can have multiple identical predecessors. in Apply() 384 // Check that |block| has predecessors. in IsApplicableToBlock() 385 const auto& predecessors = ir_context->cfg()->preds(block_id); in IsApplicableToBlock() local 386 if (predecessors.empty()) { in IsApplicableToBlock() 399 return std::all_of(predecessors.begin(), predecessors.end(), in IsApplicableToBlock()
|
/third_party/skia/third_party/externals/swiftshader/third_party/SPIRV-Tools/source/fuzz/ |
H A D | transformation_add_opphi_synonym.cpp | 51 // predecessors. in IsApplicable() 52 std::vector<uint32_t> predecessors = ir_context->cfg()->preds(block->id()); in IsApplicable() local 55 if (predecessors.empty()) { in IsApplicable() 69 for (uint32_t pred : predecessors) { in IsApplicable() 82 uint32_t first_id = preds_to_ids[predecessors[0]]; in IsApplicable() 88 // Check that the ids corresponding to predecessors are all synonymous, have in IsApplicable() 90 for (uint32_t pred : predecessors) { in IsApplicable() 112 // the predecessors list of |block|. in IsApplicable()
|
H A D | transformation_merge_blocks.cpp | 40 auto predecessors = ir_context->cfg()->preds(second_block->id()); in IsApplicable() local 41 if (predecessors.size() != 1) { in IsApplicable() 44 auto first_block = ir_context->cfg()->block(predecessors.at(0)); in IsApplicable()
|
H A D | transformation_replace_opselect_with_conditional_branch.cpp | 82 auto predecessors = ir_context->cfg()->preds(block->id()); in IsApplicable() local 83 if (predecessors.size() != 1) { in IsApplicable() 87 uint32_t pred_id = predecessors[0]; in IsApplicable()
|
H A D | fuzzer_pass.cpp | 624 auto predecessors = GetIRContext()->cfg()->preds(header_id); in GetOrCreateSimpleLoopPreheader() local 626 assert(predecessors.size() >= 2 && in GetOrCreateSimpleLoopPreheader() 631 if (predecessors.size() == 2) { in GetOrCreateSimpleLoopPreheader() 638 header_id, predecessors[0])) { in GetOrCreateSimpleLoopPreheader() 641 maybe_preheader = &*function->FindBlock(predecessors[1]); in GetOrCreateSimpleLoopPreheader() 644 maybe_preheader = &*function->FindBlock(predecessors[0]); in GetOrCreateSimpleLoopPreheader() 663 if (predecessors.size() > 2) { in GetOrCreateSimpleLoopPreheader()
|
H A D | transformation_propagate_instruction_up.cpp | 137 // A block can have multiple identical predecessors. in Apply() 384 // Check that |block| has predecessors. in IsApplicableToBlock() 385 const auto& predecessors = ir_context->cfg()->preds(block_id); in IsApplicableToBlock() local 386 if (predecessors.empty()) { in IsApplicableToBlock() 399 return std::all_of(predecessors.begin(), predecessors.end(), in IsApplicableToBlock()
|
/third_party/spirv-tools/source/fuzz/ |
H A D | transformation_add_opphi_synonym.cpp | 51 // predecessors. in IsApplicable() 52 std::vector<uint32_t> predecessors = ir_context->cfg()->preds(block->id()); in IsApplicable() local 55 if (predecessors.empty()) { in IsApplicable() 69 for (uint32_t pred : predecessors) { in IsApplicable() 82 uint32_t first_id = preds_to_ids[predecessors[0]]; in IsApplicable() 88 // Check that the ids corresponding to predecessors are all synonymous, have in IsApplicable() 90 for (uint32_t pred : predecessors) { in IsApplicable() 112 // the predecessors list of |block|. in IsApplicable()
|
H A D | transformation_merge_blocks.cpp | 40 auto predecessors = ir_context->cfg()->preds(second_block->id()); in IsApplicable() local 41 if (predecessors.size() != 1) { in IsApplicable() 44 auto first_block = ir_context->cfg()->block(predecessors.at(0)); in IsApplicable()
|
H A D | transformation_replace_opselect_with_conditional_branch.cpp | 82 auto predecessors = ir_context->cfg()->preds(block->id()); in IsApplicable() local 83 if (predecessors.size() != 1) { in IsApplicable() 87 uint32_t pred_id = predecessors[0]; in IsApplicable()
|
/third_party/mesa3d/src/compiler/nir/ |
H A D | nir_opt_dce.c | 176 struct set *predecessors = nir_loop_first_block(loop)->predecessors; in dce_cf_list() local 177 if (predecessors->entries == 1 && in dce_cf_list() 178 _mesa_set_next_entry(predecessors, NULL)->key == inner_state.preheader) { in dce_cf_list()
|
/third_party/skia/third_party/externals/spirv-tools/source/ |
H A D | cfa.h | 87 /// predecessors), and it is therefore at the end of the postorder vector. 104 /// without predecessors (such as the root node) is its own immediate 112 // predecessors, favour using the one that appears earlier on the input blocks 193 const std::vector<BB*>& predecessors = *predecessor_func(*b); in CalculateDominators() local 196 auto res = std::find_if(std::begin(predecessors), std::end(predecessors), in CalculateDominators() 201 if (res == end(predecessors)) continue; in CalculateDominators() 205 // all other predecessors in CalculateDominators() 206 for (const auto* p : predecessors) { in CalculateDominators() 278 // First collect nodes without predecessors in TraversalRoots() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/SPIRV-Tools/source/ |
H A D | cfa.h | 87 /// predecessors), and it is therefore at the end of the postorder vector. 104 /// without predecessors (such as the root node) is its own immediate 112 // predecessors, favour using the one that appears earlier on the input blocks 193 const std::vector<BB*>& predecessors = *predecessor_func(*b); in CalculateDominators() local 196 auto res = std::find_if(std::begin(predecessors), std::end(predecessors), in CalculateDominators() 201 if (res == end(predecessors)) continue; in CalculateDominators() 205 // all other predecessors in CalculateDominators() 206 for (const auto* p : predecessors) { in CalculateDominators() 278 // First collect nodes without predecessors in TraversalRoots() [all...] |
/third_party/skia/third_party/externals/swiftshader/third_party/llvm-10.0/llvm/lib/Target/WebAssembly/ |
H A D | WebAssemblyFixIrreducibleControlFlow.cpp | 80 for (auto *Pred : MBB->predecessors()) { in ReachabilityGraph() 147 for (auto *Pred : MBB->predecessors()) { in calculate() 166 for (auto *Pred : Looper->predecessors()) { in calculate() 201 for (auto *Pred : Entry->predecessors()) { in calculate() 212 for (auto *Pred : MBB->predecessors()) { in calculate() 385 for (auto *Pred : Entry->predecessors()) { in makeSingleEntryLoop() 392 // This set stores predecessors within this loop. in makeSingleEntryLoop() 415 // predecessors outside the loop and one for predecessors inside the loop. in makeSingleEntryLoop()
|
H A D | WebAssemblyCFGSort.cpp | 244 // Prepare for a topological sort: Record the number of predecessors each in sortBlocks() 252 for (const MachineBasicBlock *Pred : MBB.predecessors()) in sortBlocks() 373 // other predecessors should be backedges below. in sortBlocks() 374 for (auto Pred : MBB.predecessors()) in sortBlocks() 377 "Loop header predecessors must be loop predecessors or " in sortBlocks() 380 // Not a loop header. All predecessors should be sorted above. in sortBlocks() 381 for (auto Pred : MBB.predecessors()) in sortBlocks() 383 "Non-loop-header predecessors should be topologically sorted"); in sortBlocks() 389 // Not a loop header. All predecessors shoul in sortBlocks() [all...] |
/third_party/mesa3d/src/freedreno/ir3/ |
H A D | ir3_remove_unreachable.c | 79 succ->predecessors[pred_idx] = in delete_block() 80 succ->predecessors[succ->predecessors_count - 1]; in delete_block()
|
/third_party/mesa3d/src/intel/compiler/ |
H A D | brw_nir_tcs_workarounds.c | 118 * which splits it in two. This changes the set of predecessors of in brw_nir_apply_tcs_quads_workaround() 122 const unsigned num_end_preds = impl->end_block->predecessors->entries; in brw_nir_apply_tcs_quads_workaround() 126 set_foreach(impl->end_block->predecessors, entry) { in brw_nir_apply_tcs_quads_workaround()
|