提交 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")
# 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")
......
......@@ -3405,7 +3405,7 @@ bool GraphBuilder::try_inline_full(ciMethod* callee, bool holder_known) {
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 @@ void GraphBuilder::profile_call(Value recv, ciKlass* known_holder) {
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));
}
......@@ -347,7 +347,7 @@ class GraphBuilder VALUE_OBJ_CLASS_SPEC {
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(); }
......
......@@ -2246,13 +2246,11 @@ LEAF(ProfileInvoke, Instruction)
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 @@ LEAF(ProfileInvoke, Instruction)
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*);
};
......
......@@ -2309,7 +2309,7 @@ void LIRGenerator::do_Base(Base* x) {
// 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);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册