Lines Matching refs:instruction

39 static bool IsAllowedToJumpToExitBlock(HInstruction* instruction) {  in IsAllowedToJumpToExitBlock()  argument
41 if (instruction->IsReturn() || instruction->IsReturnVoid()) { in IsAllowedToJumpToExitBlock()
45 if (instruction->IsGoto() && instruction->GetPrevious() != nullptr) { in IsAllowedToJumpToExitBlock()
46 instruction = instruction->GetPrevious(); in IsAllowedToJumpToExitBlock()
48 return instruction->AlwaysThrows(); in IsAllowedToJumpToExitBlock()
359 void GraphChecker::VisitInstruction(HInstruction* instruction) { in VisitInstruction() argument
360 if (seen_ids_.IsBitSet(instruction->GetId())) { in VisitInstruction()
362 instruction->GetId())); in VisitInstruction()
364 seen_ids_.SetBit(instruction->GetId()); in VisitInstruction()
368 if (instruction->GetBlock() == nullptr) { in VisitInstruction()
370 instruction->IsPhi() ? "Phi" : "Instruction", in VisitInstruction()
371 instruction->GetId(), in VisitInstruction()
373 } else if (instruction->GetBlock() != current_block_) { in VisitInstruction()
375 instruction->IsPhi() ? "Phi" : "Instruction", in VisitInstruction()
376 instruction->GetId(), in VisitInstruction()
378 instruction->GetBlock()->GetBlockId())); in VisitInstruction()
382 for (HInstruction* input : instruction->GetInputs()) { in VisitInstruction()
387 instruction->GetId())); in VisitInstruction()
396 instruction->GetId())); in VisitInstruction()
403 for (const HUseListNode<HInstruction*>& use : instruction->GetUses()) { in VisitInstruction()
413 instruction->GetId())); in VisitInstruction()
417 if ((use_index >= user_inputs.size()) || (user_inputs[use_index] != instruction)) { in VisitInstruction()
422 instruction->DebugName(), in VisitInstruction()
423 instruction->GetId())); in VisitInstruction()
428 for (const HUseListNode<HEnvironment*>& use : instruction->GetEnvUses()) { in VisitInstruction()
431 if ((use_index >= user->Size()) || (user->GetInstructionAt(use_index) != instruction)) { in VisitInstruction()
434 instruction->DebugName(), in VisitInstruction()
435 instruction->GetId())); in VisitInstruction()
440 auto&& input_records = instruction->GetInputRecords(); in VisitInstruction()
450 instruction->DebugName(), in VisitInstruction()
451 instruction->GetId(), in VisitInstruction()
459 for (const HUseListNode<HInstruction*>& use : instruction->GetUses()) { in VisitInstruction()
461 if (!user->IsPhi() && !instruction->StrictlyDominates(user)) { in VisitInstruction()
464 instruction->DebugName(), in VisitInstruction()
465 instruction->GetId(), in VisitInstruction()
473 if (instruction->NeedsEnvironment() && !instruction->HasEnvironment()) { in VisitInstruction()
476 instruction->DebugName(), in VisitInstruction()
477 instruction->GetId(), in VisitInstruction()
483 for (HEnvironment* environment = instruction->GetEnvironment(); in VisitInstruction()
489 && !env_instruction->StrictlyDominates(instruction)) { in VisitInstruction()
493 instruction->GetId(), in VisitInstruction()
495 instruction->GetId())); in VisitInstruction()
501 if (check_reference_type_info_ && instruction->GetType() == DataType::Type::kReference) { in VisitInstruction()
502 if (!instruction->GetReferenceTypeInfo().IsValid()) { in VisitInstruction()
505 instruction->DebugName(), in VisitInstruction()
506 instruction->GetId())); in VisitInstruction()
510 if (instruction->CanThrowIntoCatchBlock()) { in VisitInstruction()
513 HEnvironment* environment = instruction->GetEnvironment(); in VisitInstruction()
520 const HTryBoundary& entry = instruction->GetBlock()->GetTryCatchInformation()->GetTryEntry(); in VisitInstruction()
528 instruction->DebugName(), in VisitInstruction()
529 instruction->GetId(), in VisitInstruction()
656 void GraphChecker::VisitInstanceOf(HInstanceOf* instruction) { in VisitInstanceOf() argument
657 HandleTypeCheckInstruction(instruction); in VisitInstanceOf()
951 void GraphChecker::HandleBooleanInput(HInstruction* instruction, size_t input_index) { in HandleBooleanInput() argument
952 HInstruction* input = instruction->InputAt(input_index); in HandleBooleanInput()
958 instruction->DebugName(), in HandleBooleanInput()
959 instruction->GetId(), in HandleBooleanInput()
968 instruction->DebugName(), in HandleBooleanInput()
969 instruction->GetId(), in HandleBooleanInput()
975 void GraphChecker::VisitPackedSwitch(HPackedSwitch* instruction) { in VisitPackedSwitch() argument
976 VisitInstruction(instruction); in VisitPackedSwitch()
979 HBasicBlock* block = instruction->GetBlock(); in VisitPackedSwitch()
980 if (instruction->GetNumEntries() + 1u != block->GetSuccessors().size()) { in VisitPackedSwitch()
983 instruction->DebugName(), in VisitPackedSwitch()
984 instruction->GetId(), in VisitPackedSwitch()
986 instruction->GetNumEntries() + 1u, in VisitPackedSwitch()
991 void GraphChecker::VisitIf(HIf* instruction) { in VisitIf() argument
992 VisitInstruction(instruction); in VisitIf()
993 HandleBooleanInput(instruction, 0); in VisitIf()
996 void GraphChecker::VisitSelect(HSelect* instruction) { in VisitSelect() argument
997 VisitInstruction(instruction); in VisitSelect()
998 HandleBooleanInput(instruction, 2); in VisitSelect()
1001 void GraphChecker::VisitBooleanNot(HBooleanNot* instruction) { in VisitBooleanNot() argument
1002 VisitInstruction(instruction); in VisitBooleanNot()
1003 HandleBooleanInput(instruction, 0); in VisitBooleanNot()
1036 void GraphChecker::VisitNeg(HNeg* instruction) { in VisitNeg() argument
1037 VisitInstruction(instruction); in VisitNeg()
1038 DataType::Type input_type = instruction->InputAt(0)->GetType(); in VisitNeg()
1039 DataType::Type result_type = instruction->GetType(); in VisitNeg()
1043 instruction->DebugName(), instruction->GetId(), in VisitNeg()
1108 void GraphChecker::VisitConstant(HConstant* instruction) { in VisitConstant() argument
1109 HBasicBlock* block = instruction->GetBlock(); in VisitConstant()
1113 instruction->DebugName(), in VisitConstant()
1114 instruction->GetId(), in VisitConstant()
1119 void GraphChecker::VisitBoundType(HBoundType* instruction) { in VisitBoundType() argument
1120 VisitInstruction(instruction); in VisitBoundType()
1122 if (!instruction->GetUpperBound().IsValid()) { in VisitBoundType()
1125 instruction->DebugName(), in VisitBoundType()
1126 instruction->GetId())); in VisitBoundType()
1130 void GraphChecker::VisitTypeConversion(HTypeConversion* instruction) { in VisitTypeConversion() argument
1131 VisitInstruction(instruction); in VisitTypeConversion()
1132 DataType::Type result_type = instruction->GetResultType(); in VisitTypeConversion()
1133 DataType::Type input_type = instruction->GetInputType(); in VisitTypeConversion()
1138 instruction->DebugName(), in VisitTypeConversion()
1139 instruction->GetId(), in VisitTypeConversion()
1145 void GraphChecker::VisitVecOperation(HVecOperation* instruction) { in VisitVecOperation() argument
1146 VisitInstruction(instruction); in VisitVecOperation()
1151 if (!codegen_->SupportsPredicatedSIMD() && instruction->IsPredicated()) { in VisitVecOperation()
1154 instruction->DebugName(), in VisitVecOperation()
1155 instruction->GetId())); in VisitVecOperation()
1159 (instruction->MustBePredicatedInPredicatedSIMDMode() != instruction->IsPredicated())) { in VisitVecOperation()
1162 instruction->DebugName(), in VisitVecOperation()
1163 instruction->GetId())); in VisitVecOperation()