changeset 1745:80c9354976b0

6988346: 6986046 breaks tiered Summary: adjusted profiling code generation to use the new ValueStack implementation; lowered optimization level for c1_LinearScan.cpp on solaris x64. Reviewed-by: kvn, never
author iveresov
date Wed, 29 Sep 2010 16:53:42 -0700
parents ad0638ff8ea4
children 56601ef83436
files make/solaris/makefiles/amd64.make src/share/vm/c1/c1_GraphBuilder.cpp src/share/vm/c1/c1_GraphBuilder.hpp src/share/vm/c1/c1_Instruction.hpp src/share/vm/c1/c1_LIRGenerator.cpp
diffstat 5 files changed, 8 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/make/solaris/makefiles/amd64.make	Wed Sep 29 18:53:28 2010 +0200
+++ b/make/solaris/makefiles/amd64.make	Wed Sep 29 16:53:42 2010 -0700
@@ -35,7 +35,8 @@
 
 # Temporary until SS10 C++ compiler is fixed
 OPT_CFLAGS/generateOptoStub.o = -xO2
-
+# Temporary util SS12u1 C++ compiler is fixed
+OPT_CFLAGS/c1_LinearScan.o = -xO2
 else
 
 ifeq ("${Platform_compiler}", "gcc")
--- a/src/share/vm/c1/c1_GraphBuilder.cpp	Wed Sep 29 18:53:28 2010 +0200
+++ b/src/share/vm/c1/c1_GraphBuilder.cpp	Wed Sep 29 16:53:42 2010 -0700
@@ -3405,7 +3405,7 @@
       profile_call(recv, holder_known ? callee->holder() : NULL);
     }
     if (profile_inlined_calls()) {
-      profile_invocation(callee, state(), 0);
+      profile_invocation(callee, copy_state_before());
     }
   }
 
@@ -3780,6 +3780,6 @@
   append(new ProfileCall(method(), bci(), recv, known_holder));
 }
 
-void GraphBuilder::profile_invocation(ciMethod* callee, ValueStack* state, int bci) {
-  append(new ProfileInvoke(callee, state, bci));
+void GraphBuilder::profile_invocation(ciMethod* callee, ValueStack* state) {
+  append(new ProfileInvoke(callee, state));
 }
--- a/src/share/vm/c1/c1_GraphBuilder.hpp	Wed Sep 29 18:53:28 2010 +0200
+++ b/src/share/vm/c1/c1_GraphBuilder.hpp	Wed Sep 29 16:53:42 2010 -0700
@@ -347,7 +347,7 @@
   NOT_PRODUCT(void print_inline_result(ciMethod* callee, bool res);)
 
   void profile_call(Value recv, ciKlass* predicted_holder);
-  void profile_invocation(ciMethod* inlinee, ValueStack* state, int bci);
+  void profile_invocation(ciMethod* inlinee, ValueStack* state);
 
   // Shortcuts to profiling control.
   bool is_profiling()          { return _compilation->is_profiling();          }
--- a/src/share/vm/c1/c1_Instruction.hpp	Wed Sep 29 18:53:28 2010 +0200
+++ b/src/share/vm/c1/c1_Instruction.hpp	Wed Sep 29 16:53:42 2010 -0700
@@ -2246,13 +2246,11 @@
  private:
   ciMethod*   _inlinee;
   ValueStack* _state;
-  int         _bci_of_invoke;
 
  public:
-  ProfileInvoke(ciMethod* inlinee,  ValueStack* state, int bci)
+  ProfileInvoke(ciMethod* inlinee,  ValueStack* state)
     : Instruction(voidType)
     , _inlinee(inlinee)
-    , _bci_of_invoke(bci)
     , _state(state)
   {
     // The ProfileInvoke has side-effects and must occur precisely where located QQQ???
@@ -2261,7 +2259,6 @@
 
   ciMethod* inlinee()      { return _inlinee; }
   ValueStack* state()      { return _state; }
-  int bci_of_invoke()      { return _bci_of_invoke; }
   virtual void input_values_do(ValueVisitor*)   {}
   virtual void state_values_do(ValueVisitor*);
 };
--- a/src/share/vm/c1/c1_LIRGenerator.cpp	Wed Sep 29 18:53:28 2010 +0200
+++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Wed Sep 29 16:53:42 2010 -0700
@@ -2309,7 +2309,7 @@
 
   // increment invocation counters if needed
   if (!method()->is_accessor()) { // Accessors do not have MDOs, so no counting.
-    CodeEmitInfo* info = new CodeEmitInfo(scope()->start()->state(), NULL);
+    CodeEmitInfo* info = new CodeEmitInfo(scope()->start()->state()->copy(ValueStack::StateBefore, SynchronizationEntryBCI), NULL);
     increment_invocation_counter(info);
   }