comparison src/share/vm/c1/c1_Optimizer.cpp @ 2491:0654ee04b214

Merge with OpenJDK.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Fri, 22 Apr 2011 15:30:53 +0200
parents 13bc79b5c9c8
children d4c1fbc3de95
comparison
equal deleted inserted replaced
2490:29246b1d2d3c 2491:0654ee04b214
642 void NullCheckVisitor::do_NewMultiArray (NewMultiArray* x) { nce()->handle_NewArray(x); } 642 void NullCheckVisitor::do_NewMultiArray (NewMultiArray* x) { nce()->handle_NewArray(x); }
643 void NullCheckVisitor::do_CheckCast (CheckCast* x) {} 643 void NullCheckVisitor::do_CheckCast (CheckCast* x) {}
644 void NullCheckVisitor::do_InstanceOf (InstanceOf* x) {} 644 void NullCheckVisitor::do_InstanceOf (InstanceOf* x) {}
645 void NullCheckVisitor::do_MonitorEnter (MonitorEnter* x) { nce()->handle_AccessMonitor(x); } 645 void NullCheckVisitor::do_MonitorEnter (MonitorEnter* x) { nce()->handle_AccessMonitor(x); }
646 void NullCheckVisitor::do_MonitorExit (MonitorExit* x) { nce()->handle_AccessMonitor(x); } 646 void NullCheckVisitor::do_MonitorExit (MonitorExit* x) { nce()->handle_AccessMonitor(x); }
647 void NullCheckVisitor::do_Intrinsic (Intrinsic* x) { nce()->clear_last_explicit_null_check(); } 647 void NullCheckVisitor::do_Intrinsic (Intrinsic* x) { nce()->handle_Intrinsic(x); }
648 void NullCheckVisitor::do_BlockBegin (BlockBegin* x) {} 648 void NullCheckVisitor::do_BlockBegin (BlockBegin* x) {}
649 void NullCheckVisitor::do_Goto (Goto* x) {} 649 void NullCheckVisitor::do_Goto (Goto* x) {}
650 void NullCheckVisitor::do_If (If* x) {} 650 void NullCheckVisitor::do_If (If* x) {}
651 void NullCheckVisitor::do_IfInstanceOf (IfInstanceOf* x) {} 651 void NullCheckVisitor::do_IfInstanceOf (IfInstanceOf* x) {}
652 void NullCheckVisitor::do_TableSwitch (TableSwitch* x) {} 652 void NullCheckVisitor::do_TableSwitch (TableSwitch* x) {}
1021 } 1021 }
1022 1022
1023 1023
1024 void NullCheckEliminator::handle_Intrinsic(Intrinsic* x) { 1024 void NullCheckEliminator::handle_Intrinsic(Intrinsic* x) {
1025 if (!x->has_receiver()) { 1025 if (!x->has_receiver()) {
1026 if (x->id() == vmIntrinsics::_arraycopy) {
1027 for (int i = 0; i < x->number_of_arguments(); i++) {
1028 x->set_arg_needs_null_check(i, !set_contains(x->argument_at(i)));
1029 }
1030 }
1031
1026 // Be conservative 1032 // Be conservative
1027 clear_last_explicit_null_check(); 1033 clear_last_explicit_null_check();
1028 return; 1034 return;
1029 } 1035 }
1030 1036