src/share/vm/opto/loopopts.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Cdiff src/share/vm/opto/loopopts.cpp

src/share/vm/opto/loopopts.cpp

Print this page
rev 7999 : 8073480: C2 should optimize explicit range checks
Summary: explicit range checks should be recognized by C2
Reviewed-by:

*** 239,250 **** return; ProjNode* dp_proj = dp->as_Proj(); ProjNode* unc_proj = iff->as_If()->proj_out(1 - dp_proj->_con)->as_Proj(); if (exclude_loop_predicate && ! (unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate) || ! unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_range_check))) { // If this is a range check (IfNode::is_range_check), do not // reorder because Compile::allow_range_check_smearing might have // changed the check. return; // Let IGVN transformation change control dependence. } --- 239,250 ---- return; ProjNode* dp_proj = dp->as_Proj(); ProjNode* unc_proj = iff->as_If()->proj_out(1 - dp_proj->_con)->as_Proj(); if (exclude_loop_predicate && ! (unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_predicate) != NULL || ! unc_proj->is_uncommon_trap_proj(Deoptimization::Reason_range_check) != NULL)) { // If this is a range check (IfNode::is_range_check), do not // reorder because Compile::allow_range_check_smearing might have // changed the check. return; // Let IGVN transformation change control dependence. }
src/share/vm/opto/loopopts.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File