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
--- 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")
--- 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));
}
--- 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(); }
--- 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*);
};
--- 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);
}