Searched refs:predecessor (Results 1 - 10 of 10) sorted by relevance

/art/compiler/optimizing/
H A Dgraph_checker.cc106 for (HBasicBlock* predecessor : block->GetPredecessors()) {
107 HInstruction* last_instruction = IsExitTryBoundaryIntoExitBlock(predecessor) ?
108 predecessor->GetSinglePredecessor()->GetLastInstruction() :
109 predecessor->GetLastInstruction();
212 for (HBasicBlock* predecessor : block->GetPredecessors()) {
213 const HTryBoundary* incoming_try_entry = predecessor->ComputeTryEntryOfSuccessors();
218 "from predecessor %d.",
222 predecessor->GetBlockId()));
225 "with %s:%d that follows from predecessor %d.",
231 predecessor
597 HBasicBlock* predecessor = loop_header->GetPredecessors()[i]; local
767 HBasicBlock* predecessor = predecessors[i]; local
[all...]
H A Dnodes.cc314 // Use `InsertBetween` to ensure the predecessor index and successor index of
349 HBasicBlock* predecessor = header->GetPredecessors()[pred]; local
350 if (!info->IsBackEdge(*predecessor)) {
351 predecessor->ReplaceSuccessor(header, pre_header);
358 // Make sure the first predecessor of a loop header is the incoming block.
362 HBasicBlock* predecessor = header->GetPredecessors()[pred]; local
363 if (!info->IsBackEdge(*predecessor)) {
365 header->predecessors_[0] = predecessor;
389 // Infer try membership from the first predecessor. Having simplified loops,
390 // the first predecessor ca
1924 HBasicBlock* predecessor = GetPredecessors()[0]; local
2107 HBasicBlock* predecessor = to->GetPredecessors()[0]; local
[all...]
H A Dgvn.cc142 // Updates this set by intersecting with instructions in a predecessor's set.
143 void IntersectWith(ValueSet* predecessor) { argument
146 } else if (predecessor->IsEmpty()) {
151 DeleteAllImpureWhich([predecessor](Node* node) {
152 return !predecessor->Contains(node->GetInstruction());
471 for (HBasicBlock* predecessor : predecessors) {
472 set->IntersectWith(FindSetFor(predecessor));
H A Dblock_builder.cc216 for (HBasicBlock* predecessor : catch_block->GetPredecessors()) {
217 DCHECK(!predecessor->IsSingleTryBoundary())
310 // least one predecessor is not covered by the same TryItem as the try block.
315 for (HBasicBlock* predecessor : try_block->GetPredecessors()) {
316 if (GetTryItem(predecessor, try_block_info) != entry.second) {
317 // Found a predecessor not covered by the same TryItem. Insert entering
H A Dssa_liveness_analysis.cc237 // A phi input whose last user is the phi dies at the end of the predecessor block,
396 for (HBasicBlock* predecessor : block->GetPredecessors()) {
397 size_t position = predecessor->GetLifetimeEnd() - 1;
479 // If the input dies at the end of the predecessor, we know its register can
H A Dregister_allocator.cc1945 for (HBasicBlock* predecessor : block->GetPredecessors()) {
1946 ConnectSplitSiblings(interval, predecessor, block);
1961 HBasicBlock* predecessor = current->GetPredecessors()[i]; local
1962 DCHECK_EQ(predecessor->GetNormalSuccessors().size(), 1u);
1965 predecessor->GetLifetimeEnd() - 1);
1967 InsertParallelMoveAtExitOf(predecessor, phi, source, destination);
H A Dgraph_visualizer.cc257 for (HBasicBlock* predecessor : block->GetPredecessors()) {
258 output_ << " \"B" << predecessor->GetBlockId() << "\" ";
H A Dinstruction_builder.cc125 for (HBasicBlock* predecessor : current_block_->GetPredecessors()) {
126 HInstruction* current = ValueOfLocalAt(predecessor, local);
136 // If one predecessor has no value for this local, we trust the verifier has
235 for (HBasicBlock* predecessor : block->GetPredecessors()) {
236 HInstruction* value = ValueOfLocalAt(predecessor, vreg);
238 // Vreg is undefined at this predecessor. Mark it dead and leave with
H A Dinliner.cc591 // Set up successor (and implictly predecessor) relations.
1154 // a throw predecessor.
1163 for (HBasicBlock* predecessor : exit_block->GetPredecessors()) {
1164 if (predecessor->GetLastInstruction()->IsThrow()) {
H A Dnodes.h376 // indices in the predecessor/successor lists. If there are multiple edges
931 // Insert `this` between `predecessor` and `successor. This method
933 // `predecessor` and `successor`.
934 void InsertBetween(HBasicBlock* predecessor, HBasicBlock* successor) { argument
935 size_t predecessor_index = successor->GetPredecessorIndexOf(predecessor);
936 size_t successor_index = predecessor->GetSuccessorIndexOf(successor);
938 predecessor->successors_[successor_index] = this;
940 predecessors_.push_back(predecessor);
970 size_t GetPredecessorIndexOf(HBasicBlock* predecessor) const {
971 return IndexOfElement(predecessors_, predecessor);
990 IsFirstIndexOfPredecessor(HBasicBlock* predecessor, size_t idx) const argument
[all...]

Completed in 138 milliseconds