提交 7a1604dd 编写于 作者: I iveresov

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
上级 980afabc
...@@ -35,7 +35,8 @@ ifeq ("${Platform_compiler}", "sparcWorks") ...@@ -35,7 +35,8 @@ ifeq ("${Platform_compiler}", "sparcWorks")
# Temporary until SS10 C++ compiler is fixed # Temporary until SS10 C++ compiler is fixed
OPT_CFLAGS/generateOptoStub.o = -xO2 OPT_CFLAGS/generateOptoStub.o = -xO2
# Temporary util SS12u1 C++ compiler is fixed
OPT_CFLAGS/c1_LinearScan.o = -xO2
else else
ifeq ("${Platform_compiler}", "gcc") ifeq ("${Platform_compiler}", "gcc")
......
...@@ -3405,7 +3405,7 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) { ...@@ -3405,7 +3405,7 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
profile_call(recv, holder_known ? callee->holder() : NULL); profile_call(recv, holder_known ? callee->holder() : NULL);
} }
if (profile_inlined_calls()) { if (profile_inlined_calls()) {
profile_invocation(callee, state(), 0); profile_invocation(callee, copy_state_before());
} }
} }
...@@ -3780,6 +3780,6 @@ void GraphBuilder::profile_call(Value recv, ciKlass* known_holder) { ...@@ -3780,6 +3780,6 @@ void GraphBuilder::profile_call(Value recv, ciKlass* known_holder) {
append(new ProfileCall(method(), bci(), recv, known_holder)); append(new ProfileCall(method(), bci(), recv, known_holder));
} }
void GraphBuilder::profile_invocation(ciMethod* callee, ValueStack* state, int bci) { void GraphBuilder::profile_invocation(ciMethod* callee, ValueStack* state) {
append(new ProfileInvoke(callee, state, bci)); append(new ProfileInvoke(callee, state));
} }
...@@ -347,7 +347,7 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC { ...@@ -347,7 +347,7 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC {
NOT_PRODUCT(void print_inline_result(ciMethod* callee, bool res);) NOT_PRODUCT(void print_inline_result(ciMethod* callee, bool res);)
void profile_call(Value recv, ciKlass* predicted_holder); 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. // Shortcuts to profiling control.
bool is_profiling() { return _compilation->is_profiling(); } bool is_profiling() { return _compilation->is_profiling(); }
......
...@@ -2246,13 +2246,11 @@ LEAF(ProfileInvoke, Instruction) ...@@ -2246,13 +2246,11 @@ LEAF(ProfileInvoke, Instruction)
private: private:
ciMethod* _inlinee; ciMethod* _inlinee;
ValueStack* _state; ValueStack* _state;
int _bci_of_invoke;
public: public:
ProfileInvoke(ciMethod* inlinee, ValueStack* state, int bci) ProfileInvoke(ciMethod* inlinee, ValueStack* state)
: Instruction(voidType) : Instruction(voidType)
, _inlinee(inlinee) , _inlinee(inlinee)
, _bci_of_invoke(bci)
, _state(state) , _state(state)
{ {
// The ProfileInvoke has side-effects and must occur precisely where located QQQ??? // The ProfileInvoke has side-effects and must occur precisely where located QQQ???
...@@ -2261,7 +2259,6 @@ LEAF(ProfileInvoke, Instruction) ...@@ -2261,7 +2259,6 @@ LEAF(ProfileInvoke, Instruction)
ciMethod* inlinee() { return _inlinee; } ciMethod* inlinee() { return _inlinee; }
ValueStack* state() { return _state; } ValueStack* state() { return _state; }
int bci_of_invoke() { return _bci_of_invoke; }
virtual void input_values_do(ValueVisitor*) {} virtual void input_values_do(ValueVisitor*) {}
virtual void state_values_do(ValueVisitor*); virtual void state_values_do(ValueVisitor*);
}; };
......
...@@ -2309,7 +2309,7 @@ void LIRGenerator::do_Base(Base* x) { ...@@ -2309,7 +2309,7 @@ void LIRGenerator::do_Base(Base* x) {
// increment invocation counters if needed // increment invocation counters if needed
if (!method()->is_accessor()) { // Accessors do not have MDOs, so no counting. 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); increment_invocation_counter(info);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册