Home
last modified time | relevance | path

Searched refs:block (Results 1 – 25 of 140) sorted by relevance

123456

/art/compiler/optimizing/
Dcommon_dominator.h38 explicit CommonDominator(HBasicBlock* block) in CommonDominator() argument
39 : dominator_(block), chain_length_(ChainLength(block)) { in CommonDominator()
43 void Update(HBasicBlock* block) { in Update() argument
44 DCHECK(block != nullptr); in Update()
46 dominator_ = block; in Update()
47 chain_length_ = ChainLength(block); in Update()
52 if (block == block2) { in Update()
55 size_t chain_length = ChainLength(block); in Update()
59 block = block->GetDominator(); in Update()
60 DCHECK(block != nullptr); in Update()
[all …]
Dside_effects_analysis.cc29 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in Run()
30 SideEffects effects = GetBlockEffects(block); in Run()
32 if (block->IsLoopHeader()) { in Run()
33 effects = GetLoopEffects(block); in Run()
40 for (HBasicBlock* block : graph_->GetPostOrder()) { in Run()
43 for (HInstructionIterator inst_it(block->GetInstructions()); !inst_it.Done(); in Run()
54 block_effects_[block->GetBlockId()] = effects; in Run()
56 if (block->IsLoopHeader()) { in Run()
58 UpdateLoopEffects(block->GetLoopInformation(), effects); in Run()
59 HBasicBlock* pre_header = block->GetLoopInformation()->GetPreHeader(); in Run()
[all …]
Ddead_code_elimination.cc42 HBasicBlock* block = worklist.back(); in MarkReachableBlocks() local
44 int block_id = block->GetBlockId(); in MarkReachableBlocks()
47 ArrayRef<HBasicBlock* const> live_successors(block->GetSuccessors()); in MarkReachableBlocks()
48 HInstruction* last_instruction = block->GetLastInstruction(); in MarkReachableBlocks()
75 DCHECK_EQ(live_successors[0], block->GetSuccessors()[switch_index]); in MarkReachableBlocks()
93 void HDeadCodeElimination::MaybeRecordDeadBlock(HBasicBlock* block) { in MaybeRecordDeadBlock() argument
96 block->GetPhis().CountSize() + block->GetInstructions().CountSize()); in MaybeRecordDeadBlock()
152 static bool RemoveNonNullControlDependences(HBasicBlock* block, HBasicBlock* throws) { in RemoveNonNullControlDependences() argument
154 if (!block->EndsWithIf()) { in RemoveNonNullControlDependences()
157 HIf* ifs = block->GetLastInstruction()->AsIf(); in RemoveNonNullControlDependences()
[all …]
Dblock_builder.cc53 HBasicBlock* block = branch_targets_[store_dex_pc]; in MaybeCreateBlockAt() local
54 if (block == nullptr) { in MaybeCreateBlockAt()
55 block = new (allocator_) HBasicBlock(graph_, semantic_dex_pc); in MaybeCreateBlockAt()
56 branch_targets_[store_dex_pc] = block; in MaybeCreateBlockAt()
58 DCHECK_EQ(block->GetDexPc(), semantic_dex_pc); in MaybeCreateBlockAt()
59 return block; in MaybeCreateBlockAt()
147 HBasicBlock* block = graph_->GetEntryBlock(); in ConnectBasicBlocks() local
148 graph_->AddBlock(block); in ConnectBasicBlocks()
163 if (block != nullptr) { in ConnectBasicBlocks()
166 block->AddSuccessor(next_block); in ConnectBasicBlocks()
[all …]
Dlinear_order.cc41 HBasicBlock* block) { in AddToListForLinearization() argument
42 HLoopInformation* block_loop = block->GetLoopInformation(); in AddToListForLinearization()
54 worklist->insert(insert_pos.base(), block); in AddToListForLinearization()
66 for (HBasicBlock* block : linear_order) { in IsLinearOrderWellFormed()
67 if (loop->Contains(*block)) { in IsLinearOrderWellFormed()
69 if (found_blocks == 1u && block != header) { in IsLinearOrderWellFormed()
72 } else if (found_blocks == num_blocks && !loop->IsBackEdge(*block)) { in IsLinearOrderWellFormed()
100 for (HBasicBlock* block : graph->GetReversePostOrder()) { in LinearizeGraphInternal()
101 size_t number_of_forward_predecessors = block->GetPredecessors().size(); in LinearizeGraphInternal()
102 if (block->IsLoopHeader()) { in LinearizeGraphInternal()
[all …]
Dselect_generator.cc35 static bool IsSimpleBlock(HBasicBlock* block) { in IsSimpleBlock() argument
36 if (block->GetPredecessors().size() != 1u) { in IsSimpleBlock()
39 DCHECK(block->GetPhis().IsEmpty()); in IsSimpleBlock()
42 for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in IsSimpleBlock()
50 instruction->AsSelect()->GetCondition()->GetBlock() == block) { in IsSimpleBlock()
74 static HPhi* GetSinglePhi(HBasicBlock* block, size_t index1, size_t index2) { in GetSinglePhi() argument
78 for (HInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { in GetSinglePhi()
92 HBasicBlock* block, ScopedArenaSafeMap<HInstruction*, HSelect*>* cache) { in TryGenerateSelectSimpleDiamondPattern() argument
93 DCHECK(block->GetLastInstruction()->IsIf()); in TryGenerateSelectSimpleDiamondPattern()
94 HIf* if_instruction = block->GetLastInstruction()->AsIf(); in TryGenerateSelectSimpleDiamondPattern()
[all …]
Dgvn.cc372 void VisitBasicBlock(HBasicBlock* block);
378 ValueSet* FindSetFor(HBasicBlock* block) const { in FindSetFor()
379 ValueSet* result = sets_[block->GetBlockId()]; in FindSetFor()
380 DCHECK(result != nullptr) << "Could not find set for block B" << block->GetBlockId(); in FindSetFor()
384 void AbandonSetFor(HBasicBlock* block) { in AbandonSetFor() argument
385 DCHECK(sets_[block->GetBlockId()] != nullptr) in AbandonSetFor()
386 << "Block B" << block->GetBlockId() << " expected to have a set"; in AbandonSetFor()
387 sets_[block->GetBlockId()] = nullptr; in AbandonSetFor()
392 bool WillBeReferencedAgain(HBasicBlock* block) const;
397 HBasicBlock* FindVisitedBlockWithRecyclableSet(HBasicBlock* block,
[all …]
Dssa_liveness_analysis.cc48 for (HBasicBlock* block : graph_->GetLinearOrder()) { in NumberInstructions()
49 block->SetLifetimeStart(lifetime_position); in NumberInstructions()
51 for (HInstructionIterator inst_it(block->GetPhis()); !inst_it.Done(); inst_it.Advance()) { in NumberInstructions()
68 for (HInstructionIterator inst_it(block->GetInstructions()); !inst_it.Done(); in NumberInstructions()
84 block->SetLifetimeEnd(lifetime_position); in NumberInstructions()
90 for (HBasicBlock* block : graph_->GetLinearOrder()) { in ComputeLiveness()
91 block_infos_[block->GetBlockId()] = in ComputeLiveness()
92 new (allocator_) BlockInfo(allocator_, *block, number_of_ssa_values_); in ComputeLiveness()
171 for (HBasicBlock* block : ReverseRange(graph_->GetLinearOrder())) { in ComputeLiveRanges()
172 BitVector* kill = GetKillSet(*block); in ComputeLiveRanges()
[all …]
Dgvn_test.cc41 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in TEST_F() local
42 graph->AddBlock(block); in TEST_F()
43 entry->AddSuccessor(block); in TEST_F()
45 block->AddInstruction(new (GetAllocator()) HInstanceFieldGet(parameter, in TEST_F()
54 block->AddInstruction(new (GetAllocator()) HInstanceFieldGet(parameter, in TEST_F()
63 HInstruction* to_remove = block->GetLastInstruction(); in TEST_F()
64 block->AddInstruction(new (GetAllocator()) HInstanceFieldGet(parameter, in TEST_F()
73 HInstruction* different_offset = block->GetLastInstruction(); in TEST_F()
75 block->AddInstruction(new (GetAllocator()) HInstanceFieldSet(parameter, in TEST_F()
85 block->AddInstruction(new (GetAllocator()) HInstanceFieldGet(parameter, in TEST_F()
[all …]
Dgraph_test.cc49 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in CreateGotoBlock() local
50 graph->AddBlock(block); in CreateGotoBlock()
52 block->AddInstruction(got); in CreateGotoBlock()
53 return block; in CreateGotoBlock()
57 HBasicBlock* block = CreateGotoBlock(graph); in CreateEntryBlock() local
58 graph->SetEntryBlock(block); in CreateEntryBlock()
59 return block; in CreateEntryBlock()
63 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph); in CreateReturnBlock() local
64 graph->AddBlock(block); in CreateReturnBlock()
66 block->AddInstruction(return_instr); in CreateReturnBlock()
[all …]
Dssa_liveness_analysis_test.cc46 HBasicBlock* CreateSuccessor(HBasicBlock* block) { in CreateSuccessor() argument
47 HGraph* graph = block->GetGraph(); in CreateSuccessor()
50 block->AddSuccessor(successor); in CreateSuccessor()
65 HBasicBlock* block = CreateSuccessor(entry_); in TEST_F() local
67 block->AddInstruction(ret); in TEST_F()
68 block->AddInstruction(new (GetAllocator()) HExit()); in TEST_F()
96 HBasicBlock* block = CreateSuccessor(entry_); in TEST_F() local
98 block->AddInstruction(null_check); in TEST_F()
107 block->AddInstruction(length); in TEST_F()
109 block->AddInstruction(bounds_check); in TEST_F()
[all …]
Dcha_guard_optimization.cc49 void VisitBasicBlock(HBasicBlock* block) override;
75 void CHAGuardVisitor::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock() argument
80 HInstructionIterator it(block->GetInstructions()); in VisitBasicBlock()
89 HBasicBlock* block = flag->GetBlock(); in RemoveGuard() local
100 block->RemoveInstruction(deopt); in RemoveGuard()
101 block->RemoveInstruction(compare); in RemoveGuard()
102 block->RemoveInstruction(flag); in RemoveGuard()
181 HBasicBlock* block = flag->GetBlock(); in HoistGuard() local
182 HLoopInformation* loop_info = block->GetLoopInformation(); in HoistGuard()
201 block->RemoveInstruction(deopt); in HoistGuard()
[all …]
Dgraph_checker.cc51 static bool IsExitTryBoundaryIntoExitBlock(HBasicBlock* block) { in IsExitTryBoundaryIntoExitBlock() argument
52 if (!block->IsSingleTryBoundary()) { in IsExitTryBoundaryIntoExitBlock()
56 HTryBoundary* boundary = block->GetLastInstruction()->AsTryBoundary(); in IsExitTryBoundaryIntoExitBlock()
57 return block->GetPredecessors().size() == 1u && in IsExitTryBoundaryIntoExitBlock()
88 for (HBasicBlock* block : GetGraph()->GetReversePostOrder()) { in VisitReversePostOrder()
89 if (block->IsInLoop()) { in VisitReversePostOrder()
91 if (block->GetLoopInformation()->IsIrreducible()) { in VisitReversePostOrder()
96 VisitBasicBlock(block); in VisitReversePostOrder()
168 void GraphChecker::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock() argument
169 current_block_ = block; in VisitBasicBlock()
[all …]
Dpretty_printer.h74 void VisitBasicBlock(HBasicBlock* block) override { in VisitBasicBlock() argument
76 PrintInt(block->GetBlockId()); in VisitBasicBlock()
77 const ArenaVector<HBasicBlock*>& predecessors = block->GetPredecessors(); in VisitBasicBlock()
86 const ArenaVector<HBasicBlock*>& successors = block->GetSuccessors(); in VisitBasicBlock()
96 HGraphVisitor::VisitBasicBlock(block); in VisitBasicBlock()
128 void VisitBasicBlock(HBasicBlock* block) override { in VisitBasicBlock() argument
129 current_block_ = block; in VisitBasicBlock()
130 HPrettyPrinter::VisitBasicBlock(block); in VisitBasicBlock()
Dnodes.cc58 void HGraph::AddBlock(HBasicBlock* block) { in AddBlock() argument
59 block->SetBlockId(blocks_.size()); in AddBlock()
60 blocks_.push_back(block); in AddBlock()
156 HBasicBlock* block = blocks_[i]; in RemoveDeadBlocksInstructionsAsUsersAndDisconnect() local
157 if (block == nullptr) continue; in RemoveDeadBlocksInstructionsAsUsersAndDisconnect()
160 for (HInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { in RemoveDeadBlocksInstructionsAsUsersAndDisconnect()
163 for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in RemoveDeadBlocksInstructionsAsUsersAndDisconnect()
168 block->DisconnectFromSuccessors(&visited); in RemoveDeadBlocksInstructionsAsUsersAndDisconnect()
195 HBasicBlock* block = blocks_[i]; in RemoveDeadBlocks() local
196 if (block == nullptr) continue; in RemoveDeadBlocks()
[all …]
Dfind_loops_test.cc40 for (HBasicBlock* block : graph->GetBlocks()) { in TEST_F()
41 ASSERT_EQ(block->GetLoopInformation(), nullptr); in TEST_F()
51 for (HBasicBlock* block : graph->GetBlocks()) { in TEST_F()
52 ASSERT_EQ(block->GetLoopInformation(), nullptr); in TEST_F()
65 for (HBasicBlock* block : graph->GetBlocks()) { in TEST_F()
66 ASSERT_EQ(block->GetLoopInformation(), nullptr); in TEST_F()
80 for (HBasicBlock* block : graph->GetBlocks()) { in TEST_F()
81 ASSERT_EQ(block->GetLoopInformation(), nullptr); in TEST_F()
93 for (HBasicBlock* block : graph->GetBlocks()) { in TEST_F()
94 ASSERT_EQ(block->GetLoopInformation(), nullptr); in TEST_F()
[all …]
Dcritical_native_abi_fixup_arm.cc65 HBasicBlock* block = invoke->GetBlock(); in FixUpArguments() local
66 ArenaAllocator* allocator = block->GetGraph()->GetAllocator(); in FixUpArguments()
78 !block->GetGraph()->IsDebuggable()); in FixUpArguments()
84 block->InsertInstructionBefore(new_input, invoke); in FixUpArguments()
96 for (HBasicBlock* block : graph_->GetReversePostOrder()) { in Run()
97 for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in Run()
Dconstant_folding_test.cc744 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph_); in TEST_F() local
745 graph_->AddBlock(block); in TEST_F()
749 entry_block->AddSuccessor(block); in TEST_F()
750 block->AddSuccessor(exit_block); in TEST_F()
761 block->AddInstruction(last = new (GetAllocator()) HAbove(zero, parameter)); in TEST_F()
762 block->AddInstruction(new (GetAllocator()) HSelect(last, parameter, parameter, 0)); in TEST_F()
763 block->AddInstruction(last = new (GetAllocator()) HAbove(parameter, zero)); in TEST_F()
764 block->AddInstruction(new (GetAllocator()) HSelect(last, parameter, parameter, 0)); in TEST_F()
765 block->AddInstruction(last = new (GetAllocator()) HAboveOrEqual(zero, parameter)); in TEST_F()
766 block->AddInstruction(new (GetAllocator()) HSelect(last, parameter, parameter, 0)); in TEST_F()
[all …]
Dsuperblock_cloner.cc90 for (HBasicBlock* block : graph->GetPostOrder()) { in OrderLoopsHeadersPredecessors()
91 if (block->IsLoopHeader()) { in OrderLoopsHeadersPredecessors()
92 graph->OrderLoopHeaderPredecessors(block); in OrderLoopsHeadersPredecessors()
101 static void TraverseSubgraphForConnectivity(HBasicBlock* block, HBasicBlockSet* bb_set) { in TraverseSubgraphForConnectivity() argument
102 DCHECK(bb_set->IsBitSet(block->GetBlockId())); in TraverseSubgraphForConnectivity()
103 bb_set->ClearBit(block->GetBlockId()); in TraverseSubgraphForConnectivity()
105 for (HBasicBlock* succ : block->GetSuccessors()) { in TraverseSubgraphForConnectivity()
322 for (auto block : graph_->GetBlocks()) { in RecalculateBackEdgesInfo() local
323 if (block != nullptr) { in RecalculateBackEdgesInfo()
324 outer_loop_bb_set->SetBit(block->GetBlockId()); in RecalculateBackEdgesInfo()
[all …]
Ddead_code_elimination.h41 void MaybeRecordDeadBlock(HBasicBlock* block);
88 void DisconnectHandlersAndUpdateTryBoundary(HBasicBlock* block,
123 void MaybeAddPhi(HBasicBlock* block);
/art/test/473-remove-dead-block/
DAndroid.bp3 // Build rules for ART run-test `473-remove-dead-block`.
16 name: "art-run-test-473-remove-dead-block",
21 ":art-run-test-473-remove-dead-block-expected-stdout",
22 ":art-run-test-473-remove-dead-block-expected-stderr",
28 name: "art-run-test-473-remove-dead-block-expected-stdout",
29 out: ["art-run-test-473-remove-dead-block-expected-stdout.txt"],
36 name: "art-run-test-473-remove-dead-block-expected-stderr",
37 out: ["art-run-test-473-remove-dead-block-expected-stderr.txt"],
/art/test/483-dce-block/
DAndroid.bp3 // Build rules for ART run-test `483-dce-block`.
16 name: "art-run-test-483-dce-block",
21 ":art-run-test-483-dce-block-expected-stdout",
22 ":art-run-test-483-dce-block-expected-stderr",
28 name: "art-run-test-483-dce-block-expected-stdout",
29 out: ["art-run-test-483-dce-block-expected-stdout.txt"],
36 name: "art-run-test-483-dce-block-expected-stderr",
37 out: ["art-run-test-483-dce-block-expected-stderr.txt"],
/art/test/435-try-finally-without-catch/
Dinfo.txt2 instructions with a `finally' clause but without any `catch' block,
6 block and whose result is assigned to a local value, it is smart
11 still emit a block with the exception catching and rethrowing
14 This used to be a problem for a `try' block followed by a `finally'
15 clause but with no `catch' block: in that case, the generated Dex code
16 item would list zero catch block for this method (see
20 special block(s) related to `catch'-less `try' statement(s), the
21 optimizing compiler considered this (these) as dead block(s) and
/art/libdexfile/dex/
Dcompact_offset_table.cc40 const uint8_t* block = data_begin_ + offset; in GetOffset() local
41 uint16_t bit_mask = *block; in GetOffset()
42 ++block; in GetOffset()
43 bit_mask = (bit_mask << kBitsPerByte) | *block; in GetOffset()
44 ++block; in GetOffset()
55 current_offset += DecodeUnsignedLeb128(&block); in GetOffset()
/art/libartbase/base/
Dscoped_flock.cc36 /* static */ ScopedFlock LockedFile::Open(const char* filename, int flags, bool block, in Open() argument
42 UNUSED(block); in Open()
58 int operation = block ? LOCK_EX : (LOCK_EX | LOCK_NB); in Open()
79 if (block) { in Open()
90 if (block) { in Open()

123456