< prev index next >

src/hotspot/share/opto/parse2.cpp

Print this page
rev 56881 : imported patch 8233702-function-to-clamp-value-to-range


 588   }
 589   assert(rp < rnum, "not too many ranges");
 590 
 591   if (trim_ranges) {
 592     merge_ranges(ranges, rp);
 593   }
 594 
 595   // Safepoint in case backward branch observed
 596   if (makes_backward_branch && UseLoopSafepoints)
 597     add_safepoint();
 598 
 599   jump_switch_ranges(lookup, &ranges[0], &ranges[rp]);
 600 }
 601 
 602 static float if_prob(float taken_cnt, float total_cnt) {
 603   assert(taken_cnt <= total_cnt, "");
 604   if (total_cnt == 0) {
 605     return PROB_FAIR;
 606   }
 607   float p = taken_cnt / total_cnt;
 608   return MIN2(MAX2(p, PROB_MIN), PROB_MAX);
 609 }
 610 
 611 static float if_cnt(float cnt) {
 612   if (cnt == 0) {
 613     return COUNT_UNKNOWN;
 614   }
 615   return cnt;
 616 }
 617 
 618 static float sum_of_cnts(SwitchRange *lo, SwitchRange *hi) {
 619   float total_cnt = 0;
 620   for (SwitchRange* sr = lo; sr <= hi; sr++) {
 621     total_cnt += sr->cnt();
 622   }
 623   return total_cnt;
 624 }
 625 
 626 class SwitchRanges : public ResourceObj {
 627 public:
 628   SwitchRange* _lo;




 588   }
 589   assert(rp < rnum, "not too many ranges");
 590 
 591   if (trim_ranges) {
 592     merge_ranges(ranges, rp);
 593   }
 594 
 595   // Safepoint in case backward branch observed
 596   if (makes_backward_branch && UseLoopSafepoints)
 597     add_safepoint();
 598 
 599   jump_switch_ranges(lookup, &ranges[0], &ranges[rp]);
 600 }
 601 
 602 static float if_prob(float taken_cnt, float total_cnt) {
 603   assert(taken_cnt <= total_cnt, "");
 604   if (total_cnt == 0) {
 605     return PROB_FAIR;
 606   }
 607   float p = taken_cnt / total_cnt;
 608   return clamp(p, PROB_MIN, PROB_MAX);
 609 }
 610 
 611 static float if_cnt(float cnt) {
 612   if (cnt == 0) {
 613     return COUNT_UNKNOWN;
 614   }
 615   return cnt;
 616 }
 617 
 618 static float sum_of_cnts(SwitchRange *lo, SwitchRange *hi) {
 619   float total_cnt = 0;
 620   for (SwitchRange* sr = lo; sr <= hi; sr++) {
 621     total_cnt += sr->cnt();
 622   }
 623   return total_cnt;
 624 }
 625 
 626 class SwitchRanges : public ResourceObj {
 627 public:
 628   SwitchRange* _lo;


< prev index next >