Lines Matching refs:Value
121 static InductionVarRange::Value SimplifyMin(InductionVarRange::Value v) { in SimplifyMin()
126 return InductionVarRange::Value(v.b_constant); in SimplifyMin()
133 static InductionVarRange::Value SimplifyMax(InductionVarRange::Value v, HInstruction* hint) { in SimplifyMax()
141 return InductionVarRange::Value(v.instruction->InputAt(0), 1, v.b_constant); in SimplifyMax()
146 return InductionVarRange::Value(suitable, 1, v.b_constant); in SimplifyMax()
153 static bool IsConstantValue(InductionVarRange::Value v) { in IsConstantValue()
158 static InductionVarRange::Value CorrectForType(InductionVarRange::Value v, Primitive::Type type) { in CorrectForType()
169 : InductionVarRange::Value(); in CorrectForType()
204 /*out*/Value* min_val, in GetInductionRange()
205 /*out*/Value* max_val, in GetInductionRange()
441 Value min_val = GetVal(info, nullptr, /* in_body */ true, /* is_min */ true); in IsConstant()
442 Value max_val = GetVal(info, nullptr, /* in_body */ true, /* is_min */ false); in IsConstant()
538 InductionVarRange::Value InductionVarRange::GetLinear(HInductionVarAnalysis::InductionInfo* info, in GetLinear()
579 return SubValue(Value(0), GetVal(&cancelled_trip, trip, in_body, !is_min)); in GetLinear()
590 InductionVarRange::Value InductionVarRange::GetPolynomial(HInductionVarAnalysis::InductionInfo* inf… in GetPolynomial()
602 Value c = GetVal(info->op_b, trip, in_body, is_min); in GetPolynomial()
606 Value m = GetVal(trip, trip, in_body, is_min); in GetPolynomial()
607 Value t = DivValue(MulValue(m, SubValue(m, Value(1))), Value(2)); in GetPolynomial()
608 Value x = MulValue(Value(a), t); in GetPolynomial()
609 Value y = MulValue(Value(b), m); in GetPolynomial()
613 return Value(); in GetPolynomial()
616 InductionVarRange::Value InductionVarRange::GetGeometric(HInductionVarAnalysis::InductionInfo* info, in GetGeometric()
631 Value b = GetVal(info->op_b, trip, in_body, is_min); in GetGeometric()
632 return is_min_a ? b : AddValue(Value(a), b); in GetGeometric()
635 return Value(); in GetGeometric()
638 InductionVarRange::Value InductionVarRange::GetFetch(HInstruction* instruction, in GetFetch()
646 return Value(1); in GetFetch()
648 return Value(std::numeric_limits<int32_t>::max()); in GetFetch()
656 return Value(static_cast<int32_t>(value)); in GetFetch()
659 return Value(instruction, 1, 0); in GetFetch()
663 return AddValue(Value(static_cast<int32_t>(value)), in GetFetch()
667 Value(static_cast<int32_t>(value))); in GetFetch()
672 return is_min ? Value(0) : Value(std::numeric_limits<int32_t>::max()); in GetFetch()
701 return Value(instruction, 1, 0); in GetFetch()
704 InductionVarRange::Value InductionVarRange::GetVal(HInductionVarAnalysis::InductionInfo* info, in GetVal()
720 return SubValue(Value(0), in GetVal()
741 return Value(0); in GetVal()
743 return SubValue(GetVal(info->op_a, trip, in_body, is_min), Value(1)); in GetVal()
762 return Value(); in GetVal()
765 InductionVarRange::Value InductionVarRange::GetMul(HInductionVarAnalysis::InductionInfo* info1, in GetMul()
778 Value v1_min = GetVal(info1, trip, in_body, /* is_min */ true); in GetMul()
779 Value v1_max = GetVal(info1, trip, in_body, /* is_min */ false); in GetMul()
780 Value v2_min = GetVal(info2, trip, in_body, /* is_min */ true); in GetMul()
781 Value v2_max = GetVal(info2, trip, in_body, /* is_min */ false); in GetMul()
798 return Value(); in GetMul()
801 InductionVarRange::Value InductionVarRange::GetDiv(HInductionVarAnalysis::InductionInfo* info1, in GetDiv()
812 Value v1_min = GetVal(info1, trip, in_body, /* is_min */ true); in GetDiv()
813 Value v1_max = GetVal(info1, trip, in_body, /* is_min */ false); in GetDiv()
814 Value v2_min = GetVal(info2, trip, in_body, /* is_min */ true); in GetDiv()
815 Value v2_max = GetVal(info2, trip, in_body, /* is_min */ false); in GetDiv()
832 return Value(); in GetDiv()
835 InductionVarRange::Value InductionVarRange::GetRem( in GetRem()
844 return Value(static_cast<int32_t>(value)); in GetRem()
847 return Value(); in GetRem()
850 InductionVarRange::Value InductionVarRange::GetXor( in GetXor()
859 return Value(static_cast<int32_t>(value)); in GetXor()
862 return Value(); in GetXor()
865 InductionVarRange::Value InductionVarRange::MulRangeAndConstant( in MulRangeAndConstant()
872 Value c(static_cast<int32_t>(value)); in MulRangeAndConstant()
875 return Value(); in MulRangeAndConstant()
878 InductionVarRange::Value InductionVarRange::DivRangeAndConstant( in DivRangeAndConstant()
885 Value c(static_cast<int32_t>(value)); in DivRangeAndConstant()
888 return Value(); in DivRangeAndConstant()
891 InductionVarRange::Value InductionVarRange::AddValue(Value v1, Value v2) const { in AddValue()
895 return Value(v2.instruction, v2.a_constant, b); in AddValue()
897 return Value(v1.instruction, v1.a_constant, b); in AddValue()
899 return Value(v1.instruction, v1.a_constant + v2.a_constant, b); in AddValue()
902 return Value(); in AddValue()
905 InductionVarRange::Value InductionVarRange::SubValue(Value v1, Value v2) const { in SubValue()
909 return Value(v2.instruction, -v2.a_constant, b); in SubValue()
911 return Value(v1.instruction, v1.a_constant, b); in SubValue()
913 return Value(v1.instruction, v1.a_constant - v2.a_constant, b); in SubValue()
916 return Value(); in SubValue()
919 InductionVarRange::Value InductionVarRange::MulValue(Value v1, Value v2) const { in MulValue()
923 return Value(v2.instruction, v1.b_constant * v2.a_constant, v1.b_constant * v2.b_constant); in MulValue()
927 return Value(v1.instruction, v1.a_constant * v2.b_constant, v1.b_constant * v2.b_constant); in MulValue()
931 return Value(); in MulValue()
934 InductionVarRange::Value InductionVarRange::DivValue(Value v1, Value v2) const { in DivValue()
937 return Value(v1.b_constant / v2.b_constant); in DivValue()
940 return Value(); in DivValue()
943 InductionVarRange::Value InductionVarRange::MergeVal(Value v1, Value v2, bool is_min) const { in MergeVal()
946 return Value(v1.instruction, v1.a_constant, in MergeVal()
951 return Value(); in MergeVal()
1346 Value extreme = GetVal(info, trip, in_body, is_min); in GenerateCode()