src/share/vm/c1/c1_LIRGenerator.hpp
Print this page
rev 4136 : 7153771: array bound check elimination for c1
Summary: when possible optimize out array bound checks, inserting predicates when needed.
Reviewed-by:
*** 410,419 ****
--- 410,421 ----
case If::neq: l = lir_cond_notEqual; break;
case If::lss: l = lir_cond_less; break;
case If::leq: l = lir_cond_lessEqual; break;
case If::geq: l = lir_cond_greaterEqual; break;
case If::gtr: l = lir_cond_greater; break;
+ case If::aeq: l = lir_cond_aboveEqual; break;
+ case If::beq: l = lir_cond_belowEqual; break;
};
return l;
}
#ifdef __SOFTFP__
*** 532,541 ****
--- 534,545 ----
virtual void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x);
virtual void do_ProfileCall (ProfileCall* x);
virtual void do_ProfileInvoke (ProfileInvoke* x);
virtual void do_RuntimeCall (RuntimeCall* x);
virtual void do_MemBar (MemBar* x);
+ virtual void do_RangeCheckPredicate(RangeCheckPredicate* x);
+ virtual void do_Assert (Assert* x);
};
class LIRItem: public CompilationResourceObj {
private: