Home
last modified time | relevance | path

Searched refs:trip_count (Results 1 – 7 of 7) sorted by relevance

/art/compiler/optimizing/
Dloop_analysis.cc26 int64_t trip_count) { in CalculateLoopBasicProperties() argument
27 analysis_results->trip_count_ = trip_count; in CalculateLoopBasicProperties()
68 int64_t trip_count; in GetLoopTripCount() local
69 if (!induction_range->HasKnownTripCount(loop_info, &trip_count)) { in GetLoopTripCount()
70 trip_count = LoopAnalysisInfo::kUnknownTripCount; in GetLoopTripCount()
72 return trip_count; in GetLoopTripCount()
98 int64_t trip_count = analysis_info->GetTripCount(); in GetScalarUnrollingFactor() local
100 if (trip_count == LoopAnalysisInfo::kUnknownTripCount) { in GetScalarUnrollingFactor()
104 if (trip_count < desired_unrolling_factor || trip_count % desired_unrolling_factor != 0) { in GetScalarUnrollingFactor()
114 int64_t trip_count = analysis_info->GetTripCount(); in IsFullUnrollingBeneficial() local
[all …]
Dloop_analysis.h103 int64_t trip_count);
174 int64_t trip_count ATTRIBUTE_UNUSED, in GetSIMDUnrollingFactor()
Dloop_optimization.h172 bool ShouldVectorize(LoopNode* node, HBasicBlock* block, int64_t trip_count);
173 void Vectorize(LoopNode* node, HBasicBlock* block, HBasicBlock* exit, int64_t trip_count);
235 bool IsVectorizationProfitable(int64_t trip_count);
Dloop_optimization.cc709 int64_t trip_count = 0; in TryOptimizeInnerLoopFinite() local
710 if (!induction_range_.IsFinite(node->loop_info, &trip_count)) { in TryOptimizeInnerLoopFinite()
742 (is_empty || trip_count == 1) && in TryOptimizeInnerLoopFinite()
770 ShouldVectorize(node, body, trip_count) && in TryOptimizeInnerLoopFinite()
772 Vectorize(node, body, exit, trip_count); in TryOptimizeInnerLoopFinite()
850 int64_t trip_count = analysis_info->GetTripCount(); in TryFullUnrolling() local
852 trip_count == LoopAnalysisInfo::kUnknownTripCount || in TryFullUnrolling()
878 PeelByCount(loop_info, trip_count, &induction_range_); in TryFullUnrolling()
895 int64_t trip_count = LoopAnalysis::GetLoopTripCount(loop_info, &induction_range_); in TryPeelingAndUnrolling() local
897 LoopAnalysis::CalculateLoopBasicProperties(loop_info, &analysis_info, trip_count); in TryPeelingAndUnrolling()
[all …]
Dinduction_var_range.h167 bool IsFinite(HLoopInformation* loop, /*out*/ int64_t* trip_count) const;
172 bool HasKnownTripCount(HLoopInformation* loop, /*out*/ int64_t* trip_count) const;
208 /*out*/ int64_t* trip_count) const;
Dinduction_var_analysis.cc1010 InductionInfo* trip_count = upper_expr; in VisitTripCount() local
1018 trip_count = CreateInvariantOp(kSub, trip_count, CreateConstant(1, type)); in VisitTripCount()
1020 trip_count = CreateInvariantOp(kAdd, trip_count, CreateConstant(1, type)); in VisitTripCount()
1023 trip_count = CreateInvariantOp(kAdd, trip_count, stride_expr); in VisitTripCount()
1025 trip_count = CreateInvariantOp( in VisitTripCount()
1026 kDiv, CreateInvariantOp(kSub, trip_count, lower_expr), stride_expr); in VisitTripCount()
1050 AssignInfo(loop, control, CreateTripCount(tcKind, trip_count, taken_test, type)); in VisitTripCount()
Dinduction_var_range.cc354 bool InductionVarRange::IsFinite(HLoopInformation* loop, /*out*/ int64_t* trip_count) const { in IsFinite()
356 return CheckForFiniteAndConstantProps(loop, &is_constant_unused, trip_count); in IsFinite()
360 /*out*/ int64_t* trip_count) const { in HasKnownTripCount()
362 CheckForFiniteAndConstantProps(loop, &is_constant, trip_count); in HasKnownTripCount()
424 /*out*/ int64_t* trip_count) const { in CheckForFiniteAndConstantProps()
428 *is_constant = IsConstant(trip->op_a, kExact, trip_count); in CheckForFiniteAndConstantProps()