Lines Matching refs:cursor
1010 void HBasicBlock::InsertInstructionBefore(HInstruction* instruction, HInstruction* cursor) { in InsertInstructionBefore() argument
1011 DCHECK(!cursor->IsPhi()); in InsertInstructionBefore()
1014 DCHECK_NE(cursor->GetId(), -1); in InsertInstructionBefore()
1015 DCHECK_EQ(cursor->GetBlock(), this); in InsertInstructionBefore()
1020 instructions_.InsertInstructionBefore(instruction, cursor); in InsertInstructionBefore()
1023 void HBasicBlock::InsertInstructionAfter(HInstruction* instruction, HInstruction* cursor) { in InsertInstructionAfter() argument
1024 DCHECK(!cursor->IsPhi()); in InsertInstructionAfter()
1027 DCHECK_NE(cursor->GetId(), -1); in InsertInstructionAfter()
1028 DCHECK_EQ(cursor->GetBlock(), this); in InsertInstructionAfter()
1030 DCHECK(!cursor->IsControlFlow()); in InsertInstructionAfter()
1034 instructions_.InsertInstructionAfter(instruction, cursor); in InsertInstructionAfter()
1037 void HBasicBlock::InsertPhiAfter(HPhi* phi, HPhi* cursor) { in InsertPhiAfter() argument
1039 DCHECK_NE(cursor->GetId(), -1); in InsertPhiAfter()
1040 DCHECK_EQ(cursor->GetBlock(), this); in InsertPhiAfter()
1044 phis_.InsertInstructionAfter(phi, cursor); in InsertPhiAfter()
1172 void HInstructionList::InsertInstructionBefore(HInstruction* instruction, HInstruction* cursor) { in InsertInstructionBefore() argument
1173 DCHECK(Contains(cursor)); in InsertInstructionBefore()
1174 if (cursor == first_instruction_) { in InsertInstructionBefore()
1175 cursor->previous_ = instruction; in InsertInstructionBefore()
1176 instruction->next_ = cursor; in InsertInstructionBefore()
1179 instruction->previous_ = cursor->previous_; in InsertInstructionBefore()
1180 instruction->next_ = cursor; in InsertInstructionBefore()
1181 cursor->previous_ = instruction; in InsertInstructionBefore()
1186 void HInstructionList::InsertInstructionAfter(HInstruction* instruction, HInstruction* cursor) { in InsertInstructionAfter() argument
1187 DCHECK(Contains(cursor)); in InsertInstructionAfter()
1188 if (cursor == last_instruction_) { in InsertInstructionAfter()
1189 cursor->next_ = instruction; in InsertInstructionAfter()
1190 instruction->previous_ = cursor; in InsertInstructionAfter()
1193 instruction->next_ = cursor->next_; in InsertInstructionAfter()
1194 instruction->previous_ = cursor; in InsertInstructionAfter()
1195 cursor->next_ = instruction; in InsertInstructionAfter()
1751 void HInstruction::MoveBefore(HInstruction* cursor, bool do_checks) { in MoveBefore() argument
1758 DCHECK(!cursor->IsPhi()); in MoveBefore()
1770 previous_ = cursor->previous_; in MoveBefore()
1774 next_ = cursor; in MoveBefore()
1775 cursor->previous_ = this; in MoveBefore()
1776 block_ = cursor->block_; in MoveBefore()
1778 if (block_->instructions_.first_instruction_ == cursor) { in MoveBefore()
1837 HBasicBlock* HBasicBlock::SplitBefore(HInstruction* cursor) { in SplitBefore() argument
1839 DCHECK_EQ(cursor->GetBlock(), this); in SplitBefore()
1842 new (GetGraph()->GetAllocator()) HBasicBlock(GetGraph(), cursor->GetDexPc()); in SplitBefore()
1843 new_block->instructions_.first_instruction_ = cursor; in SplitBefore()
1845 instructions_.last_instruction_ = cursor->previous_; in SplitBefore()
1846 if (cursor->previous_ == nullptr) { in SplitBefore()
1849 cursor->previous_->next_ = nullptr; in SplitBefore()
1850 cursor->previous_ = nullptr; in SplitBefore()
1884 HBasicBlock* HBasicBlock::SplitBeforeForInlining(HInstruction* cursor) { in SplitBeforeForInlining() argument
1885 DCHECK_EQ(cursor->GetBlock(), this); in SplitBeforeForInlining()
1888 new (GetGraph()->GetAllocator()) HBasicBlock(GetGraph(), cursor->GetDexPc()); in SplitBeforeForInlining()
1889 new_block->instructions_.first_instruction_ = cursor; in SplitBeforeForInlining()
1891 instructions_.last_instruction_ = cursor->previous_; in SplitBeforeForInlining()
1892 if (cursor->previous_ == nullptr) { in SplitBeforeForInlining()
1895 cursor->previous_->next_ = nullptr; in SplitBeforeForInlining()
1896 cursor->previous_ = nullptr; in SplitBeforeForInlining()
1915 HBasicBlock* HBasicBlock::SplitAfterForInlining(HInstruction* cursor) { in SplitAfterForInlining() argument
1916 DCHECK(!cursor->IsControlFlow()); in SplitAfterForInlining()
1917 DCHECK_NE(instructions_.last_instruction_, cursor); in SplitAfterForInlining()
1918 DCHECK_EQ(cursor->GetBlock(), this); in SplitAfterForInlining()
1921 new_block->instructions_.first_instruction_ = cursor->GetNext(); in SplitAfterForInlining()
1923 cursor->next_->previous_ = nullptr; in SplitAfterForInlining()
1924 cursor->next_ = nullptr; in SplitAfterForInlining()
1925 instructions_.last_instruction_ = cursor; in SplitAfterForInlining()
2068 void HInstructionList::AddAfter(HInstruction* cursor, const HInstructionList& instruction_list) { in AddAfter() argument
2069 DCHECK(Contains(cursor)); in AddAfter()
2071 if (cursor == last_instruction_) { in AddAfter()
2074 cursor->next_->previous_ = instruction_list.last_instruction_; in AddAfter()
2076 instruction_list.last_instruction_->next_ = cursor->next_; in AddAfter()
2077 cursor->next_ = instruction_list.first_instruction_; in AddAfter()
2078 instruction_list.first_instruction_->previous_ = cursor; in AddAfter()
2082 void HInstructionList::AddBefore(HInstruction* cursor, const HInstructionList& instruction_list) { in AddBefore() argument
2083 DCHECK(Contains(cursor)); in AddBefore()
2085 if (cursor == first_instruction_) { in AddBefore()
2088 cursor->previous_->next_ = instruction_list.first_instruction_; in AddBefore()
2090 instruction_list.last_instruction_->next_ = cursor; in AddBefore()
2091 instruction_list.first_instruction_->previous_ = cursor->previous_; in AddBefore()
2092 cursor->previous_ = instruction_list.last_instruction_; in AddBefore()
3087 HInstruction* HGraph::InsertOppositeCondition(HInstruction* cond, HInstruction* cursor) { in InsertOppositeCondition() argument
3111 cursor->GetBlock()->InsertInstructionBefore(replacement, cursor); in InsertOppositeCondition()
3123 cursor->GetBlock()->InsertInstructionBefore(replacement, cursor); in InsertOppositeCondition()