< prev index next >
src/share/vm/jvmci/jvmciRuntime.hpp
Print this page
@@ -52,37 +52,22 @@
int lineNo() { return _lineNo; }
bool is_aborted() { return _abort; }
void set_filename(char* path) {_filename = path; _lineNo = 0;}
};
-#define CHECK_ABORT THREAD); \
- if (HAS_PENDING_EXCEPTION) { \
- char buf[256]; \
- jio_snprintf(buf, 256, "Uncaught exception at %s:%d", __FILE__, __LINE__); \
- JVMCIRuntime::abort_on_pending_exception(PENDING_EXCEPTION, buf); \
- return; \
- } \
- (void)(0
-
-#define CHECK_ABORT_(result) THREAD); \
- if (HAS_PENDING_EXCEPTION) { \
- char buf[256]; \
- jio_snprintf(buf, 256, "Uncaught exception at %s:%d", __FILE__, __LINE__); \
- JVMCIRuntime::abort_on_pending_exception(PENDING_EXCEPTION, buf); \
- return result; \
- } \
- (void)(0
-
class JVMCIRuntime: public AllStatic {
private:
static jobject _HotSpotJVMCIRuntime_instance;
static bool _HotSpotJVMCIRuntime_initialized;
static bool _well_known_classes_initialized;
static const char* _compiler;
static int _options_count;
static SystemProperty** _options;
+ static int _trivial_prefixes_count;
+ static char** _trivial_prefixes;
+
static bool _shutdown_called;
/**
* Instantiates a service object, calls its default constructor and returns it.
*
@@ -106,13 +91,18 @@
/**
* Saves the value of the system properties starting with "jvmci.option." for processing
* when JVMCI is initialized.
*
* @param props the head of the system property list
- * @return JNI_ERR if a JVMCI option has a zero length value, JNI_OK otherwise
*/
- static jint save_options(SystemProperty* props);
+ static void save_options(SystemProperty* props);
+
+ /**
+ * If either the PrintFlags or ShowFlags JVMCI option is present,
+ * then JVMCI is initialized to show the help message.
+ */
+ static void maybe_print_flags(TRAPS);
static bool is_HotSpotJVMCIRuntime_initialized() { return _HotSpotJVMCIRuntime_initialized; }
/**
* Gets the singleton HotSpotJVMCIRuntime instance, initializing it if necessary
@@ -148,10 +138,11 @@
static bool shutdown_called() {
return _shutdown_called;
}
+ static bool treat_as_trivial(Method* method);
static void parse_lines(char* path, ParseClosure* closure, bool warnStatFailure);
/**
* Aborts the VM due to an unexpected exception.
*/
@@ -160,10 +151,28 @@
/**
* Calls Throwable.printStackTrace() on a given exception.
*/
static void call_printStackTrace(Handle exception, Thread* thread);
+#define CHECK_ABORT THREAD); \
+ if (HAS_PENDING_EXCEPTION) { \
+ char buf[256]; \
+ jio_snprintf(buf, 256, "Uncaught exception at %s:%d", __FILE__, __LINE__); \
+ JVMCIRuntime::abort_on_pending_exception(PENDING_EXCEPTION, buf); \
+ return; \
+ } \
+ (void)(0
+
+#define CHECK_ABORT_(result) THREAD); \
+ if (HAS_PENDING_EXCEPTION) { \
+ char buf[256]; \
+ jio_snprintf(buf, 256, "Uncaught exception at %s:%d", __FILE__, __LINE__); \
+ JVMCIRuntime::abort_on_pending_exception(PENDING_EXCEPTION, buf); \
+ return result; \
+ } \
+ (void)(0
+
static BasicType kindToBasicType(jchar ch);
// The following routines are all called from compiled JVMCI code
static void new_instance(JavaThread* thread, Klass* klass);
@@ -181,17 +190,15 @@
static void create_out_of_bounds_exception(JavaThread* thread, jint index);
static void vm_error(JavaThread* thread, jlong where, jlong format, jlong value);
static oopDesc* load_and_clear_exception(JavaThread* thread);
static void log_printf(JavaThread* thread, oopDesc* format, jlong v1, jlong v2, jlong v3);
static void log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline);
- // Note: Must be kept in sync with constants in com.oracle.graal.replacements.Log
- enum {
- LOG_OBJECT_NEWLINE = 0x01,
- LOG_OBJECT_STRING = 0x02,
- LOG_OBJECT_ADDRESS = 0x04
- };
- static void log_object(JavaThread* thread, oopDesc* msg, jint flags);
+ // Print the passed in object, optionally followed by a newline. If
+ // as_string is true and the object is a java.lang.String then it
+ // printed as a string, otherwise the type of the object is printed
+ // followed by its address.
+ static void log_object(JavaThread* thread, oopDesc* object, bool as_string, bool newline);
static void write_barrier_pre(JavaThread* thread, oopDesc* obj);
static void write_barrier_post(JavaThread* thread, void* card);
static jboolean validate_object(JavaThread* thread, oopDesc* parent, oopDesc* child);
static void new_store_pre_barrier(JavaThread* thread);
< prev index next >