src/share/vm/opto/parse2.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/parse2.cpp Mon May 5 12:29:59 2014
--- new/src/share/vm/opto/parse2.cpp Mon May 5 12:29:58 2014
*** 403,415 ****
--- 403,415 ----
// both) end(s) of the input set. We'll call this the default target
// even though we can't be sure that it is the true "default".
bool needs_guard = false;
int default_dest;
! int64_t total_outlier_size = 0;
! int64 hi_size = ((int64)hi->hi()) - ((int64)hi->lo()) + 1;
! int64 lo_size = ((int64)lo->hi()) - ((int64)lo->lo()) + 1;
! int64_t hi_size = ((int64_t)hi->hi()) - ((int64_t)hi->lo()) + 1;
! int64_t lo_size = ((int64_t)lo->hi()) - ((int64_t)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) {
*** 427,437 ****
--- 427,437 ----
if (default_dest == lo->dest()) lo++;
if (default_dest == hi->dest()) hi--;
}
// Find the total number of cases and ranges
! int64 num_cases = ((int64)hi->hi()) - ((int64)lo->lo()) + 1;
! int64_t num_cases = ((int64_t)hi->hi()) - ((int64_t)lo->lo()) + 1;
int num_range = hi - lo + 1;
// Don't create table if: too large, too small, or too sparse.
if (num_cases < MinJumpTableSize || num_cases > MaxJumpTableSize)
return false;
*** 471,481 ****
--- 471,481 ----
Node* jtn = _gvn.transform( new (C) JumpNode(control(), key_val, num_cases) );
// These are the switch destinations hanging off the jumpnode
int i = 0;
for (SwitchRange* r = lo; r <= hi; r++) {
! for (int64_t j = r->lo(); j <= r->hi(); j++, i++) {
Node* input = _gvn.transform(new (C) JumpProjNode(jtn, i, r->dest(), (int)(j - lowval)));
{
PreserveJVMState pjvms(this);
set_control(input);
jump_if_always_fork(r->dest(), r->table_index());
src/share/vm/opto/parse2.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File