src/share/vm/opto/loopnode.cpp

changeset 3308
e8fdaf4a66cb
parent 3260
670a74b863fc
child 3311
1bd45abaa507
equal deleted inserted replaced
3261:78bef05801ca 3308:e8fdaf4a66cb
713 int stride_con = cl->stride_con(); 713 int stride_con = cl->stride_con();
714 long init_con = cl->init_trip()->get_int(); 714 long init_con = cl->init_trip()->get_int();
715 long limit_con = cl->limit()->get_int(); 715 long limit_con = cl->limit()->get_int();
716 julong trip_cnt = cl->trip_count(); 716 julong trip_cnt = cl->trip_count();
717 long final_con = init_con + trip_cnt*stride_con; 717 long final_con = init_con + trip_cnt*stride_con;
718 final_con -= stride_con;
719 int final_int = (int)final_con; 718 int final_int = (int)final_con;
720 // The final value should be in integer range since the loop 719 // The final value should be in integer range since the loop
721 // is counted and the limit was checked for overflow. 720 // is counted and the limit was checked for overflow.
722 assert(final_con == (long)final_int, "final value should be integer"); 721 assert(final_con == (long)final_int, "final value should be integer");
723 limit = _igvn.intcon(final_int); 722 limit = _igvn.intcon(final_int);

mercurial