diff src/share/vm/graal/graalCodeInstaller.cpp @ 7089:af30115c9d0e

added metering of code installation failure rate to detect excessive failure caused by overly optimistic assumptions
author Doug Simon <doug.simon@oracle.com>
date Wed, 28 Nov 2012 20:39:43 +0100
parents 9ba90252ce08
children dff79b1f82f1
line wrap: on
line diff
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Wed Nov 28 19:18:39 2012 +0100
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Wed Nov 28 20:39:43 2012 +0100
@@ -23,12 +23,12 @@
 
 #include "precompiled.hpp"
 #include "runtime/javaCalls.hpp"
+#include "graal/graalEnv.hpp"
 #include "graal/graalCompiler.hpp"
 #include "graal/graalCodeInstaller.hpp"
 #include "graal/graalJavaAccess.hpp"
 #include "graal/graalCompilerToVM.hpp"
 #include "graal/graalVmIds.hpp"
-#include "graal/graalEnv.hpp"
 #include "c1/c1_Runtime1.hpp"
 #include "classfile/vmSymbols.hpp"
 #include "vmreg_x86.inline.hpp"
@@ -291,7 +291,7 @@
 }
 
 // constructor used to create a method
-CodeInstaller::CodeInstaller(Handle& comp_result, methodHandle method, nmethod*& nm, Handle installed_code) {
+CodeInstaller::CodeInstaller(Handle& comp_result, methodHandle method, GraalEnv::CodeInstallResult& result, nmethod*& nm, Handle installed_code) {
   _env = CURRENT_ENV;
   GraalCompiler::initialize_buffer_blob();
   CodeBuffer buffer(JavaThread::current()->get_buffer_blob());
@@ -308,7 +308,7 @@
 
   int stack_slots = _total_frame_size / HeapWordSize; // conversion to words
 
-  nm = GraalEnv::register_method(method, entry_bci, &_offsets, _custom_stack_area_offset, &buffer, stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table,
+  result = GraalEnv::register_method(method, nm, entry_bci, &_offsets, _custom_stack_area_offset, &buffer, stack_slots, _debug_recorder->_oopmaps, &_exception_handler_table,
     &_implicit_exception_table, GraalCompiler::instance(), _debug_recorder, _dependencies, NULL, -1, true, false, installed_code);
 
   method->clear_queued_for_compilation();