Mercurial > hg > graal-compiler
diff src/share/vm/graal/graalRuntime.hpp @ 15582:063ec2920d21
made Graal runtime initialization in hosted mode lazy
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 09 May 2014 18:46:41 +0200 |
parents | 0cb5c4d276d4 |
children | ddb3ef30fcd2 |
line wrap: on
line diff
--- a/src/share/vm/graal/graalRuntime.hpp Fri May 09 17:59:15 2014 +0200 +++ b/src/share/vm/graal/graalRuntime.hpp Fri May 09 18:46:41 2014 +0200 @@ -28,8 +28,24 @@ #include "memory/allocation.hpp" #include "runtime/deoptimization.hpp" -class GraalRuntime: public AllStatic { +class GraalRuntime: public CHeapObj<mtCompiler> { + private: + + static address _external_deopt_i2c_entry; + + enum { uninitialized, initializing, initialized }; + static volatile int _state; + public: + + static /*synchronized*/ void initialize(); + static BufferBlob* initialize_buffer_blob(); + static BasicType kindToBasicType(jchar ch); + static address create_external_deopt_i2c(); + static address get_external_deopt_i2c_entry() {return _external_deopt_i2c_entry;} + + // The following routines are all called from compiled Graal code + static void new_instance(JavaThread* thread, Klass* klass); static void new_array(JavaThread* thread, Klass* klass, jint length); static void new_multi_array(JavaThread* thread, Klass* klass, int rank, jint* dims); @@ -60,4 +76,20 @@ static void new_store_pre_barrier(JavaThread* thread); }; +// Tracing macros + +#define IF_TRACE_graal_1 if (!(TraceGraal >= 1)) ; else +#define IF_TRACE_graal_2 if (!(TraceGraal >= 2)) ; else +#define IF_TRACE_graal_3 if (!(TraceGraal >= 3)) ; else +#define IF_TRACE_graal_4 if (!(TraceGraal >= 4)) ; else +#define IF_TRACE_graal_5 if (!(TraceGraal >= 5)) ; else + +// using commas and else to keep one-instruction semantics + +#define TRACE_graal_1 if (!(TraceGraal >= 1 && (tty->print("TraceGraal-1: "), true))) ; else tty->print_cr +#define TRACE_graal_2 if (!(TraceGraal >= 2 && (tty->print(" TraceGraal-2: "), true))) ; else tty->print_cr +#define TRACE_graal_3 if (!(TraceGraal >= 3 && (tty->print(" TraceGraal-3: "), true))) ; else tty->print_cr +#define TRACE_graal_4 if (!(TraceGraal >= 4 && (tty->print(" TraceGraal-4: "), true))) ; else tty->print_cr +#define TRACE_graal_5 if (!(TraceGraal >= 5 && (tty->print(" TraceGraal-5: "), true))) ; else tty->print_cr + #endif // SHARE_VM_GRAAL_GRAAL_RUNTIME_HPP