--- a/hotspot/src/share/vm/c1/c1_Compiler.cpp Mon Jan 06 15:35:20 2014 -0800
+++ b/hotspot/src/share/vm/c1/c1_Compiler.cpp Mon Jan 06 17:23:07 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,8 @@
#include "runtime/sharedRuntime.hpp"
-Compiler::Compiler () {}
+Compiler::Compiler() : AbstractCompiler(c1) {
+}
void Compiler::init_c1_runtime() {
BufferBlob* buffer_blob = CompilerThread::current()->get_buffer_blob();
--- a/hotspot/src/share/vm/c1/c1_Compiler.hpp Mon Jan 06 15:35:20 2014 -0800
+++ b/hotspot/src/share/vm/c1/c1_Compiler.hpp Mon Jan 06 17:23:07 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,8 +42,6 @@
// Name of this compiler
virtual const char* name() { return "C1"; }
- virtual bool is_c1() { return true; };
-
// Missing feature tests
virtual bool supports_native() { return true; }
virtual bool supports_osr () { return true; }
--- a/hotspot/src/share/vm/compiler/abstractCompiler.hpp Mon Jan 06 15:35:20 2014 -0800
+++ b/hotspot/src/share/vm/compiler/abstractCompiler.hpp Mon Jan 06 17:23:07 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -40,8 +40,19 @@
// This thread will initialize the compiler runtime.
bool should_perform_init();
+ // The (closed set) of concrete compiler classes.
+ enum Type {
+ none,
+ c1,
+ c2,
+ shark
+ };
+
+ private:
+ Type _type;
+
public:
- AbstractCompiler() : _compiler_state(uninitialized), _num_compiler_threads(0) {}
+ AbstractCompiler(Type type) : _type(type), _compiler_state(uninitialized), _num_compiler_threads(0) {}
// This function determines the compiler thread that will perform the
// shutdown of the corresponding compiler runtime.
@@ -54,27 +65,11 @@
virtual bool supports_native() { return true; }
virtual bool supports_osr () { return true; }
virtual bool can_compile_method(methodHandle method) { return true; }
-#if defined(TIERED) || ( !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK))
- virtual bool is_c1 () { return false; }
- virtual bool is_c2 () { return false; }
- virtual bool is_shark() { return false; }
-#else
-#ifdef COMPILER1
- bool is_c1 () { return true; }
- bool is_c2 () { return false; }
- bool is_shark() { return false; }
-#endif // COMPILER1
-#ifdef COMPILER2
- bool is_c1 () { return false; }
- bool is_c2 () { return true; }
- bool is_shark() { return false; }
-#endif // COMPILER2
-#ifdef SHARK
- bool is_c1 () { return false; }
- bool is_c2 () { return false; }
- bool is_shark() { return true; }
-#endif // SHARK
-#endif // TIERED
+
+ // Compiler type queries.
+ bool is_c1() { return _type == c1; }
+ bool is_c2() { return _type == c2; }
+ bool is_shark() { return _type == shark; }
// Customization
virtual void initialize () = 0;
--- a/hotspot/src/share/vm/opto/c2compiler.hpp Mon Jan 06 15:35:20 2014 -0800
+++ b/hotspot/src/share/vm/opto/c2compiler.hpp Mon Jan 06 17:23:07 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,13 +32,11 @@
static bool init_c2_runtime();
public:
+ C2Compiler() : AbstractCompiler(c2) {}
+
// Name
const char *name() { return "C2"; }
-#ifdef TIERED
- virtual bool is_c2() { return true; };
-#endif // TIERED
-
void initialize();
// Compilation entry point for methods
--- a/hotspot/src/share/vm/shark/sharkCompiler.cpp Mon Jan 06 15:35:20 2014 -0800
+++ b/hotspot/src/share/vm/shark/sharkCompiler.cpp Mon Jan 06 17:23:07 2014 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright 2008, 2009, 2010, 2011 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -58,7 +58,7 @@
}
SharkCompiler::SharkCompiler()
- : AbstractCompiler() {
+ : AbstractCompiler(shark) {
// Create the lock to protect the memory manager and execution engine
_execution_engine_lock = new Monitor(Mutex::leaf, "SharkExecutionEngineLock");
MutexLocker locker(execution_engine_lock());