Lines Matching refs:ValueRange
289 class ValueRange : public ArenaObject<kArenaAllocBoundsCheckElimination> { class
291 ValueRange(ScopedArenaAllocator* allocator, ValueBound lower, ValueBound upper) in ValueRange() function in art::ValueRange
294 virtual ~ValueRange() {} in ~ValueRange()
308 virtual bool FitsIn(ValueRange* other_range) const { in FitsIn()
320 virtual ValueRange* Narrow(ValueRange* range) { in Narrow()
329 return new (allocator_) ValueRange( in Narrow()
336 ValueRange* Add(int32_t constant) const { in Add()
350 return new (allocator_) ValueRange(allocator_, lower, upper); in Add()
358 DISALLOW_COPY_AND_ASSIGN(ValueRange);
367 class MonotonicValueRange : public ValueRange {
376 : ValueRange(allocator, ValueBound::Min(), ValueBound::Max()), in MonotonicValueRange()
394 bool FitsIn(ValueRange* other_range) const override { in FitsIn()
405 ValueRange* Narrow(ValueRange* range) override { in Narrow()
455 return new (GetAllocator()) ValueRange(GetAllocator(), lower, range->GetUpper()); in Narrow()
475 return new (GetAllocator()) ValueRange(GetAllocator(), range->GetLower(), upper); in Narrow()
516 ScopedArenaSafeMap<int, ValueRange*>( in BCEVisitor()
571 ScopedArenaSafeMap<int, ValueRange*>* GetValueRangeMap(HBasicBlock* basic_block) { in GetValueRangeMap()
580 ValueRange* LookupValueRange(HInstruction* instruction, HBasicBlock* basic_block) { in LookupValueRange()
582 ScopedArenaSafeMap<int, ValueRange*>* map = GetValueRangeMap(basic_block); in LookupValueRange()
597 void AssignRange(HBasicBlock* basic_block, HInstruction* instruction, ValueRange* range) { in AssignRange()
605 HBasicBlock* successor, ValueRange* range) { in ApplyRangeFromComparison()
606 ValueRange* existing_range = LookupValueRange(instruction, basic_block); in ApplyRangeFromComparison()
670 ValueRange* new_left_range = new (&allocator_) ValueRange( in HandleIfBetweenTwoMonotonicValueRanges()
679 ValueRange* new_right_range = new (&allocator_) ValueRange( in HandleIfBetweenTwoMonotonicValueRanges()
703 ValueRange* left_range = LookupValueRange(left, block); in HandleIf()
726 ValueRange* right_range = LookupValueRange(right, block); in HandleIf()
752 ValueRange* new_range = new (&allocator_) ValueRange( in HandleIf()
764 ValueRange* new_range = new (&allocator_) ValueRange( in HandleIf()
776 ValueRange* new_range = new (&allocator_) ValueRange( in HandleIf()
787 ValueRange* new_range = new (&allocator_) ValueRange( in HandleIf()
798 ValueRange* new_range = new (&allocator_) ValueRange(&allocator_, lower, upper); in HandleIf()
806 ValueRange* new_range = new (&allocator_) ValueRange( in HandleIf()
816 ValueRange* new_range = new (&allocator_) ValueRange(&allocator_, lower, upper); in HandleIf()
836 ValueRange array_range(&allocator_, lower, upper); in VisitBoundsCheck()
838 ValueRange* index_range = LookupValueRange(index, block); in VisitBoundsCheck()
846 ValueRange* existing_range = LookupValueRange(array_length, block); in VisitBoundsCheck()
851 ValueRange constant_array_range(&allocator_, lower, constant_upper); in VisitBoundsCheck()
879 ValueRange* existing_range = LookupValueRange(array_length, block); in VisitBoundsCheck()
901 ValueRange* range = new (&allocator_) ValueRange(&allocator_, lower, upper); in VisitBoundsCheck()
960 ValueRange* range = nullptr; in VisitPhi()
963 range = new (&allocator_) ValueRange( in VisitPhi()
976 ValueRange* initial_range = LookupValueRange(initial_value, phi->GetBlock()); in VisitPhi()
1007 ValueRange* left_range = LookupValueRange(add->GetLeft(), add->GetBlock()); in VisitAdd()
1011 ValueRange* range = left_range->Add(right->AsIntConstant()->GetValue()); in VisitAdd()
1022 ValueRange* left_range = LookupValueRange(left, sub->GetBlock()); in VisitSub()
1026 ValueRange* range = left_range->Add(-right->AsIntConstant()->GetValue()); in VisitSub()
1047 ValueRange* right_range = LookupValueRange(right, sub->GetBlock()); in VisitSub()
1064 ValueRange* range = new (&allocator_) ValueRange( in VisitSub()
1112 ValueRange* range = new (&allocator_) ValueRange( in FindAndHandlePartialArrayLength()
1138 ValueRange* range = new (&allocator_) ValueRange( in VisitAnd()
1164 ValueRange* right_range = new (&allocator_) ValueRange( in VisitRem()
1169 ValueRange* left_range = LookupValueRange(left, instruction->GetBlock()); in VisitRem()
1194 ValueRange* right_range = new (&allocator_) ValueRange( in VisitRem()
1198 ValueRange* left_range = LookupValueRange(left, instruction->GetBlock()); in VisitRem()
1220 ValueRange* range = new (&allocator_) ValueRange(&allocator_, lower, upper); in VisitNewArray()
1221 ValueRange* existing_range = LookupValueRange(left, new_array->GetBlock()); in VisitNewArray()
1389 bool InductionRangeFitsIn(ValueRange* array_range, in InductionRangeFitsIn()
1402 ValueRange index_range(&allocator_, in InductionRangeFitsIn()
1910 ScopedArenaVector<ScopedArenaSafeMap<int, ValueRange*>> maps_;