# HG changeset patch # User iveresov # Date 1285804422 25200 # Node ID b399fd234e478bb15d630f0c2905abae50495091 # Parent b84813b41757aef4d70b346f4f38babcc473e3d5 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 diff -r b84813b41757 -r b399fd234e47 hotspot/make/solaris/makefiles/amd64.make --- a/hotspot/make/solaris/makefiles/amd64.make Wed Sep 29 18:53:28 2010 +0200 +++ b/hotspot/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") diff -r b84813b41757 -r b399fd234e47 hotspot/src/share/vm/c1/c1_GraphBuilder.cpp --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Wed Sep 29 18:53:28 2010 +0200 +++ b/hotspot/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)); } diff -r b84813b41757 -r b399fd234e47 hotspot/src/share/vm/c1/c1_GraphBuilder.hpp --- a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp Wed Sep 29 18:53:28 2010 +0200 +++ b/hotspot/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(); } diff -r b84813b41757 -r b399fd234e47 hotspot/src/share/vm/c1/c1_Instruction.hpp --- a/hotspot/src/share/vm/c1/c1_Instruction.hpp Wed Sep 29 18:53:28 2010 +0200 +++ b/hotspot/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*); }; diff -r b84813b41757 -r b399fd234e47 hotspot/src/share/vm/c1/c1_LIRGenerator.cpp --- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Wed Sep 29 18:53:28 2010 +0200 +++ b/hotspot/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); }