Lines Matching refs:successor
375 // Splits the edge between `block` and `successor` while preserving the
376 // indices in the predecessor/successor lists. If there are multiple edges
378 // Returns the new block which is empty and has the same dex pc as `successor`.
379 HBasicBlock* SplitEdge(HBasicBlock* block, HBasicBlock* successor);
381 void SplitCriticalEdge(HBasicBlock* block, HBasicBlock* successor);
931 // Insert `this` between `predecessor` and `successor. This method
933 // `predecessor` and `successor`.
934 void InsertBetween(HBasicBlock* predecessor, HBasicBlock* successor) {
935 size_t predecessor_index = successor->GetPredecessorIndexOf(predecessor);
936 size_t successor_index = predecessor->GetSuccessorIndexOf(successor);
937 successor->predecessors_[predecessor_index] = this;
939 successors_.push_back(successor);
974 size_t GetSuccessorIndexOf(HBasicBlock* successor) const {
975 return IndexOfElement(successors_, successor);
2727 // Normal-flow successor is stored at index zero, exception handlers under
2744 // Returns the block's non-exceptional successor (index zero).
2755 return GetBlock()->HasSuccessor(&handler, 1u /* Skip first successor. */);
2870 // have one successor for each entry in the switch table, and the final successor