Lines Matching refs:instruction
23 static bool IsPhiOf(HInstruction* instruction, HBasicBlock* block) { in IsPhiOf() argument
24 return instruction->IsPhi() && instruction->GetBlock() == block; in IsPhiOf()
31 static bool InputsAreDefinedBeforeLoop(HInstruction* instruction) { in InputsAreDefinedBeforeLoop() argument
32 DCHECK(instruction->IsInLoop()); in InputsAreDefinedBeforeLoop()
33 HLoopInformation* info = instruction->GetBlock()->GetLoopInformation(); in InputsAreDefinedBeforeLoop()
34 for (const HInstruction* input : instruction->GetInputs()) { in InputsAreDefinedBeforeLoop()
43 for (HEnvironment* environment = instruction->GetEnvironment(); in InputsAreDefinedBeforeLoop()
132 HInstruction* instruction = inst_it.Current(); in Run() local
134 if (instruction->CanBeMoved() && InputsAreDefinedBeforeLoop(instruction)) { in Run()
135 if (instruction->CanThrow()) { in Run()
137 DCHECK(instruction->GetBlock()->IsLoopHeader()); in Run()
138 if (instruction->IsClinitCheck()) { in Run()
143 } else if (!instruction->GetSideEffects().MayDependOn(loop_effects)) { in Run()
147 } else if (!instruction->GetSideEffects().MayDependOn(loop_effects)) { in Run()
154 if (instruction->NeedsEnvironment()) { in Run()
155 UpdateLoopPhisIn(instruction->GetEnvironment(), loop_info); in Run()
157 DCHECK(!instruction->HasEnvironment()); in Run()
159 instruction->MoveBefore(pre_header->GetLastInstruction()); in Run()
164 if (!can_move && (instruction->CanThrow() || instruction->DoesAnyWrite())) { in Run()