Lines Matching refs:Value
87 static InductionVarRange::Value SimplifyMin(InductionVarRange::Value v) { in SimplifyMin()
92 return InductionVarRange::Value(v.b_constant); in SimplifyMin()
99 static InductionVarRange::Value SimplifyMax(InductionVarRange::Value v, HInstruction* hint) { in SimplifyMax()
107 return InductionVarRange::Value(v.instruction->InputAt(0), 1, v.b_constant); in SimplifyMax()
112 return InductionVarRange::Value(suitable, 1, v.b_constant); in SimplifyMax()
119 static bool IsConstantValue(InductionVarRange::Value v) { in IsConstantValue()
124 static InductionVarRange::Value CorrectForType(InductionVarRange::Value v, DataType::Type type) { in CorrectForType()
136 : InductionVarRange::Value(); in CorrectForType()
171 /*out*/Value* min_val, in GetInductionRange()
172 /*out*/Value* max_val, in GetInductionRange()
426 Value min_val = GetVal(info, nullptr, /* in_body= */ true, /* is_min= */ true); in IsConstant()
427 Value max_val = GetVal(info, nullptr, /* in_body= */ true, /* is_min= */ false); in IsConstant()
523 InductionVarRange::Value InductionVarRange::GetLinear(HInductionVarAnalysis::InductionInfo* info, in GetLinear()
564 return SubValue(Value(0), GetVal(&cancelled_trip, trip, in_body, !is_min)); in GetLinear()
575 InductionVarRange::Value InductionVarRange::GetPolynomial(HInductionVarAnalysis::InductionInfo* inf… in GetPolynomial()
587 Value c = GetVal(info->op_b, trip, in_body, is_min); in GetPolynomial()
591 Value m = GetVal(trip, trip, in_body, is_min); in GetPolynomial()
592 Value t = DivValue(MulValue(m, SubValue(m, Value(1))), Value(2)); in GetPolynomial()
593 Value x = MulValue(Value(a), t); in GetPolynomial()
594 Value y = MulValue(Value(b), m); in GetPolynomial()
598 return Value(); in GetPolynomial()
601 InductionVarRange::Value InductionVarRange::GetGeometric(HInductionVarAnalysis::InductionInfo* info, in GetGeometric()
616 Value b = GetVal(info->op_b, trip, in_body, is_min); in GetGeometric()
617 return is_min_a ? b : AddValue(Value(a), b); in GetGeometric()
620 return Value(); in GetGeometric()
623 InductionVarRange::Value InductionVarRange::GetFetch(HInstruction* instruction, in GetFetch()
631 return Value(1); in GetFetch()
633 return Value(std::numeric_limits<int32_t>::max()); in GetFetch()
641 return Value(static_cast<int32_t>(value)); in GetFetch()
644 return Value(instruction, 1, 0); in GetFetch()
648 return AddValue(Value(static_cast<int32_t>(value)), in GetFetch()
652 Value(static_cast<int32_t>(value))); in GetFetch()
657 return SubValue(Value(static_cast<int32_t>(value)), in GetFetch()
661 Value(static_cast<int32_t>(value))); in GetFetch()
666 return is_min ? Value(0) : Value(std::numeric_limits<int32_t>::max()); in GetFetch()
695 return Value(instruction, 1, 0); in GetFetch()
698 InductionVarRange::Value InductionVarRange::GetVal(HInductionVarAnalysis::InductionInfo* info, in GetVal()
714 return SubValue(Value(0), in GetVal()
735 return Value(0); in GetVal()
737 return SubValue(GetVal(info->op_a, trip, in_body, is_min), Value(1)); in GetVal()
756 return Value(); in GetVal()
759 InductionVarRange::Value InductionVarRange::GetMul(HInductionVarAnalysis::InductionInfo* info1, in GetMul()
772 Value v1_min = GetVal(info1, trip, in_body, /* is_min= */ true); in GetMul()
773 Value v1_max = GetVal(info1, trip, in_body, /* is_min= */ false); in GetMul()
774 Value v2_min = GetVal(info2, trip, in_body, /* is_min= */ true); in GetMul()
775 Value v2_max = GetVal(info2, trip, in_body, /* is_min= */ false); in GetMul()
792 return Value(); in GetMul()
795 InductionVarRange::Value InductionVarRange::GetDiv(HInductionVarAnalysis::InductionInfo* info1, in GetDiv()
806 Value v1_min = GetVal(info1, trip, in_body, /* is_min= */ true); in GetDiv()
807 Value v1_max = GetVal(info1, trip, in_body, /* is_min= */ false); in GetDiv()
808 Value v2_min = GetVal(info2, trip, in_body, /* is_min= */ true); in GetDiv()
809 Value v2_max = GetVal(info2, trip, in_body, /* is_min= */ false); in GetDiv()
826 return Value(); in GetDiv()
829 InductionVarRange::Value InductionVarRange::GetRem( in GetRem()
838 return Value(static_cast<int32_t>(value)); in GetRem()
841 return Value(); in GetRem()
844 InductionVarRange::Value InductionVarRange::GetXor( in GetXor()
853 return Value(static_cast<int32_t>(value)); in GetXor()
856 return Value(); in GetXor()
859 InductionVarRange::Value InductionVarRange::MulRangeAndConstant( in MulRangeAndConstant()
866 Value c(static_cast<int32_t>(value)); in MulRangeAndConstant()
869 return Value(); in MulRangeAndConstant()
872 InductionVarRange::Value InductionVarRange::DivRangeAndConstant( in DivRangeAndConstant()
879 Value c(static_cast<int32_t>(value)); in DivRangeAndConstant()
882 return Value(); in DivRangeAndConstant()
885 InductionVarRange::Value InductionVarRange::AddValue(Value v1, Value v2) const { in AddValue()
889 return Value(v2.instruction, v2.a_constant, b); in AddValue()
891 return Value(v1.instruction, v1.a_constant, b); in AddValue()
893 return Value(v1.instruction, v1.a_constant + v2.a_constant, b); in AddValue()
896 return Value(); in AddValue()
899 InductionVarRange::Value InductionVarRange::SubValue(Value v1, Value v2) const { in SubValue()
903 return Value(v2.instruction, -v2.a_constant, b); in SubValue()
905 return Value(v1.instruction, v1.a_constant, b); in SubValue()
907 return Value(v1.instruction, v1.a_constant - v2.a_constant, b); in SubValue()
910 return Value(); in SubValue()
913 InductionVarRange::Value InductionVarRange::MulValue(Value v1, Value v2) const { in MulValue()
917 return Value(v2.instruction, v1.b_constant * v2.a_constant, v1.b_constant * v2.b_constant); in MulValue()
921 return Value(v1.instruction, v1.a_constant * v2.b_constant, v1.b_constant * v2.b_constant); in MulValue()
925 return Value(); in MulValue()
928 InductionVarRange::Value InductionVarRange::DivValue(Value v1, Value v2) const { in DivValue()
931 return Value(v1.b_constant / v2.b_constant); in DivValue()
934 return Value(); in DivValue()
937 InductionVarRange::Value InductionVarRange::MergeVal(Value v1, Value v2, bool is_min) const { in MergeVal()
940 return Value(v1.instruction, v1.a_constant, in MergeVal()
945 return Value(); in MergeVal()
1344 Value extreme = GetVal(info, trip, in_body, is_min); in GenerateCode()