Lines Matching full:valuerange
298 * Currently a ValueRange may be generated as a result of the following:
303 class ValueRange : public ArenaObject<kArenaAllocBoundsCheckElimination> {
305 ValueRange(ArenaAllocator* allocator, ValueBound lower, ValueBound upper)
308 virtual ~ValueRange() {}
322 virtual bool FitsIn(ValueRange* other_range) const {
334 virtual ValueRange* Narrow(ValueRange* range) {
343 return new (allocator_) ValueRange(
350 ValueRange* Add(int32_t constant) const {
364 return new (allocator_) ValueRange(allocator_, lower, upper);
372 DISALLOW_COPY_AND_ASSIGN(ValueRange);
381 class MonotonicValueRange : public ValueRange {
390 : ValueRange(allocator, ValueBound::Min(), ValueBound::Max()),
408 bool FitsIn(ValueRange* other_range) const OVERRIDE {
417 // Ideally it will return a normal ValueRange. But due to
419 ValueRange* Narrow(ValueRange* range) OVERRIDE {
469 return new (GetAllocator()) ValueRange
489 return new (GetAllocator()) ValueRange(GetAllocator(), range->GetLower(), upper);
529 ArenaSafeMap<int, ValueRange*>(
584 ArenaSafeMap<int, ValueRange*>* GetValueRangeMap(HBasicBlock* basic_block) {
593 ValueRange* LookupValueRange(HInstruction* instruction, HBasicBlock* basic_block) {
595 ArenaSafeMap<int, ValueRange*>* map = GetValueRangeMap(basic_block);
610 void AssignRange(HBasicBlock* basic_block, HInstruction* instruction, ValueRange* range) {
617 HBasicBlock* successor, ValueRange* range) {
618 ValueRange* existing_range = LookupValueRange(instruction, basic_block);
682 ValueRange* new_left_range = new (GetGraph()->GetArena()) ValueRange(
691 ValueRange* new_right_range = new (GetGraph()->GetArena()) ValueRange(
715 ValueRange* left_range = LookupValueRange(left, block);
738 ValueRange* right_range = LookupValueRange(right, block);
764 ValueRange* new_range = new (GetGraph()->GetArena())
765 ValueRange(GetGraph()->GetArena(), ValueBound::Min(), new_upper);
776 ValueRange* new_range = new (GetGraph()->GetArena())
777 ValueRange(GetGraph()->GetArena(), new_lower, ValueBound::Max());
788 ValueRange* new_range = new (GetGraph()->GetArena())
789 ValueRange(GetGraph()->GetArena(), new_lower, ValueBound::Max());
799 ValueRange* new_range = new (GetGraph()->GetArena())
800 ValueRange(GetGraph()->GetArena(), ValueBound::Min(), new_upper);
820 ValueRange array_range(GetGraph()->GetArena(), lower, upper);
822 ValueRange* index_range = LookupValueRange(index, block);
847 ValueRange* existing_range = LookupValueRange(array_length, block);
869 ValueRange* range = new (GetGraph()->GetArena())
870 ValueRange(GetGraph()->GetArena(), lower, upper);
918 ValueRange* range = nullptr;
921 range = new (GetGraph()->GetArena()) ValueRange(
934 ValueRange* initial_range = LookupValueRange(initial_value, phi->GetBlock());
971 ValueRange* left_range = LookupValueRange(add->GetLeft(), add->GetBlock());
975 ValueRange* range = left_range->Add(right->AsIntConstant()->GetValue());
986 ValueRange* left_range = LookupValueRange(left, sub->GetBlock());
990 ValueRange* range = left_range->Add(-right->AsIntConstant()->GetValue());
1011 ValueRange* right_range = LookupValueRange(right, sub->GetBlock());
1028 ValueRange* range = new (GetGraph()->GetArena()) ValueRange(
1076 ValueRange* range = new (GetGraph()->GetArena()) ValueRange(
1102 ValueRange* range = new (GetGraph()->GetArena()) ValueRange(
1124 ValueRange* range = new (GetGraph()->GetArena())
1125 ValueRange(GetGraph()->GetArena(), lower, upper);
1126 ValueRange* existing_range = LookupValueRange(left, new_array->GetBlock());
1285 bool InductionRangeFitsIn(ValueRange* array_range,
1298 ValueRange index_range(GetGraph()->GetArena(),
1711 ArenaVector<ArenaSafeMap<int, ValueRange*>> maps_;