Searched defs:hi_size (Results 1 - 1 of 1) sorted by relevance
/openjdk7/hotspot/src/share/vm/opto/ |
H A D | parse2.cpp | 407 int64 hi_size = ((int64)hi->hi()) - ((int64)hi->lo()) + 1; 411 total_outlier_size = hi_size + lo_size; 413 } else if (lo_size > hi_size) { 417 total_outlier_size = hi_size; 324 assert(rp < len+2, �); if( makes_backward_branch && UseLoopSafepoints ) add_safepoint(); jump_switch_ranges(lookup, &ranges[0], &ranges[rp]); } void Parse::do_lookupswitch() { Node *lookup = pop(); int default_dest = iter().get_dest_table(0); int len = iter().get_int_table(1); if (len < 1) { maybe_add_safepoint(default_dest); merge(default_dest); return; } jint* table = NEW_RESOURCE_ARRAY(jint, len*2); { for( int j = 0; j < len; j++ ) { table[j+j+0] = iter().get_int_table(2+j+j); table[j+j+1] = iter().get_dest_table(2+j+j+1); } qsort( table, len, 2*sizeof(table[0]), jint_cmp ); } int rnum = len*2+1; bool makes_backward_branch = false; SwitchRange* ranges = NEW_RESOURCE_ARRAY(SwitchRange, rnum); int rp = -1; for( int j = 0; j < len; j++ ) { jint match_int = table[j+j+0]; int dest = table[j+j+1]; int next_lo = rp < 0 ? min_jint : ranges[rp].hi()+1; int table_index = method_data_update() ? j : NullTableIndex; makes_backward_branch |= (dest <= bci()); if( match_int != next_lo ) { ranges[++rp].setRange(next_lo, match_int-1, default_dest, NullTableIndex); } if( rp < 0 || !ranges[rp].adjoin(match_int, dest, table_index) ) { ranges[++rp].set(match_int, dest, table_index); } } jint highest = table[2*(len-1)]; assert(ranges[rp].hi() == highest, �); if( highest != max_jint && !ranges[rp].adjoinRange(highest+1, max_jint, default_dest, NullTableIndex) ) { ranges[++rp].setRange(highest+1, max_jint, default_dest, NullTableIndex); } assert(rp < rnum, �); if( makes_backward_branch && UseLoopSafepoints ) add_safepoint(); jump_switch_ranges(lookup, &ranges[0], &ranges[rp]); } bool Parse::create_jump_tables(Node* key_val, SwitchRange* lo, SwitchRange* hi) { if (!UseJumpTables) return false; if (!Matcher::has_match_rule(Op_Jump)) return false; if (method_data_update()) return false; bool needs_guard = false; int default_dest; int64 total_outlier_size = 0; int64 hi_size = ((int64)hi->hi()) - ((int64)hi->lo()) + 1; int64 lo_size = ((int64)lo->hi()) - ((int64)lo->lo()) + 1; if (lo->dest() == hi->dest()) { total_outlier_size = hi_size + lo_size; default_dest = lo->dest(); } else if (lo_size > hi_size) argument
|
Completed in 48 milliseconds