Mercurial > hg > graal-compiler
diff src/share/vm/code/compiledIC.cpp @ 15046:5c71dcf0915d
use hotspot static stubs for call sites
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Wed, 09 Apr 2014 16:33:37 -0700 |
parents | 02f27ecb4f3a |
children | d1b948f9db34 |
line wrap: on
line diff
--- a/src/share/vm/code/compiledIC.cpp Wed Apr 09 16:33:32 2014 -0700 +++ b/src/share/vm/code/compiledIC.cpp Wed Apr 09 16:33:37 2014 -0700 @@ -76,7 +76,7 @@ // Don't use ic_destination for this test since that forwards // through ICBuffer instead of returning the actual current state of // the CompiledIC. - if (is_icholder_entry(_ic_call->destination()) GRAAL_ONLY(&& _value != NULL)) { + if (is_icholder_entry(_ic_call->destination())) { // When patching for the ICStub case the cached value isn't // overwritten until the ICStub copied into the CompiledIC during // the next safepoint. Make sure that the CompiledICHolder* is @@ -107,13 +107,6 @@ _ic_call->set_destination_mt_safe(entry_point); } -#ifdef GRAAL - if (_value == NULL) { - // Can happen when Graal converted a virtual call into an invoke special based on static analysis. - return; - } -#endif - if (is_optimized() || is_icstub) { // Optimized call sites don't have a cache value and ICStub call // sites only change the entry point. Changing the value in that @@ -238,8 +231,8 @@ // for calling directly to vep without using the inline cache (i.e., cached_value == NULL) #ifdef ASSERT CodeBlob* caller = CodeCache::find_blob_unsafe(instruction_address()); - bool is_c1_or_graal_method = caller->is_compiled_by_c1() || caller->is_compiled_by_graal(); - assert( is_c1_or_graal_method || + bool is_c1_method = caller->is_compiled_by_c1(); + assert( is_c1_method || !is_monomorphic || is_optimized() || (cached_metadata() != NULL && cached_metadata()->is_klass()), "sanity check"); @@ -264,14 +257,12 @@ // Check if we are calling into our own codeblob (i.e., to a stub) CodeBlob* cb = CodeCache::find_blob(_ic_call->instruction_address()); address dest = ic_destination(); -#ifndef GRAAL #ifdef ASSERT { CodeBlob* db = CodeCache::find_blob_unsafe(dest); assert(!db->is_adapter_blob(), "must use stub!"); } #endif /* ASSERT */ -#endif is_call_to_interpreted = cb->contains(dest); } return is_call_to_interpreted;