/art/compiler/optimizing/ |
D | common_dominator.h | 38 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 …]
|
D | side_effects_analysis.cc | 29 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 …]
|
D | dead_code_elimination.cc | 43 HBasicBlock* block = worklist.back(); in MarkReachableBlocks() local 45 int block_id = block->GetBlockId(); in MarkReachableBlocks() 48 ArrayRef<HBasicBlock* const> live_successors(block->GetSuccessors()); in MarkReachableBlocks() 49 HInstruction* last_instruction = block->GetLastInstruction(); in MarkReachableBlocks() 76 DCHECK_EQ(live_successors[0], block->GetSuccessors()[switch_index]); in MarkReachableBlocks() 94 void HDeadCodeElimination::MaybeRecordDeadBlock(HBasicBlock* block) { in MaybeRecordDeadBlock() argument 97 block->GetPhis().CountSize() + block->GetInstructions().CountSize()); in MaybeRecordDeadBlock() 153 static bool RemoveNonNullControlDependences(HBasicBlock* block, HBasicBlock* throws) { in RemoveNonNullControlDependences() argument 155 if (!block->EndsWithIf()) { in RemoveNonNullControlDependences() 158 HIf* ifs = block->GetLastInstruction()->AsIf(); in RemoveNonNullControlDependences() [all …]
|
D | block_builder.cc | 49 HBasicBlock* block = branch_targets_[store_dex_pc]; in MaybeCreateBlockAt() local 50 if (block == nullptr) { in MaybeCreateBlockAt() 51 block = new (allocator_) HBasicBlock(graph_, semantic_dex_pc); in MaybeCreateBlockAt() 52 branch_targets_[store_dex_pc] = block; in MaybeCreateBlockAt() 54 DCHECK_EQ(block->GetDexPc(), semantic_dex_pc); in MaybeCreateBlockAt() 55 return block; in MaybeCreateBlockAt() 141 HBasicBlock* block = graph_->GetEntryBlock(); in ConnectBasicBlocks() local 142 graph_->AddBlock(block); in ConnectBasicBlocks() 154 if (block != nullptr) { in ConnectBasicBlocks() 157 block->AddSuccessor(next_block); in ConnectBasicBlocks() [all …]
|
D | linear_order.cc | 41 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 …]
|
D | select_generator.cc | 35 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() 49 if (instruction->IsSelect() && instruction->AsSelect()->GetCondition()->GetBlock() == block) { in IsSimpleBlock() 73 static HPhi* GetSinglePhi(HBasicBlock* block, size_t index1, size_t index2) { in GetSinglePhi() argument 77 for (HInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { in GetSinglePhi() 91 HBasicBlock* block, ScopedArenaSafeMap<HInstruction*, HSelect*>* cache) { in TryGenerateSelectSimpleDiamondPattern() argument 92 DCHECK(block->GetLastInstruction()->IsIf()); in TryGenerateSelectSimpleDiamondPattern() 93 HIf* if_instruction = block->GetLastInstruction()->AsIf(); in TryGenerateSelectSimpleDiamondPattern() [all …]
|
D | gvn.cc | 369 void VisitBasicBlock(HBasicBlock* block); 375 ValueSet* FindSetFor(HBasicBlock* block) const { in FindSetFor() 376 ValueSet* result = sets_[block->GetBlockId()]; in FindSetFor() 377 DCHECK(result != nullptr) << "Could not find set for block B" << block->GetBlockId(); in FindSetFor() 381 void AbandonSetFor(HBasicBlock* block) { in AbandonSetFor() argument 382 DCHECK(sets_[block->GetBlockId()] != nullptr) in AbandonSetFor() 383 << "Block B" << block->GetBlockId() << " expected to have a set"; in AbandonSetFor() 384 sets_[block->GetBlockId()] = nullptr; in AbandonSetFor() 389 bool WillBeReferencedAgain(HBasicBlock* block) const; 394 HBasicBlock* FindVisitedBlockWithRecyclableSet(HBasicBlock* block, [all …]
|
D | ssa_liveness_analysis.cc | 48 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 …]
|
D | gvn_test.cc | 41 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 …]
|
D | graph_test.cc | 49 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 …]
|
D | ssa_liveness_analysis_test.cc | 46 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 …]
|
D | cha_guard_optimization.cc | 49 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 …]
|
D | nodes.cc | 61 void HGraph::AddBlock(HBasicBlock* block) { in AddBlock() argument 62 block->SetBlockId(blocks_.size()); in AddBlock() 63 blocks_.push_back(block); in AddBlock() 158 HBasicBlock* block = blocks_[i]; in RemoveDeadBlocksInstructionsAsUsersAndDisconnect() local 159 if (block == nullptr) continue; in RemoveDeadBlocksInstructionsAsUsersAndDisconnect() 162 for (HInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { in RemoveDeadBlocksInstructionsAsUsersAndDisconnect() 165 for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in RemoveDeadBlocksInstructionsAsUsersAndDisconnect() 170 block->DisconnectFromSuccessors(&visited); in RemoveDeadBlocksInstructionsAsUsersAndDisconnect() 197 HBasicBlock* block = blocks_[i]; in RemoveDeadBlocks() local 198 if (block == nullptr) continue; in RemoveDeadBlocks() [all …]
|
D | graph_checker.cc | 54 static bool IsExitTryBoundaryIntoExitBlock(HBasicBlock* block) { in IsExitTryBoundaryIntoExitBlock() argument 55 if (!block->IsSingleTryBoundary()) { in IsExitTryBoundaryIntoExitBlock() 59 HTryBoundary* boundary = block->GetLastInstruction()->AsTryBoundary(); in IsExitTryBoundaryIntoExitBlock() 60 return block->GetPredecessors().size() == 1u && in IsExitTryBoundaryIntoExitBlock() 91 for (HBasicBlock* block : GetGraph()->GetReversePostOrder()) { in VisitReversePostOrder() 92 if (block->IsInLoop()) { in VisitReversePostOrder() 94 if (block->GetLoopInformation()->IsIrreducible()) { in VisitReversePostOrder() 99 VisitBasicBlock(block); in VisitReversePostOrder() 171 void GraphChecker::VisitBasicBlock(HBasicBlock* block) { in VisitBasicBlock() argument 172 current_block_ = block; in VisitBasicBlock() [all …]
|
D | pretty_printer.h | 74 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()
|
D | find_loops_test.cc | 40 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 …]
|
D | constant_folding_test.cc | 742 HBasicBlock* block = new (GetAllocator()) HBasicBlock(graph_); in TEST_F() local 743 graph_->AddBlock(block); in TEST_F() 747 entry_block->AddSuccessor(block); in TEST_F() 748 block->AddSuccessor(exit_block); in TEST_F() 759 block->AddInstruction(last = new (GetAllocator()) HAbove(zero, parameter)); in TEST_F() 760 block->AddInstruction(new (GetAllocator()) HSelect(last, parameter, parameter, 0)); in TEST_F() 761 block->AddInstruction(last = new (GetAllocator()) HAbove(parameter, zero)); in TEST_F() 762 block->AddInstruction(new (GetAllocator()) HSelect(last, parameter, parameter, 0)); in TEST_F() 763 block->AddInstruction(last = new (GetAllocator()) HAboveOrEqual(zero, parameter)); in TEST_F() 764 block->AddInstruction(new (GetAllocator()) HSelect(last, parameter, parameter, 0)); in TEST_F() [all …]
|
D | code_sinking.cc | 174 static void AddInputs(HBasicBlock* block, in AddInputs() argument 178 for (HInstructionIterator it(block->GetPhis()); !it.Done(); it.Advance()) { in AddInputs() 181 for (HInstructionIterator it(block->GetInstructions()); !it.Done(); it.Advance()) { in AddInputs() 216 HBasicBlock* block = user->GetBlock(); in FindIdealPosition() local 220 block = user->AsPhi()->IsCatchPhi() in FindIdealPosition() 221 ? block->GetDominator() in FindIdealPosition() 222 : block->GetPredecessors()[use.GetIndex()]; in FindIdealPosition() 224 finder.Update(block); in FindIdealPosition() 346 for (HBasicBlock* block : graph_->GetPostOrder()) { in SinkCodeToUncommonBranch() 347 if (block == end_block) { in SinkCodeToUncommonBranch() [all …]
|
D | load_store_elimination.cc | 771 Value PrepareLoopValue(HBasicBlock* block, size_t idx); 772 Value PrepareLoopStoredBy(HBasicBlock* block, size_t idx); 773 void PrepareLoopRecords(HBasicBlock* block); 774 Value MergePredecessorValues(HBasicBlock* block, size_t idx); 775 void MergePredecessorRecords(HBasicBlock* block); 785 void VisitBasicBlock(HBasicBlock* block) override; 968 HBasicBlock* block = instruction->GetBlock(); in VisitDeoptimize() local 969 ScopedArenaVector<ValueRecord>& heap_values = heap_values_for_[block->GetBlockId()]; in VisitDeoptimize() 1004 void HandleExit(HBasicBlock* block, bool must_keep_stores = false) { in HandleExit() argument 1005 ScopedArenaVector<ValueRecord>& heap_values = heap_values_for_[block->GetBlockId()]; in HandleExit() [all …]
|
D | superblock_cloner.cc | 90 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() 320 for (auto block : graph_->GetBlocks()) { in RecalculateBackEdgesInfo() local 321 if (block != nullptr) { in RecalculateBackEdgesInfo() 322 outer_loop_bb_set->SetBit(block->GetBlockId()); in RecalculateBackEdgesInfo() [all …]
|
/art/test/473-remove-dead-block/ |
D | Android.bp | 3 // 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/ |
D | Android.bp | 3 // 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/ |
D | info.txt | 2 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/ |
D | compact_offset_table.cc | 40 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/ |
D | scoped_flock.cc | 36 /* 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()
|