< prev index next >

src/share/vm/ci/bcEscapeAnalyzer.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2005, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 263,272 **** --- 263,274 ---- code = Bytecodes::_invokespecial; break; case Bytecodes::_invokehandle: code = target->is_static() ? Bytecodes::_invokestatic : Bytecodes::_invokespecial; break; + default: + break; } } // compute size of arguments int arg_size = target->invoke_arg_size(code);
*** 298,312 **** } // determine actual method (use CHA if necessary) ciMethod* inline_target = NULL; if (target->is_loaded() && klass->is_loaded() ! && (klass->is_initialized() || klass->is_interface() && target->holder()->is_initialized()) && target->is_loaded()) { if (code == Bytecodes::_invokestatic || code == Bytecodes::_invokespecial ! || code == Bytecodes::_invokevirtual && target->is_final_method()) { inline_target = target; } else { inline_target = target->find_monomorphic_target(calling_klass, callee_holder, actual_recv); } } --- 300,314 ---- } // determine actual method (use CHA if necessary) ciMethod* inline_target = NULL; if (target->is_loaded() && klass->is_loaded() ! && (klass->is_initialized() || (klass->is_interface() && target->holder()->is_initialized())) && target->is_loaded()) { if (code == Bytecodes::_invokestatic || code == Bytecodes::_invokespecial ! || (code == Bytecodes::_invokevirtual && target->is_final_method())) { inline_target = target; } else { inline_target = target->find_monomorphic_target(calling_klass, callee_holder, actual_recv); } }
*** 339,349 **** } _unknown_modified = _unknown_modified || analyzer.has_non_arg_side_affects(); // record dependencies if at least one parameter retained stack-allocatable if (must_record_dependencies) { ! if (code == Bytecodes::_invokeinterface || code == Bytecodes::_invokevirtual && !target->is_final_method()) { _dependencies.append(actual_recv); _dependencies.append(inline_target); } _dependencies.appendAll(analyzer.dependencies()); } --- 341,352 ---- } _unknown_modified = _unknown_modified || analyzer.has_non_arg_side_affects(); // record dependencies if at least one parameter retained stack-allocatable if (must_record_dependencies) { ! if (code == Bytecodes::_invokeinterface || ! (code == Bytecodes::_invokevirtual && !target->is_final_method())) { _dependencies.append(actual_recv); _dependencies.append(inline_target); } _dependencies.appendAll(analyzer.dependencies()); }
< prev index next >