# HG changeset patch # User Gilles Duboscq # Date 1428484021 -7200 # Node ID 8d4496e10a5121558e907aa70d0fb3253de47a9d # Parent 6ee9b878902be19e0dec1dbc4038136af4506bc6 Fix merge diff -r 6ee9b878902b -r 8d4496e10a51 src/share/vm/ci/ciTypeFlow.cpp --- a/src/share/vm/ci/ciTypeFlow.cpp Tue Apr 07 18:57:02 2015 +0200 +++ b/src/share/vm/ci/ciTypeFlow.cpp Wed Apr 08 11:07:01 2015 +0200 @@ -36,6 +36,7 @@ #include "interpreter/bytecodes.hpp" #include "memory/allocation.inline.hpp" #include "opto/compile.hpp" +#include "opto/node.hpp" #include "runtime/deoptimization.hpp" #include "utilities/growableArray.hpp" diff -r 6ee9b878902b -r 8d4496e10a51 src/share/vm/gc_implementation/g1/g1AllocRegion.hpp --- a/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp Tue Apr 07 18:57:02 2015 +0200 +++ b/src/share/vm/gc_implementation/g1/g1AllocRegion.hpp Wed Apr 08 11:07:01 2015 +0200 @@ -185,16 +185,6 @@ // is returned after it's been retired. virtual HeapRegion* release(); -#ifdef GRAAL - HeapWord** top_addr() const { - return _alloc_region->top_addr(); - } - - HeapWord** end_addr() const { - return _alloc_region->end_addr(); - } -#endif - #if G1_ALLOC_REGION_TRACING void trace(const char* str, size_t word_size = 0, HeapWord* result = NULL); #else // G1_ALLOC_REGION_TRACING diff -r 6ee9b878902b -r 8d4496e10a51 src/share/vm/graal/graalCodeInstaller.hpp --- a/src/share/vm/graal/graalCodeInstaller.hpp Tue Apr 07 18:57:02 2015 +0200 +++ b/src/share/vm/graal/graalCodeInstaller.hpp Wed Apr 08 11:07:01 2015 +0200 @@ -107,7 +107,7 @@ public: - CodeInstaller() {} + CodeInstaller() : _arena(Arena(mtCompiler)) {} GraalEnv::CodeInstallResult install(Handle& compiled_code, CodeBlob*& cb, Handle installed_code, Handle speculation_log); static address runtime_call_target_address(oop runtime_call); diff -r 6ee9b878902b -r 8d4496e10a51 src/share/vm/graal/graalCompilerToVM.cpp --- a/src/share/vm/graal/graalCompilerToVM.cpp Tue Apr 07 18:57:02 2015 +0200 +++ b/src/share/vm/graal/graalCompilerToVM.cpp Wed Apr 08 11:07:01 2015 +0200 @@ -831,9 +831,7 @@ bool reallocated = false; if (objects != NULL) { reallocated = Deoptimization::realloc_objects(thread, fst.current(), objects, THREAD); - if (reallocated) { - Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects); - } + Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects, reallocated); GrowableArray* local_values = cvf->scope()->locals(); typeArrayHandle array = oopFactory::new_boolArray(local_values->length(), thread); @@ -978,38 +976,36 @@ } bool reallocated = Deoptimization::realloc_objects(thread, fst.current(), objects, THREAD); - if (reallocated) { - Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects); + Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects, reallocated); - for (int frame_index = 0; frame_index < virtualFrames->length(); frame_index++) { - compiledVFrame* cvf = virtualFrames->at(frame_index); + for (int frame_index = 0; frame_index < virtualFrames->length(); frame_index++) { + compiledVFrame* cvf = virtualFrames->at(frame_index); - GrowableArray* scopeLocals = cvf->scope()->locals(); - StackValueCollection* locals = cvf->locals(); + GrowableArray* scopeLocals = cvf->scope()->locals(); + StackValueCollection* locals = cvf->locals(); - if (locals != NULL) { - for (int i2 = 0; i2 < locals->size(); i2++) { - StackValue* var = locals->at(i2); - if (var->type() == T_OBJECT && scopeLocals->at(i2)->is_object()) { - jvalue val; - val.l = (jobject) locals->at(i2)->get_obj()(); - cvf->update_local(T_OBJECT, i2, val); - } + if (locals != NULL) { + for (int i2 = 0; i2 < locals->size(); i2++) { + StackValue* var = locals->at(i2); + if (var->type() == T_OBJECT && scopeLocals->at(i2)->is_object()) { + jvalue val; + val.l = (jobject) locals->at(i2)->get_obj()(); + cvf->update_local(T_OBJECT, i2, val); } } } + } - // all locals are materialized by now - HotSpotStackFrameReference::set_localIsVirtual(hs_frame, NULL); + // all locals are materialized by now + HotSpotStackFrameReference::set_localIsVirtual(hs_frame, NULL); - // update the locals array - objArrayHandle array = HotSpotStackFrameReference::locals(hs_frame); - StackValueCollection* locals = virtualFrames->at(last_frame_number)->locals(); - for (int i = 0; i < locals->size(); i++) { - StackValue* var = locals->at(i); - if (var->type() == T_OBJECT) { - array->obj_at_put(i, locals->at(i)->get_obj()()); - } + // update the locals array + objArrayHandle array = HotSpotStackFrameReference::locals(hs_frame); + StackValueCollection* locals = virtualFrames->at(last_frame_number)->locals(); + for (int i = 0; i < locals->size(); i++) { + StackValue* var = locals->at(i); + if (var->type() == T_OBJECT) { + array->obj_at_put(i, locals->at(i)->get_obj()()); } } C2V_END diff -r 6ee9b878902b -r 8d4496e10a51 src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Tue Apr 07 18:57:02 2015 +0200 +++ b/src/share/vm/runtime/globals.hpp Wed Apr 08 11:07:01 2015 +0200 @@ -210,7 +210,7 @@ #define CI_COMPILER_COUNT 0 #else -#ifdef COMPILER2 +#if defined(COMPILER2) || defined(COMPILERGRAAL) #define CI_COMPILER_COUNT 2 #else #define CI_COMPILER_COUNT 1