changeset 18226:6eda3b299460

Record compilation dependencies with +LogCompilation
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Fri, 31 Oct 2014 12:20:56 -0700
parents 40074f6ac788
children bcb1e5c232d8
files src/share/vm/code/dependencies.cpp src/share/vm/code/dependencies.hpp src/share/vm/graal/graalCodeInstaller.cpp src/share/vm/graal/graalEnv.cpp
diffstat 4 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/code/dependencies.cpp	Fri Oct 31 11:25:32 2014 -0700
+++ b/src/share/vm/code/dependencies.cpp	Fri Oct 31 12:20:56 2014 -0700
@@ -125,9 +125,9 @@
 
 #ifdef GRAAL
 
-Dependencies::Dependencies(Arena* arena, OopRecorder* oop_recorder) {
+Dependencies::Dependencies(Arena* arena, OopRecorder* oop_recorder, CompileLog* log) {
   _oop_recorder = oop_recorder;
-  _log = NULL;
+  _log = log;
   _dep_seen = new(arena) GrowableArray<int>(arena, 500, 0, 0);
   _using_dep_values = true;
   DEBUG_ONLY(_dep_values[end_marker] = NULL);
@@ -792,8 +792,14 @@
     }
   }
   if (_deps != NULL && _deps->log() != NULL) {
-    Dependencies::write_dependency_to(_deps->log(),
-                                      type(), nargs, args, witness);
+    if (ciEnv::current() != NULL) {
+      Dependencies::write_dependency_to(_deps->log(),
+                                        type(), nargs, args, witness);
+    } else {
+      // Treat the CompileLog as an xmlstream instead
+      Dependencies::write_dependency_to((xmlStream*)_deps->log(),
+                                        type(), nargs, args, witness);
+    }
   } else {
     Dependencies::write_dependency_to(xtty,
                                       type(), nargs, args, witness);
--- a/src/share/vm/code/dependencies.hpp	Fri Oct 31 11:25:32 2014 -0700
+++ b/src/share/vm/code/dependencies.hpp	Fri Oct 31 12:20:56 2014 -0700
@@ -312,7 +312,7 @@
     initialize(env);
   }
 #ifdef GRAAL
-  Dependencies(Arena* arena, OopRecorder* oop_recorder);
+  Dependencies(Arena* arena, OopRecorder* oop_recorder, CompileLog* log);
 #endif // GRAAL
 
  private:
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Fri Oct 31 11:25:32 2014 -0700
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Fri Oct 31 12:20:56 2014 -0700
@@ -390,8 +390,10 @@
 }
 
 void CodeInstaller::initialize_assumptions(oop compiled_code) {
+  JavaThread* thread = JavaThread::current();
+  CompilerThread* compilerThread = thread->is_Compiler_thread() ? thread->as_CompilerThread() : NULL;
   _oop_recorder = new OopRecorder(&_arena, true);
-  _dependencies = new Dependencies(&_arena, _oop_recorder);
+  _dependencies = new Dependencies(&_arena, _oop_recorder, compilerThread != NULL ? compilerThread->log() : NULL);
   Handle assumptions_handle = CompilationResult::assumptions(HotSpotCompiledCode::comp(compiled_code));
   if (!assumptions_handle.is_null()) {
     objArrayHandle assumptions(Thread::current(), Assumptions::list(assumptions_handle()));
--- a/src/share/vm/graal/graalEnv.cpp	Fri Oct 31 11:25:32 2014 -0700
+++ b/src/share/vm/graal/graalEnv.cpp	Fri Oct 31 12:20:56 2014 -0700
@@ -428,6 +428,7 @@
     if (witness != NULL) {
       return false;
     }
+    deps.log_dependency();
   }
 
   return true;