Lines Matching refs:bounds_check
823 void VisitBoundsCheck(HBoundsCheck* bounds_check) override { in VisitBoundsCheck() argument
824 HBasicBlock* block = bounds_check->GetBlock(); in VisitBoundsCheck()
825 HInstruction* index = bounds_check->InputAt(0); in VisitBoundsCheck()
826 HInstruction* array_length = bounds_check->InputAt(1); in VisitBoundsCheck()
841 ReplaceInstruction(bounds_check, index); in VisitBoundsCheck()
853 ReplaceInstruction(bounds_check, index); in VisitBoundsCheck()
861 if (InductionRangeFitsIn(&array_range, bounds_check, &try_dynamic_bce)) { in VisitBoundsCheck()
862 ReplaceInstruction(bounds_check, index); in VisitBoundsCheck()
873 ReplaceInstruction(bounds_check, index); in VisitBoundsCheck()
884 ReplaceInstruction(bounds_check, index); in VisitBoundsCheck()
909 HLoopInformation* loop = bounds_check->GetBlock()->GetLoopInformation(); in VisitBoundsCheck()
912 if (DynamicBCESeemsProfitable(loop, bounds_check->GetBlock()) && in VisitBoundsCheck()
914 bounds_check, index, &needs_finite_test, &needs_taken_test) && in VisitBoundsCheck()
919 TransformLoopForDynamicBCE(loop, bounds_check); in VisitBoundsCheck()
928 first_index_bounds_check_map_.Put(array_length->GetId(), bounds_check); in VisitBoundsCheck()
1267 HBoundsCheck* bounds_check = in AddCompareWithDeoptimization() local
1287 block->InsertInstructionBefore(lower, bounds_check); in AddCompareWithDeoptimization()
1288 block->InsertInstructionBefore(upper, bounds_check); in AddCompareWithDeoptimization()
1289 InsertDeoptInBlock(bounds_check, new (GetGraph()->GetAllocator()) HAbove(lower, upper)); in AddCompareWithDeoptimization()
1292 bounds_check, new (GetGraph()->GetAllocator()) HAboveOrEqual(upper, array_length)); in AddCompareWithDeoptimization()
1300 HBoundsCheck* bounds_check = entry.second; in AddComparesWithDeoptimization() local
1301 HInstruction* index = bounds_check->InputAt(0); in AddComparesWithDeoptimization()
1302 HInstruction* array_length = bounds_check->InputAt(1); in AddComparesWithDeoptimization()
1423 void TransformLoopForDynamicBCE(HLoopInformation* loop, HBoundsCheck* bounds_check) { in TransformLoopForDynamicBCE() argument
1424 HInstruction* index = bounds_check->InputAt(0); in TransformLoopForDynamicBCE()
1425 HInstruction* array_length = bounds_check->InputAt(1); in TransformLoopForDynamicBCE()
1427 DCHECK(loop->DominatesAllBackEdges(bounds_check->GetBlock())); in TransformLoopForDynamicBCE()
1478 HBasicBlock* block = GetPreHeader(loop, bounds_check); in TransformLoopForDynamicBCE()
1723 void InsertDeoptInBlock(HBoundsCheck* bounds_check, HInstruction* condition) { in InsertDeoptInBlock() argument
1724 HBasicBlock* block = bounds_check->GetBlock(); in InsertDeoptInBlock()
1725 block->InsertInstructionBefore(condition, bounds_check); in InsertDeoptInBlock()
1730 bounds_check->GetDexPc()); in InsertDeoptInBlock()
1731 block->InsertInstructionBefore(deoptimize, bounds_check); in InsertDeoptInBlock()
1732 deoptimize->CopyEnvironmentFrom(bounds_check->GetEnvironment()); in InsertDeoptInBlock()