Lines Matching refs:instruction

76     HInstruction* instruction) const {  in ArrayAccessHeapLocation()
78 size_t heap_loc = heap_location_collector_->GetArrayHeapLocation(instruction); in ArrayAccessHeapLocation()
103 static bool IsArrayAccess(const HInstruction* instruction) { in IsArrayAccess() argument
104 return instruction->IsArrayGet() || instruction->IsArraySet(); in IsArrayAccess()
107 static bool IsInstanceFieldAccess(const HInstruction* instruction) { in IsInstanceFieldAccess() argument
108 return instruction->IsInstanceFieldGet() || in IsInstanceFieldAccess()
109 instruction->IsInstanceFieldSet() || in IsInstanceFieldAccess()
110 instruction->IsUnresolvedInstanceFieldGet() || in IsInstanceFieldAccess()
111 instruction->IsUnresolvedInstanceFieldSet(); in IsInstanceFieldAccess()
114 static bool IsStaticFieldAccess(const HInstruction* instruction) { in IsStaticFieldAccess() argument
115 return instruction->IsStaticFieldGet() || in IsStaticFieldAccess()
116 instruction->IsStaticFieldSet() || in IsStaticFieldAccess()
117 instruction->IsUnresolvedStaticFieldGet() || in IsStaticFieldAccess()
118 instruction->IsUnresolvedStaticFieldSet(); in IsStaticFieldAccess()
121 static bool IsResolvedFieldAccess(const HInstruction* instruction) { in IsResolvedFieldAccess() argument
122 return instruction->IsInstanceFieldGet() || in IsResolvedFieldAccess()
123 instruction->IsInstanceFieldSet() || in IsResolvedFieldAccess()
124 instruction->IsStaticFieldGet() || in IsResolvedFieldAccess()
125 instruction->IsStaticFieldSet(); in IsResolvedFieldAccess()
128 static bool IsUnresolvedFieldAccess(const HInstruction* instruction) { in IsUnresolvedFieldAccess() argument
129 return instruction->IsUnresolvedInstanceFieldGet() || in IsUnresolvedFieldAccess()
130 instruction->IsUnresolvedInstanceFieldSet() || in IsUnresolvedFieldAccess()
131 instruction->IsUnresolvedStaticFieldGet() || in IsUnresolvedFieldAccess()
132 instruction->IsUnresolvedStaticFieldSet(); in IsUnresolvedFieldAccess()
135 static bool IsFieldAccess(const HInstruction* instruction) { in IsFieldAccess() argument
136 return IsResolvedFieldAccess(instruction) || IsUnresolvedFieldAccess(instruction); in IsFieldAccess()
139 static const FieldInfo* GetFieldInfo(const HInstruction* instruction) { in GetFieldInfo() argument
140 if (instruction->IsInstanceFieldGet()) { in GetFieldInfo()
141 return &instruction->AsInstanceFieldGet()->GetFieldInfo(); in GetFieldInfo()
142 } else if (instruction->IsInstanceFieldSet()) { in GetFieldInfo()
143 return &instruction->AsInstanceFieldSet()->GetFieldInfo(); in GetFieldInfo()
144 } else if (instruction->IsStaticFieldGet()) { in GetFieldInfo()
145 return &instruction->AsStaticFieldGet()->GetFieldInfo(); in GetFieldInfo()
146 } else if (instruction->IsStaticFieldSet()) { in GetFieldInfo()
147 return &instruction->AsStaticFieldSet()->GetFieldInfo(); in GetFieldInfo()
286 for (HInstruction* instruction : node->GetInstruction()->GetInputs()) { in AddCrossIterationDependencies()
290 if (!instruction->IsLoopHeaderPhi()) { in AddCrossIterationDependencies()
293 for (HInstruction* phi_input : instruction->GetInputs()) { in AddCrossIterationDependencies()
317 HInstruction* instruction = instruction_node->GetInstruction(); in AddDependencies() local
320 for (const HUseListNode<HInstruction*>& use : instruction->GetUses()) { in AddDependencies()
329 for (HInstruction* other = instruction->GetNext(); other != nullptr; other = other->GetNext()) { in AddDependencies()
334 << ", and expected in block " << instruction->GetBlock()->GetBlockId(); in AddDependencies()
366 if (!instruction->GetSideEffects().DoesNothing() || instruction->CanThrow()) { in AddDependencies()
368 for (HInstruction* other = instruction->GetNext(); other != nullptr; other = other->GetNext()) { in AddDependencies()
380 if (side_effect_dependency_analysis_.HasSideEffectDependency(other, instruction)) { in AddDependencies()
402 for (const HUseListNode<HEnvironment*>& use : instruction->GetEnvUses()) { in AddDependencies()
413 static const std::string InstructionTypeId(const HInstruction* instruction) { in InstructionTypeId() argument
414 return DataType::TypeId(instruction->GetType()) + std::to_string(instruction->GetId()); in InstructionTypeId()
420 const HInstruction* instruction = node->GetInstruction(); in DumpAsDotNode() local
422 std::string instruction_id = InstructionTypeId(instruction); in DumpAsDotNode()
424 << instruction_id << ' ' << instruction->DebugName() << " ["; in DumpAsDotNode()
428 for (const HInstruction* input : instruction->GetInputs()) { in DumpAsDotNode()
469 const HInstruction* instruction = node->GetInstruction(); in DumpAsDotGraph() local
470 output << InstructionTypeId(instruction) << ":s -> end_of_scheduling:n " in DumpAsDotGraph()
494 const HInstruction* instruction = prev_select_->GetInstruction(); in SelectMaterializedCondition() local
496 DCHECK(instruction != nullptr); in SelectMaterializedCondition()
498 if (instruction->IsIf()) { in SelectMaterializedCondition()
499 condition = instruction->AsIf()->InputAt(0)->AsCondition(); in SelectMaterializedCondition()
500 } else if (instruction->IsSelect()) { in SelectMaterializedCondition()
501 condition = instruction->AsSelect()->GetCondition()->AsCondition(); in SelectMaterializedCondition()
583 HInstruction* instruction = it.Current(); in Schedule() local
584 CHECK_EQ(instruction->GetBlock(), block) in Schedule()
585 << instruction->DebugName() in Schedule()
586 << " is in block " << instruction->GetBlock()->GetBlockId() in Schedule()
588 SchedulingNode* node = scheduling_graph.AddNode(instruction, IsSchedulingBarrier(instruction)); in Schedule()
662 static void MoveAfterInBlock(HInstruction* instruction, HInstruction* cursor) { in MoveAfterInBlock() argument
663 DCHECK_EQ(instruction->GetBlock(), cursor->GetBlock()); in MoveAfterInBlock()
665 DCHECK(!instruction->IsControlFlow()); in MoveAfterInBlock()
667 instruction->MoveBefore(cursor->GetNext(), /* do_checks= */ false); in MoveAfterInBlock()
670 void HScheduler::Schedule(HInstruction* instruction) { in Schedule() argument
671 if (instruction == cursor_) { in Schedule()
674 MoveAfterInBlock(instruction, cursor_); in Schedule()
678 bool HScheduler::IsSchedulable(const HInstruction* instruction) const { in IsSchedulable()
681 if (instruction->IsControlFlow() || in IsSchedulable()
682 instruction->IsConstant()) { in IsSchedulable()
690 if (instruction->IsUnaryOperation()) { in IsSchedulable()
691 DCHECK(instruction->IsAbs() || in IsSchedulable()
692 instruction->IsBooleanNot() || in IsSchedulable()
693 instruction->IsNot() || in IsSchedulable()
694 instruction->IsNeg()) << "unexpected instruction " << instruction->DebugName(); in IsSchedulable()
697 if (instruction->IsBinaryOperation()) { in IsSchedulable()
698 DCHECK(instruction->IsAdd() || in IsSchedulable()
699 instruction->IsAnd() || in IsSchedulable()
700 instruction->IsCompare() || in IsSchedulable()
701 instruction->IsCondition() || in IsSchedulable()
702 instruction->IsDiv() || in IsSchedulable()
703 instruction->IsMin() || in IsSchedulable()
704 instruction->IsMax() || in IsSchedulable()
705 instruction->IsMul() || in IsSchedulable()
706 instruction->IsOr() || in IsSchedulable()
707 instruction->IsRem() || in IsSchedulable()
708 instruction->IsRor() || in IsSchedulable()
709 instruction->IsShl() || in IsSchedulable()
710 instruction->IsShr() || in IsSchedulable()
711 instruction->IsSub() || in IsSchedulable()
712 instruction->IsUShr() || in IsSchedulable()
713 instruction->IsXor()) << "unexpected instruction " << instruction->DebugName(); in IsSchedulable()
717 DCHECK(!instruction->IsParallelMove()) << "unexpected instruction " << instruction->DebugName(); in IsSchedulable()
731 return instruction->IsArrayGet() || in IsSchedulable()
732 instruction->IsArraySet() || in IsSchedulable()
733 instruction->IsArrayLength() || in IsSchedulable()
734 instruction->IsBoundType() || in IsSchedulable()
735 instruction->IsBoundsCheck() || in IsSchedulable()
736 instruction->IsCheckCast() || in IsSchedulable()
737 instruction->IsClassTableGet() || in IsSchedulable()
738 instruction->IsCurrentMethod() || in IsSchedulable()
739 instruction->IsDivZeroCheck() || in IsSchedulable()
740 (instruction->IsInstanceFieldGet() && !instruction->AsInstanceFieldGet()->IsVolatile()) || in IsSchedulable()
741 (instruction->IsInstanceFieldSet() && !instruction->AsInstanceFieldSet()->IsVolatile()) || in IsSchedulable()
742 instruction->IsInstanceOf() || in IsSchedulable()
743 instruction->IsInvokeInterface() || in IsSchedulable()
744 instruction->IsInvokeStaticOrDirect() || in IsSchedulable()
745 instruction->IsInvokeUnresolved() || in IsSchedulable()
746 instruction->IsInvokeVirtual() || in IsSchedulable()
747 instruction->IsLoadString() || in IsSchedulable()
748 instruction->IsNewArray() || in IsSchedulable()
749 instruction->IsNewInstance() || in IsSchedulable()
750 instruction->IsNullCheck() || in IsSchedulable()
751 instruction->IsPackedSwitch() || in IsSchedulable()
752 instruction->IsParameterValue() || in IsSchedulable()
753 instruction->IsPhi() || in IsSchedulable()
754 instruction->IsReturn() || in IsSchedulable()
755 instruction->IsReturnVoid() || in IsSchedulable()
756 instruction->IsSelect() || in IsSchedulable()
757 (instruction->IsStaticFieldGet() && !instruction->AsStaticFieldGet()->IsVolatile()) || in IsSchedulable()
758 (instruction->IsStaticFieldSet() && !instruction->AsStaticFieldSet()->IsVolatile()) || in IsSchedulable()
759 instruction->IsSuspendCheck() || in IsSchedulable()
760 instruction->IsTypeConversion(); in IsSchedulable()