[9] RFR(S): 8130309: need to bailout cleanly if CompiledStaticCall::emit_to_interp_stub fails when codecache is out of space
Tobias Hartmann
tobias.hartmann at oracle.com
Tue Jul 28 14:08:38 UTC 2015
Thanks, Vladimir.
Best,
Tobias
On 28.07.2015 15:22, Vladimir Kozlov wrote:
> Looks good.
>
> Thanks,
> Vladimir
>
> On 7/28/15 12:19 AM, Tobias Hartmann wrote:
>> Thanks, Vladimir.
>>
>> On 27.07.2015 19:29, Vladimir Kozlov wrote:
>>> Use ciEnv()::current() instead of Compile::current()->env().
>>
>> Done.
>>
>>> compile.cpp why special case for StressCodeBuffers?
>>
>> Right, the special case is not necessary since StressCodeBuffers should not affect the scratch buffer. I removed it.
>>
>> New webrev:
>> http://cr.openjdk.java.net/~thartmann/8130309/webrev.04/
>>
>> Thanks,
>> Tobias
>>
>>> Otherwise looks good.
>>>
>>> Thanks,
>>> Vladimir
>>>
>>> On 7/27/15 7:36 AM, Tobias Hartmann wrote:
>>>>
>>>> On 27.07.2015 13:31, Roland Westrelin wrote:
>>>>>>> Here is the new webrev:
>>>>>>> http://cr.openjdk.java.net/~thartmann/8130309/webrev.02/
>>>>>>
>>>>>> CompiledStaticCall::emit_to_interp_stub() is compiler independent code. Shouldn’t the call be ciEnv::current()->record_failure() even if the method is only called from c2 (for now?)? (which is what Dean suggested as well I think)
>>>>
>>>> Right, I missed that and got confused because the method is guarded by "#ifdef COMPILER2" on Sparc.
>>>>
>>>>> Actually, why not have emit_to_interp_stub() returns an error and bail out from compilation in the caller?
>>>>
>>>> I changed 'emit_to_interpr_stub()' accordingly and now bail out from the caller if it fails. I also had to adapt the ppc code and the 'emit_trampoline_stub()' method on aarch64.
>>>>
>>>> I left the special handling of -XX:TraceJumps in the Sparc code since JDK-8132344 will fix it.
>>>>
>>>> Here is the new webrev:
>>>> http://cr.openjdk.java.net/~thartmann/8130309/webrev.03/
>>>>
>>>> Thanks,
>>>> Tobias
>>>>
>>>>>
>>>>> Roland.
>>>>>
More information about the hotspot-compiler-dev
mailing list