提交 b19bba8c 编写于 作者: T twisti

7032458: Zero and Shark fixes

Reviewed-by: twisti
Contributed-by: NGary Benson <gbenson@redhat.com>
上级 c1608aa4
/* /*
* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -54,4 +54,6 @@ define_pd_global(bool, RewriteFrequentPairs, true); ...@@ -54,4 +54,6 @@ define_pd_global(bool, RewriteFrequentPairs, true);
define_pd_global(bool, UseMembar, false); define_pd_global(bool, UseMembar, false);
// GC Ergo Flags
define_pd_global(intx, CMSYoungGenPerWorker, 16*M); // default max size of CMS young gen, per GC worker thread
#endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP #endif // CPU_ZERO_VM_GLOBALS_ZERO_HPP
/* /*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2009 Red Hat, Inc. * Copyright 2007, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#include "oops/oop.inline.hpp" #include "oops/oop.inline.hpp"
#include "runtime/safepoint.hpp" #include "runtime/safepoint.hpp"
void Relocation::pd_set_data_value(address x, intptr_t o) { void Relocation::pd_set_data_value(address x, intptr_t o, bool verify_only) {
ShouldNotCallThis(); ShouldNotCallThis();
} }
......
/* /*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -78,15 +78,17 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters( ...@@ -78,15 +78,17 @@ AdapterHandlerEntry* SharedRuntime::generate_i2c2i_adapters(
nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm, nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
methodHandle method, methodHandle method,
int total_in_args, int compile_id,
int comp_args_on_stack, int total_args_passed,
BasicType *in_sig_bt, int max_arg,
VMRegPair *in_regs, BasicType *sig_bt,
VMRegPair *regs,
BasicType ret_type) { BasicType ret_type) {
#ifdef SHARK #ifdef SHARK
return SharkCompiler::compiler()->generate_native_wrapper(masm, return SharkCompiler::compiler()->generate_native_wrapper(masm,
method, method,
in_sig_bt, compile_id,
sig_bt,
ret_type); ret_type);
#else #else
ShouldNotCallThis(); ShouldNotCallThis();
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "ci/ciEnv.hpp" #include "ci/ciEnv.hpp"
#include "ci/ciKlass.hpp" #include "ci/ciKlass.hpp"
#include "ci/ciMethodBlocks.hpp" #include "ci/ciMethodBlocks.hpp"
#include "shark/shark_globals.hpp"
#endif #endif
......
...@@ -847,9 +847,9 @@ CompilerThread* CompileBroker::make_compiler_thread(const char* name, CompileQue ...@@ -847,9 +847,9 @@ CompilerThread* CompileBroker::make_compiler_thread(const char* name, CompileQue
// Initialize the compilation queue // Initialize the compilation queue
void CompileBroker::init_compiler_threads(int c1_compiler_count, int c2_compiler_count) { void CompileBroker::init_compiler_threads(int c1_compiler_count, int c2_compiler_count) {
EXCEPTION_MARK; EXCEPTION_MARK;
#ifndef ZERO #if !defined(ZERO) && !defined(SHARK)
assert(c2_compiler_count > 0 || c1_compiler_count > 0, "No compilers?"); assert(c2_compiler_count > 0 || c1_compiler_count > 0, "No compilers?");
#endif // !ZERO #endif // !ZERO && !SHARK
if (c2_compiler_count > 0) { if (c2_compiler_count > 0) {
_c2_method_queue = new CompileQueue("C2MethodQueue", MethodCompileQueue_lock); _c2_method_queue = new CompileQueue("C2MethodQueue", MethodCompileQueue_lock);
} }
...@@ -1118,7 +1118,7 @@ nmethod* CompileBroker::compile_method(methodHandle method, int osr_bci, ...@@ -1118,7 +1118,7 @@ nmethod* CompileBroker::compile_method(methodHandle method, int osr_bci,
assert(!HAS_PENDING_EXCEPTION, "No exception should be present"); assert(!HAS_PENDING_EXCEPTION, "No exception should be present");
// some prerequisites that are compiler specific // some prerequisites that are compiler specific
if (compiler(comp_level)->is_c2()) { if (compiler(comp_level)->is_c2() || compiler(comp_level)->is_shark()) {
method->constants()->resolve_string_constants(CHECK_0); method->constants()->resolve_string_constants(CHECK_0);
// Resolve all classes seen in the signature of the method // Resolve all classes seen in the signature of the method
// we are compiling. // we are compiling.
......
...@@ -568,7 +568,7 @@ BytecodeInterpreter::run(interpreterState istate) { ...@@ -568,7 +568,7 @@ BytecodeInterpreter::run(interpreterState istate) {
/* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xDC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
/* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xE0 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
/* 0xE4 */ &&opc_default, &&opc_return_register_finalizer, &&opc_default, &&opc_default, /* 0xE4 */ &&opc_default, &&opc_default, &&opc_default, &&opc_return_register_finalizer,
/* 0xE8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xE8 */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
/* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default, /* 0xEC */ &&opc_default, &&opc_default, &&opc_default, &&opc_default,
......
/* /*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009, 2010 Red Hat, Inc. * Copyright 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -218,6 +218,7 @@ void SharkCompiler::compile_method(ciEnv* env, ...@@ -218,6 +218,7 @@ void SharkCompiler::compile_method(ciEnv* env,
nmethod* SharkCompiler::generate_native_wrapper(MacroAssembler* masm, nmethod* SharkCompiler::generate_native_wrapper(MacroAssembler* masm,
methodHandle target, methodHandle target,
int compile_id,
BasicType* arg_types, BasicType* arg_types,
BasicType return_type) { BasicType return_type) {
assert(is_initialized(), "should be"); assert(is_initialized(), "should be");
...@@ -241,6 +242,7 @@ nmethod* SharkCompiler::generate_native_wrapper(MacroAssembler* masm, ...@@ -241,6 +242,7 @@ nmethod* SharkCompiler::generate_native_wrapper(MacroAssembler* masm,
// Return the nmethod for installation in the VM // Return the nmethod for installation in the VM
return nmethod::new_native_nmethod(target, return nmethod::new_native_nmethod(target,
compile_id,
masm->code(), masm->code(),
0, 0,
0, 0,
......
/* /*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009 Red Hat, Inc. * Copyright 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -60,6 +60,7 @@ class SharkCompiler : public AbstractCompiler { ...@@ -60,6 +60,7 @@ class SharkCompiler : public AbstractCompiler {
// Generate a wrapper for a native (JNI) method // Generate a wrapper for a native (JNI) method
nmethod* generate_native_wrapper(MacroAssembler* masm, nmethod* generate_native_wrapper(MacroAssembler* masm,
methodHandle target, methodHandle target,
int compile_id,
BasicType* arg_types, BasicType* arg_types,
BasicType return_type); BasicType return_type);
...@@ -113,7 +114,8 @@ class SharkCompiler : public AbstractCompiler { ...@@ -113,7 +114,8 @@ class SharkCompiler : public AbstractCompiler {
// Global access // Global access
public: public:
static SharkCompiler* compiler() { static SharkCompiler* compiler() {
AbstractCompiler *compiler = CompileBroker::compiler(CompLevel_simple); AbstractCompiler *compiler =
CompileBroker::compiler(CompLevel_full_optimization);
assert(compiler->is_shark() && compiler->is_initialized(), "should be"); assert(compiler->is_shark() && compiler->is_initialized(), "should be");
return (SharkCompiler *) compiler; return (SharkCompiler *) compiler;
} }
......
...@@ -746,9 +746,9 @@ enum CompLevel { ...@@ -746,9 +746,9 @@ enum CompLevel {
CompLevel_simple = 1, // C1 CompLevel_simple = 1, // C1
CompLevel_limited_profile = 2, // C1, invocation & backedge counters CompLevel_limited_profile = 2, // C1, invocation & backedge counters
CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo CompLevel_full_profile = 3, // C1, invocation & backedge counters + mdo
CompLevel_full_optimization = 4, // C2 CompLevel_full_optimization = 4, // C2 or Shark
#if defined(COMPILER2) #if defined(COMPILER2) || defined(SHARK)
CompLevel_highest_tier = CompLevel_full_optimization, // pure C2 and tiered CompLevel_highest_tier = CompLevel_full_optimization, // pure C2 and tiered
#elif defined(COMPILER1) #elif defined(COMPILER1)
CompLevel_highest_tier = CompLevel_simple, // pure C1 CompLevel_highest_tier = CompLevel_simple, // pure C1
...@@ -760,7 +760,7 @@ enum CompLevel { ...@@ -760,7 +760,7 @@ enum CompLevel {
CompLevel_initial_compile = CompLevel_full_profile // tiered CompLevel_initial_compile = CompLevel_full_profile // tiered
#elif defined(COMPILER1) #elif defined(COMPILER1)
CompLevel_initial_compile = CompLevel_simple // pure C1 CompLevel_initial_compile = CompLevel_simple // pure C1
#elif defined(COMPILER2) #elif defined(COMPILER2) || defined(SHARK)
CompLevel_initial_compile = CompLevel_full_optimization // pure C2 CompLevel_initial_compile = CompLevel_full_optimization // pure C2
#else #else
CompLevel_initial_compile = CompLevel_none CompLevel_initial_compile = CompLevel_none
......
...@@ -77,7 +77,9 @@ ...@@ -77,7 +77,9 @@
# endif # endif
#ifdef LINUX #ifdef LINUX
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS
#endif // __STDC_LIMIT_MACROS
#include <inttypes.h> #include <inttypes.h>
#include <signal.h> #include <signal.h>
#include <ucontext.h> #include <ucontext.h>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册