Mercurial > hg > graal-jvmci-8
comparison src/share/vm/graal/graalCompiler.cpp @ 15463:a20be10ad437
made Graal work with the HotSpot compiler queue and compiler threads, enabled by -XX:-UseGraalCompilationQueue
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 02 May 2014 00:36:27 +0200 |
parents | 6876a4599b7e |
children | 07fac8558d7b |
comparison
equal
deleted
inserted
replaced
15462:05d3f069cff2 | 15463:a20be10ad437 |
---|---|
42 _instance = this; | 42 _instance = this; |
43 } | 43 } |
44 | 44 |
45 // Initialization | 45 // Initialization |
46 void GraalCompiler::initialize() { | 46 void GraalCompiler::initialize() { |
47 | 47 if (!should_perform_init()) { |
48 return; | |
49 } | |
50 | |
48 ThreadToNativeFromVM trans(JavaThread::current()); | 51 ThreadToNativeFromVM trans(JavaThread::current()); |
49 JavaThread* THREAD = JavaThread::current(); | 52 JavaThread* THREAD = JavaThread::current(); |
50 TRACE_graal_1("GraalCompiler::initialize"); | 53 TRACE_graal_1("GraalCompiler::initialize"); |
51 | 54 |
52 uintptr_t heap_end = (uintptr_t) Universe::heap()->reserved_region().end(); | 55 uintptr_t heap_end = (uintptr_t) Universe::heap()->reserved_region().end(); |
98 VMToCompiler::finalizeOptions(CITime || CITimeEach); | 101 VMToCompiler::finalizeOptions(CITime || CITimeEach); |
99 | 102 |
100 if (UseCompiler) { | 103 if (UseCompiler) { |
101 _external_deopt_i2c_entry = create_external_deopt_i2c(); | 104 _external_deopt_i2c_entry = create_external_deopt_i2c(); |
102 #ifdef COMPILERGRAAL | 105 #ifdef COMPILERGRAAL |
103 bool bootstrap = FLAG_IS_DEFAULT(BootstrapGraal) ? !TieredCompilation : BootstrapGraal; | 106 bool bootstrap = UseGraalCompilationQueue && (FLAG_IS_DEFAULT(BootstrapGraal) ? !TieredCompilation : BootstrapGraal); |
104 #else | 107 #else |
105 bool bootstrap = false; | 108 bool bootstrap = false; |
106 #endif | 109 #endif |
107 VMToCompiler::startCompiler(bootstrap); | 110 VMToCompiler::startCompiler(bootstrap); |
108 _initialized = true; | 111 _initialized = true; |
170 } | 173 } |
171 } | 174 } |
172 return buffer_blob; | 175 return buffer_blob; |
173 } | 176 } |
174 | 177 |
175 void GraalCompiler::compile_method(methodHandle method, int entry_bci, jboolean blocking) { | 178 void GraalCompiler::compile_method(methodHandle method, int entry_bci, CompileTask* task, jboolean blocking) { |
176 GRAAL_EXCEPTION_CONTEXT | 179 GRAAL_EXCEPTION_CONTEXT |
177 if (!_initialized) { | 180 if (!_initialized) { |
178 CompilationPolicy::policy()->delay_compilation(method()); | 181 CompilationPolicy::policy()->delay_compilation(method()); |
179 return; | 182 return; |
180 } | 183 } |
181 | 184 |
182 assert(_initialized, "must already be initialized"); | 185 assert(_initialized, "must already be initialized"); |
183 ResourceMark rm; | 186 ResourceMark rm; |
184 thread->set_is_graal_compiling(true); | 187 thread->set_is_graal_compiling(true); |
185 VMToCompiler::compileMethod(method(), entry_bci, blocking); | 188 VMToCompiler::compileMethod(method(), entry_bci, (jlong) (address) task, blocking); |
186 thread->set_is_graal_compiling(false); | 189 thread->set_is_graal_compiling(false); |
187 } | 190 } |
188 | 191 |
189 // Compilation entry point for methods | 192 // Compilation entry point for methods |
190 void GraalCompiler::compile_method(ciEnv* env, ciMethod* target, int entry_bci) { | 193 void GraalCompiler::compile_method(ciEnv* env, ciMethod* target, int entry_bci) { |