comparison src/share/vm/c1/c1_GraphBuilder.cpp @ 14726:92aa6797d639

Backed out merge changeset: b51e29501f30 Backed out merge revision to its first parent (8f483e200405)
author Doug Simon <doug.simon@oracle.com>
date Mon, 24 Mar 2014 21:30:43 +0100
parents b51e29501f30
children
comparison
equal deleted inserted replaced
14719:0bdd0d157040 14726:92aa6797d639
1434 call_register_finalizer(); 1434 call_register_finalizer();
1435 } 1435 }
1436 1436
1437 bool need_mem_bar = false; 1437 bool need_mem_bar = false;
1438 if (method()->name() == ciSymbol::object_initializer_name() && 1438 if (method()->name() == ciSymbol::object_initializer_name() &&
1439 (scope()->wrote_final() || (AlwaysSafeConstructors && scope()->wrote_fields()))) { 1439 scope()->wrote_final()) {
1440 need_mem_bar = true; 1440 need_mem_bar = true;
1441 } 1441 }
1442 1442
1443 // Check to see whether we are inlining. If so, Return 1443 // Check to see whether we are inlining. If so, Return
1444 // instructions become Gotos to the continuation point. 1444 // instructions become Gotos to the continuation point.
1546 } 1546 }
1547 } 1547 }
1548 1548
1549 if (field->is_final() && (code == Bytecodes::_putfield)) { 1549 if (field->is_final() && (code == Bytecodes::_putfield)) {
1550 scope()->set_wrote_final(); 1550 scope()->set_wrote_final();
1551 }
1552
1553 if (code == Bytecodes::_putfield) {
1554 scope()->set_wrote_fields();
1555 } 1551 }
1556 1552
1557 const int offset = !needs_patching ? field->offset() : -1; 1553 const int offset = !needs_patching ? field->offset() : -1;
1558 switch (code) { 1554 switch (code) {
1559 case Bytecodes::_getstatic: { 1555 case Bytecodes::_getstatic: {
3771 if (is_profiling() && !callee->ensure_method_data()) { 3767 if (is_profiling() && !callee->ensure_method_data()) {
3772 INLINE_BAILOUT("mdo allocation failed"); 3768 INLINE_BAILOUT("mdo allocation failed");
3773 } 3769 }
3774 3770
3775 // now perform tests that are based on flag settings 3771 // now perform tests that are based on flag settings
3776 if (callee->force_inline() || callee->should_inline()) { 3772 if (callee->force_inline()) {
3777 if (inline_level() > MaxForceInlineLevel ) INLINE_BAILOUT("MaxForceInlineLevel"); 3773 if (inline_level() > MaxForceInlineLevel) INLINE_BAILOUT("MaxForceInlineLevel");
3778 if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("recursive inlining too deep"); 3774 print_inlining(callee, "force inline by annotation");
3779 3775 } else if (callee->should_inline()) {
3780 const char* msg = ""; 3776 print_inlining(callee, "force inline by CompileOracle");
3781 if (callee->force_inline()) msg = "force inline by annotation";
3782 if (callee->should_inline()) msg = "force inline by CompileOracle";
3783 print_inlining(callee, msg);
3784 } else { 3777 } else {
3785 // use heuristic controls on inlining 3778 // use heuristic controls on inlining
3786 if (inline_level() > MaxInlineLevel ) INLINE_BAILOUT("inlining too deep"); 3779 if (inline_level() > MaxInlineLevel ) INLINE_BAILOUT("inlining too deep");
3787 if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("recursive inlining too deep"); 3780 if (recursive_inline_level(callee) > MaxRecursiveInlineLevel) INLINE_BAILOUT("recursive inlining too deep");
3788 if (callee->code_size_for_inlining() > max_inline_size() ) INLINE_BAILOUT("callee is too large"); 3781 if (callee->code_size_for_inlining() > max_inline_size() ) INLINE_BAILOUT("callee is too large");